2016-09-26 2 views
3

Я печатаю PDF, используя Open2 в Perl, он принимает шаблон HTML и печатает его в PDF, который можно загрузить с помощью кнопки.Может ли Perl распечатать изображение с помощью CSS в 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; 
} 
+2

Если вы создаете PDF из командной строки, используя 'html2ps', отображается ли водяной знак? Является ли путь к водяному знаку доступным и известным «html2ps»? – choroba

+0

Это не вопрос Perl. –

ответ

1

html2ps игнорирует CSS, содержащиеся в HTML-документе. Вы можете определить стили в файле конфигурации. Только подмножество css поддерживается html2ps.

Так что вам нужно положить его в конфиг.

Смотрите этот пример: https://www.w3.org/MarkUp/2008/ED-xml-events-20080624/html2ps.conf

В примере вы можете заметить использование background-image для BODY тега.

Смежные вопросы