mapweaver/mwDir.pl

120 lines
2.9 KiB
Perl
Raw Normal View History

2022-07-28 09:06:48 +00:00
use strict ;
use warnings ;
use OSM::osm 8.3 ;
my $version = "1.00" ;
my $streetFileName ;
my $poiFileName ;
my $pdfFileName ;
my $texFileName ;
my $titleText ;
my $numColumns ;
my $streetFile ;
my $poiFile ;
my $texFile ;
($streetFileName, $poiFileName, $titleText, $pdfFileName, $numColumns) = @ARGV ;
print "mwDir.pl: $streetFileName, $poiFileName, $titleText, $pdfFileName, $numColumns\n" ;
$texFileName = $pdfFileName ;
$texFileName =~ s/.pdf/.tex/ ;
open ($texFile, ">", $texFileName) or die ("can't open tex output file") ;
print $texFile "\\documentclass[a4paper,12pt]{book}\n" ;
print $texFile "\\usepackage{multicol}\n" ;
print $texFile "\\usepackage[utf8]{inputenc}\n" ;
print $texFile "\\usepackage[top=2.5cm,bottom=2cm,left=3cm,right=2cm]{geometry}\n" ;
print $texFile "\\columnsep7mm\n" ;
print $texFile "\\begin{document}\n" ;
print $texFile "\\section*{$titleText}\n" ;
print $texFile "\n" ;
print $texFile "\\tiny\n" ;
print $texFile "Data CC-BY-SA www.openstreetmap.org\n" ;
print $texFile "\\normalsize\n\n" ;
# streets
if ($streetFileName ne "none") {
my $result = open ($streetFile, "<", $streetFileName) ;
if ($result) {
my $line ;
print $texFile "\\begin{multicols}{$numColumns}[\\subsubsection*{Streets}]\n" ;
print $texFile "\\tiny\n" ;
while ($line = <$streetFile>) {
$line = convertToLatex ($line) ;
my (@entry) = split /\t/, $line ;
print $texFile $entry[0] ;
print $texFile " \\dotfill " ;
print $texFile $entry[1], " \\\\\n" ;
}
close ($streetFile) ;
print $texFile "\\normalsize\n" ;
print $texFile "\\end{multicols}\n" ;
}
else {
print "WARNING: street file $streetFile could not be opened." ;
}
}
# POIs
if ($poiFileName ne "none") {
my $result = open ($poiFile, "<", $poiFileName) ;
if ($result) {
my $line ;
print $texFile "\\begin{multicols}{$numColumns}[\\subsubsection*{Points of interest}]\n" ;
print $texFile "\\tiny\n" ;
while ($line = <$poiFile>) {
$line = convertToLatex ($line) ;
my @entry = split /\t/, $line ;
print $texFile $entry[0] ;
print $texFile " \\dotfill " ;
print $texFile $entry[1], "\\\\\n" ;
}
close ($poiFile) ;
print $texFile "\\normalsize\n" ;
print $texFile "\\end{multicols}\n" ;
}
else {
print "WARNING: POI file $poiFile could not be opened." ;
}
}
print $texFile "\\end{document}\n" ;
close ($texFile) ;
print "directory tex file created.\n" ;
my $dviFileName = $pdfFileName ;
$dviFileName =~ s/.pdf/.dvi/ ;
my $psFileName = $pdfFileName ;
$psFileName =~ s/.pdf/.ps/ ;
`latex $texFileName` ;
print "directory dvi file created.\n" ;
`dvips -D600 $dviFileName -o` ;
print "directory ps file created.\n" ;
`ps2pdf $psFileName $pdfFileName` ;
print "directory pdf file created.\n" ;
`rm *.dvi` ;
`rm *.tex` ;
`rm *.ps` ;
`rm *.aux` ;
`rm *.log` ;
print "directory FINISHED.\n" ;