--- 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}