--- html2ps.orig 2010-05-07 11:22:12 UTC +++ html2ps @@ -26,9 +26,12 @@ eval 'exec perl -S $0 "$@"' # Set the name of the global configuration file. See the installation notes # and manual page for more details on configuration files. -$globrc='/it/sw/share/www/lib/html2ps/html2psrc'; -$ug='/it/sw/share/www/lib/html2ps/html2ps.html'; +use File::Temp qw/tempfile/; +$LIBPAPER=1; +$globrc='%%PREFIX%%/etc/html2psrc'; +$ug='%%DATADIR%%/html2ps.html'; + $conf=<<'EOR'; @html2ps { package { @@ -46,7 +49,7 @@ $conf=<<'EOR'; path: ""; } paper { - type: A4; + type: libpaper; height: ""; width: ""; } @@ -495,7 +498,7 @@ die "Ghostscript is required to generate DSC PostScrip if($opt_D && !$package{'Ghostscript'}); die "Ghostscript is required to generate cross references\n" if($opt_R && !$package{'Ghostscript'}); -$tmpname=$posix?POSIX::tmpnam():"h2p_$$"; +$tmpname = tempfile(); ($scr=$tmpname)=~/\w+$/; $tempdir=$`; @@ -613,6 +616,23 @@ for (0..10) { $height{"b$_"}=int($temp*2**(1/2)*1000+.5)/10; } if(!$pagew || !$pageh) { + if ($LIBPAPER) { + my $env_com; + if ("\L$paper{'type'}" ne 'libpaper') { + $env_com = "/usr/bin/env PAPERSIZE=\"$paper{'type'}\""; + } + my $_w = `$env_com /usr/local/bin/paperconf -wc`; + my $_h = `$env_com /usr/local/bin/paperconf -hc`; + my $_n = `$env_com /usr/local/bin/paperconf -n`; + if ($_w ne '' and $_h ne '') { + $paper{'width'} = $_w; + $paper{'height'} = $_h; + $paper{'type'} = $_n; + ($pagew,$pageh)=($paper{'width'},$paper{'height'}); + } else { + &dbg("Unknown paper type: $paper{'type'}\n"); + } + } else { # !LIBPAPER if($width{"\L$paper{'type'}"}) { $paper{'width'}=$width{"\L$paper{'type'}"} if(!defined $paper{'width'}); $paper{'height'}=$height{"\L$paper{'type'}"} if(!defined $paper{'height'}); @@ -620,6 +640,7 @@ if(!$pagew || !$pageh) { } elsif($paper{'type'}) { &dbg("Unknown paper type: $paper{'type'}\n"); } + } # LIBPAPER } if($opt_L) { $wl=$pageh-$mll-$mrl; @@ -3405,7 +3426,6 @@ sub Getopts { local($optlist)=@_; local(@args,$_,$opt,$opts,$rest,$olist,$plist,$found,@popts); local($errs)=0; - local($[)=0; @args=split( /\|/, $optlist ); for $opt (@args) { if(substr($opt,-1,1) ne ':') {$olist.=$opt}