我在Perl中使用Open2打印PDF,它采用HTML模板并将其打印成可以通过按钮下载的PDF格式。
他们想要一个水印,所以我用了
<style>
body {
background-image: url("watermark.jpg");
background-repeat: no-repeat;
}
</style>
预览页面上的看起来很棒,但是当你将它下载到PDF时它会消失。我可以用任何方式将其添加到我的PDF中吗?
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);
}
我试过改变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;
}
答案 0 :(得分:1)
html2ps忽略html文档中包含的css。你可以定义 配置文件中的样式。只支持css的一个子集 html2ps的。
所以你需要把它放在conf文件中。
请参阅此示例:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Serialization.2C_and_Detaching
在示例中,您可以注意到background-image
代码使用了BODY
。