2015-04-24 13 views
9

Поэтому я использую dompdf для создания pdf-файлов html. Что работает действительно хорошо, единственная проблема заключается в том, что html слишком большой, а dompdf создает его на две страницы. Есть ли способ, возможно, в dompdf или в html, чтобы масштабировать его только на одну страницу?dompdf - масштабируйте pdf для соответствия странице

Справка была бы принята с благодарностью! Спасибо!

Вот моя конфигурация и мой код для создания PDF-файлов.

define("DOMPDF_ENABLE_HTML5PARSER", true); 
define("DOMPDF_ENABLE_FONTSUBSETTING", true); 
define("DOMPDF_UNICODE_ENABLED", true); 
define("DOMPDF_DPI", 120); 
define("DOMPDF_ENABLE_REMOTE", true); 

require_once 'dompdf/dompdf_config.inc.php'; 

$dompdf = new \DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->set_paper("a4", "portrait"); 
$dompdf->render(); 
$dompdf->stream("page.pdf", array("Attachment" => 0)); 
+0

html слишком большой? у вас есть скриншот, чтобы показать нам, что работает в текущем состоянии. –

+0

html состоит из большого jpg в начале и переменного текста под jpg. текст может быть длинным время от времени, поэтому было бы хорошо, если бы dompdf мог масштабировать все в хороший pdf. вы можете почти сделать это, используя настройку dpi. поэтому прямо сейчас у меня есть предварительный просмотр с pdf и поле выбора, в котором вы можете выбрать dpi, пока он не войдет в страницу. было бы хорошо, если бы dom pdf сделал бы это автоматически с настройкой –

+0

Если вы можете жить с кратным установленным размером, я ранее обрисовал метод здесь: http://stackoverflow.com/q/26691304/264628. – BrianS

ответ

1

Извините, но нет настроек в DOMPDF, чтобы сделать это.
Для достижения ваших потребностей, вы должны играть с CSS файлы пользовательских вашего размера изображения или размер шрифта текста

0

DOMPDF имеет некоторые проблемы с CSS и таблиц. Лучшая практика - избегать ячеек или рядов и не использовать внешние файлы css. Также поддерживается только ограниченный набор правил CSS. Ознакомьтесь с полным номером CSSCompatibility list.

Чтобы исправить возникшую проблему, попробуйте установить встроенный стиль img на style="max-width:100%; max-height:100%;"?

Вот полный пример масштабирования большое изображение (4,256px × 2,832px) внутри одной страницы:

<?php 
$html = <<< LOL 
<html> 
<head> 
</head 
<body> 
<div width="100%"><img style="max-width:100%; max-height:100%;" src="http://www.norrbottenbigband.com/upload/images/norrbotten-big-band_hq.jpg"> </div> 

</body> 
</html> 
LOL; 

define("DOMPDF_ENABLE_HTML5PARSER", true); 
define("DOMPDF_ENABLE_FONTSUBSETTING", true); 
define("DOMPDF_UNICODE_ENABLED", true); 
define("DOMPDF_DPI", 120); 
define("DOMPDF_ENABLE_REMOTE", true); 
//define("DOMPDF_ENABLE_JAVASCRIPT", true); 
//define("DOMPDF_ENABLE_CSS_FLOAT", true); 

require_once 'dompdf_config.inc.php'; 

$dompdf = new \DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->set_paper("a4", "portrait"); 
$dompdf->render(); 
$dompdf->stream("page.pdf", array("Attachment" => 0)); 

Если ни один из перечисленных выше работ, попробуйте положить на выходе PDF внутри DIV набор в DIV до определенного размера.

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