2016-09-26 7 views
3

PerlでOpen2を使用してPDFを印刷していますが、これはHTMLテンプレートを取り出し、ボタンを使用してダウンロードできるPDFに出力します。PerlはCSSを使用してイメージをPDFに印刷できますか?

彼らはそれに透かしを望んでいたので、私はそれは素晴らしい見えますが、あなたはそれが消えてPDFにそれをダウンロードしたときに、プレビューページで

<style> 
    body { 
     background-image: url("watermark.jpg"); 
     background-repeat: no-repeat; 
    } 
</style> 

を使用。これを私のPDFに追加することはできますか?

sub pdfGenerator { 
my $data = shift; 
my $file = "$OUTFILES/$data.html"; 

open(my $fileFH, '<', $file) or return "Can not find file\n"; 

my $processId = open2(\*POUT, \*PIN, qq(html2ps -U -f /home/dir/cgi-bin/dir2/html2psrc-label)); 

my @lines = <$fileFH>; 
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; 

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

}

以下

PDFコードジェネレータ私はhtml2psファイルを変更しようとしていると私はまだ何も得ていないのです。 私のコードは

@html2ps 
{ 
    paper 
    { 
     type: letter; 
    } 
} 

BODY 
{ 
    font-family: Helvetica; 
    margin: 2em 1em 2em 70px; 
    font-family: Helvetica, sans-serif; 
    color: black; 
    background-image: url("/dir/images/watermark.jpg"); 
    background-repeat: no-repeat; 
} 

@page 
{ 
    margin-left: .75in; 
    margin-right: .75in; 
    margin-top: 1in; 
    margin-bottom: 1in; 
} 
+2

「html2ps」を使用してコマンドラインからPDFを生成すると、透かしが表示されますか?ウォーターマークへのパスは 'html2ps'にアクセス可能であり、知られていますか? – choroba

+0

これはPerlの質問ではありません。 –

答えて

1

html2psを下回っていることは、HTML文書に含まれているCSSを無視します。構成ファイルに のスタイルを定義できます。 CSSのサブセットのみが html2psでサポートされています。

したがって、confファイルに入れる必要があります。あなたがBODYタグにbackground-imageの使用状況を知ることができるの例ではhttps://www.w3.org/MarkUp/2008/ED-xml-events-20080624/html2ps.conf

は、この例を参照してください。

関連する問題