2014-02-27 24 views
1

請參考下圖:ABCPDF沒有顯示完整的表數據

enter image description here

它切斷一些由於寬度的表數據。我的桌子寬度超過1000像素。我知道The default document size for ABCpdf is 612 by 792.

使用下面的代碼來設置文檔的寬度和高度

  double w = doc.MediaBox.Width; 
      double h = doc.MediaBox.Height; 
      double l = doc.MediaBox.Left; 
      double b = doc.MediaBox.Bottom; 
      doc.Transform.Rotate(90, l, b); 
      doc.Transform.Translate(w, 0); 
      doc.Rect.Width = h; 
      doc.Rect.Height = w; 

我要顯示所有表格數據。我需要修改我的桌子尺寸嗎?還是我需要修改pdf的文檔頁面大小?

我該如何解決這個問題?

感謝,

溼婆

+0

您是否將HTML頁面轉換爲PDF? – KTF

+0

是的,我將HTML頁面轉換爲PDF格式。如何設置瀏覽器寬度以顯示所有表格數據 – SivaRajini

+0

您是否可以提供html來重現此行爲? – malkassem

回答

2

審查HTML後,我認爲我可以給你如何解決問題的一些建議:

1-使用Gecko引擎的PDF渲染:

doc.HtmlOptions.Engine = WebSupergoo.ABCpdf9.EngineType.Gecko; 

Gecko引擎在ABCPdf渲染時提供了更好的CSS合規性。

2-在您的Css中,您有overflow-x設爲scrollinner-container。這導致了你所看到的行爲。我將在下面的CSS添加的CSS的底部:

@media print 
{ 
    .outer-container { 
     background-color: #ccc; 
     position: absolute; 
     top:0; 
     left: 0; 
     right: 300px; 
     bottom:40px; 
     overflow: visible; 
     width: 100%; 
    } 
    .inner-container { 
     width: 100%; 
     height: 100%; 
     position: relative; 
     overflow-x: visible; 

    } 

    table 
    { 
     width: 100%; 
    } 
} 

通知的@media print這使得CSS打印過程中才有效,不會影響這樣,它顯示在屏幕上。

3-最後,你可以嘗試用瀏覽器的寬度玩:

doc.HtmlOptions.BrowserWidth = 1200; 

與BrowserWidth屬性唯一的問題是,它會影響到文檔的縮放。所有的文字字體會顯得更小。

祝你好運...

+0

感謝您的及時迴應。將嘗試你的建議一次! – SivaRajini

+0

我們不能在這種情況下使用默認引擎(mshtml)嗎? – SivaRajini

+0

默認引擎,可能會給你不同的結果。 Gecko與最新的Css更兼容。這是一個建議,所以試一試,看看會給你什麼最好的結果。 – malkassem