2012-01-08 40 views
12

我使用浮動來將2個div放在一起。在html2pdf中使用css浮動

<a href="printbox.php">print</a> 
<?php ob_start(); ?> 
<style> 
    #sidedish{ 
     float: left; 

     border: 1px solid black; 
     width: 100px; 
     height: 100px; 
    } 
    #maindish{ 
     float: right; 
     width: 200px; 
     border: 1px solid black; 
     height: 100px; 
     text-align: center; 
    } 

    #container{ 
     width: 304px; 
     height: 100px; 
     border: 1px solid black; 
    } 
</style> 

<div id="container"> 
<div id="sidedish"></div> 
<div id="maindish"><div id="box">name</div></div> 
</div> 
<?php $_SESSION['boxes'] = ob_get_contents(); ?> 

這裏是printbox做,它只是呈現緩衝數據轉換成PDF格式,但不知何故已設置的花車在這個過程中丟失了。

<?php require_once('html2pdf/html2pdf.class.php'); ?> 
<?php 
$html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8', array(0, 0, 0, 0)); 
$html2pdf->writeHTML($_SESSION['boxes']); 

$html2pdf->Output('random.pdf'); 
?> 

它正常工作的HTML:

enter image description here

,但是當我點擊打印它變成這樣:

enter image description here

任何想法的問題是什麼?

+1

找不到您提到的問題。請參閱http://jsfiddle.net/DYGvR/show/,在Chrome中進行測試,單擊鼠標右鍵,打印頁面。 – Giberno 2012-01-08 09:21:13

+0

您是否使用瀏覽器進行打印? printbox.php是做什麼的?我假設他點擊了打印鏈接,printbox.php以某種方式在文檔上設置寬度。 – zethus 2012-01-08 10:20:04

+0

請參閱我的更新 – 2012-01-10 00:28:04

回答

23

從個人經歷來看,我想說造型HTML2PDF的輸出最多就是深奧的魔法科學。造成這種情況的主要原因是:

  • 類僅支持CSS樣式的(相對小的)子集&選擇
  • CSS兼容性無證
  • PDF是不可能的關係來調試到HTML輸入

公平地說,這不僅是HTML2PDF而是also for the TCPDF that HTML2PDF uses的問題。

可能有可能的是HTML2PDF,是隻是一個幾乎零設置,快捷方便&替代接口,爲TCPDF,削減更多的CSS支持 - 不過我敢肯定,甚至TCPDF不支持float正確

,你可以用最好的解決方法是將您浮動的div發送到九十年代:

<table> 
    <tr> 
     <td><div class="float"> ... </div></td> 
     <td><div class="float"> ... </div></td> 
    </tr> 
</table> 

你也可以向公衆隱瞞HTML這樣的尷尬:

<?php 
    $isPdf = (/* condition that tells us we're outputting PDF */) ? true : false; 
    if ($isPdf) { 
     echo "<table><tr><td>"; 
    } 
?> 
<div class="float"> ... </div> 
<?php 
    if ($isPdf) { 
     echo "</td><td>"; 
    } 
?> 
<div class="float"> ... </div> 
<?php 
    if ($isPdf) { 
     echo "</td></tr></table>"; 
    } 
?> 
+1

這對我來說非常有幫助,因爲我在試圖弄清楚css解決方法時揪出我的頭髮。回到桌子上!另外,我還創建了完全不同的頁面問題副本,如果是PDF格式,則直接在那裏。如果不是,則直接指向非表格。 – Cyprus106 2012-03-28 16:42:47

+2

我有同樣的問題。我的解決方案是使用絕對定位,而不是浮動,運行良好,但您需要設置容器尺寸。 – TheFrozenOne 2014-04-16 12:54:25

+0

實際上,HTML2PDF比TCPDF支持更多的CSS,包括絕對定位,邊距和填充。值得一提。 – 2015-10-16 11:56:55