THANK YOU! This fixed a lot of my headaches. I wrote html2pdf.pl with this as base, which works with files as well as with URL's:
#!/usr/bin/perl
use 5.14.2;
use warnings;
our $VERSION = "0.01 - 20191210";
our $CMD = $0 =~ s{.*/}{}r;
sub usage {
my $err = shift and select STDERR;
say "usage: $CMD [-p A4] [-f] [-o file.pdf] file.html";
say " -p size --page-size=size Set page size. Default = A4"
+;
say " -o out --out=out Set ouput file name. Default
+ = s{.html\$}{.pdf}";
say " -f --force Overwrite out if exists";
exit $err;
} # usage
use Data::Peek;
use PDF::WebKit;
use Getopt::Long qw(:config bundling);
GetOptions (
"help|?" => sub { usage (0); },
"V|version" => sub { say "$CMD [$VERSION]"; exit 0; },
"f|force!" => \ my $opt_f,
"p|page-size=s" => \(my $page_size = "A4"),
"o|out|pdf=s" => \ my $pdff,
"v|verbose:1" => \(my $opt_v = 0),
) or usage (1);
my $html = shift or usage (1);
$pdff ||= $html =~ s{\.html?$}{.pdf}ri =~ s{.*/}{}r;
-s $pdff && !$opt_f and die "$pdff already exists\n";
unlink $pdff;
PDF::WebKit->new ($html, page_size => $page_size)->to_file ($pdff);
Images, colors *and* fonts are correct, which I cannot say for the very broken htmldoc and html2ps tools.
Enjoy, Have FUN! H.Merijn