2016-10-24 12 views
0

私は、一連のHTML行を吐き出してPSLinesに変換し、PDF行に変換するコードを用意しています。 PDFラインの後に、私はPDF :: Tkが必要です。PDF :: Tk背景画像

以下は私のコードです。どこにコードが必要なのかというコメントがあります。誰もこのコードスニペットで私を助けることができますか?

sub printFilePdf { 
    my $unique_id = shift; 
    my ($file) = "$OUTFILES/$id.html"; 

    open(my $htmlFH, '<', $file) or die "Can't open file $file $!\n"; 

    my $processId = open2(\*POUT, \*PIN, qq(html2ps -U -f /home/apache/cgi-bin/test/html2psrc-tst)); 

    my @lines = <$htmlFH>; 
    print PIN @lines; 
    close PIN; 

    my @psLines; 
    while (<POUT>) 
    { 
     chomp; 
     push(@psLines,$_); 
    } 
    waitpid $processId, 0; 

    $processId = open2(\*POUT, \*PIN, qq(ps2pdf -sPAPERSIZE=letter - -)); 
    print PIN "$_\n" foreach(@psLines); 
    close PIN; 

    my @pdfLines; 
    while (<POUT>) { 
     chomp; 
     push(@pdfLines, $_); 
    } 
    waitpid $processId, 0; 

    #Insert Code Here 

    print "Content-Type: application/pdf\n"; 
    print "Content-Disposition: attachment; filename=driverhistoryrecord.pdf\n\n"; 
    print "$_\n" foreach(@pdfLines); 
    } 

答えて

0

PDF :: Tkはcall_pdftk($INPUT, $OUTPUT, @ARGS)pdftk $INPUT @ARGS output $OUTPUTを実行し、正確に直感的ではありません...あなたはman pdftkから@ARGSに供給するために何の助けを得ることができます。

my $pdftk = PDF::Tk->new; 
$pdftk->call_pdftk(\$PDF_AS_STRING, \$OUT, 'background', 'bg.pdf'); 

print "Content-Type: application/pdf\r\n"; 
print "Content-Disposition: attachment; filename=done.pdf\r\n\r\n"; 
print $OUT; 

別の方法としては、<body background="bg.jpg">set_bodyimage($image)機能をサポートしていHTML::HTMLDocのようなものを見てみたいことがあります。

use HTML::HTMLDoc; 
my $htmldoc = new HTML::HTMLDoc; 
$htmldoc->set_html_content(<<"EOF"); 
<html><body> 
This is my <b>pdf</b>... 
</body></html> 
EOF 

$htmldoc->set_bodyimage('bg.png'); 
print $htmldoc->generate_pdf()->to_string();