2015-04-24 109 views
9

所以我使用dompdf來創建html的pdf。哪個工作真的很好,唯一的問題是當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 NO設置做到這一點。
爲了實現你的需求,你有CSS玩文件來定製您的圖像大小或文本字體大小

0

DOMPDF與CSS和表格的一些問題。最佳做法是避免單元格或rowspans而不使用外部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到特定的大小。