Я использую Perl
PDF::FromHTML
для создания PDF файла. Мой код выглядит так:
open HTML, ">", "file.html";
...
close HTML;
chmod(0777, "file.html");
my $pdf = PDF::FromHTML->new(encoding => 'utf-8');
$pdf->load_file("file.html") or die $!;
$pdf->convert(
Font => 'Arial',
LineHeight => 10,
Landscape => 1
);
$pdf->write_file("file.pdf") or die $!;
Поскольку у меня возникли трудности с созданием фактического PDF файла в начале, теперь я точно следую синопсису на cpan, который
my $pdf = PDF::FromHTML->new( encoding => 'utf-8' );
# Loading from a file:
$pdf->load_file('source.html');
# Perform the actual conversion:
$pdf->convert(
# With PDF::API2, font names such as 'traditional' also works
Font => 'font.ttf',
LineHeight => 10,
Landscape => 1,
);
# Write to a file:
$pdf->write_file('target.pdf');
Однако это создает PDF файл в нужном месте, но он состоит только из белой страницы. HTML файл завершен и выглядит так, как должно выглядеть. Что мне не хватает?
Вам нужно указать допустимый шрифт. Второй пример имеет недействительное имя.
Если вы установили PDF :: API2, вы можете попытаться использовать: "Helvetica" в качестве имени шрифта.
Проверьте файл HTML, он должен быть довольно простым (без CSS или javascript).
С Уважением,
Arial
является допустимым шрифтом, так как при использовании недопустимых шрифтов скрипт умрет, аrequested font 'calibri' not installed
. HTML-файл очень прост, просто небольшая таблица с некоторыми ссылками и ссылкой наcss
файл в голове.