Почему изображения не отображаются полностью, когда я конвертирую HTML в PDF с помощью Perl HTML :: HTMLDoc? - PullRequest
1 голос
/ 29 марта 2010

Мне нужно создать PDF-файл из HTML-кода, который я создал, используя rrdcgi. Эта страница содержит детали и графики в формате PNG. Я написал код ниже, используя модуль Perl HTML :: HTMLDoc для создания PDF-файла с использованием сохраненного HTML-файла. Изображения имеют ширину 1048 и высоту 266, но при создании файла PDF изображения не отображаются полностью с правой стороны.

#!/usr/bin/perl

use strict;
use warnings;

use HTML::HTMLDoc;

my $filename = shift;
my $htmldoc = new HTML::HTMLDoc();

$htmldoc->set_input_file($filename);
$htmldoc->no_links();
$htmldoc->landscape();
$htmldoc->set_jpeg_compression('50');
$htmldoc->best_image_quality();
$htmldoc->color_on();
$htmldoc->set_right_margin('1', 'mm');
$htmldoc->set_left_margin('1', 'mm');
$htmldoc->set_bodycolor('#FFFFFF');
$htmldoc->set_browserwidth('1000');
my $pdf = $htmldoc->generate_pdf();
$pdf->to_file('foo.pdf');

Мне нужна помощь по следующим пунктам:

Как отобразить полное изображение на странице.

Любая помощь с кодом Perl будет очень признательна.

1 Ответ

2 голосов
/ 03 апреля 2010

Ознакомьтесь с HTML :: HTMLDoc документацией :

set_browserwidth ($ ширина)

указывает ширину браузера в пикселях. Ширина браузера используется для масштабирования изображения и измерения пикселей при создание файлов PostScript и PDF. Это не влияет на размер шрифта текст. Ширина браузера по умолчанию составляет 680 пикселей, что примерно соответствует Дисплей 96 DPI.

Обратите внимание, что ваши изображения и размеры таблиц равны меньше или меньше ширины браузера, или ваш вывод будет перекрываться или укоротить местами .

Вы сказали, что изображения имеют ширину 1048, но вы указали 1000 для ширины браузера, используя:

$htmldoc->set_browserwidth('1000');

попробуйте увеличить параметр браузера, чтобы он соответствовал вашим изображениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...