120 lines
2.9 KiB
Perl
120 lines
2.9 KiB
Perl
|
|
||
|
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" ;
|
||
|
|
||
|
|