2017-08-31 46 views
-2

基於條件我需要隱藏一個部分,下面的部分應該移到上面。因此,在生成PDF時,隱藏部分不應顯示爲空白。如何使用iText7隱藏PDF中的一個部分

+0

能否請您提供一些代碼,你已經盡力了,而且你已經發現了一些具體問題? – ainwood

+1

你的問題是錯誤的。你不能談論PDF,因爲你的要求違背了PDF規範。你可能在談論HTML,.docx,.txt,RTF,... –

回答

1

一些澄清:

如果您正在使用現有的PDF這樣做,是不可能奏效。 pdf文件不是所見即所得格式。把它們看作是繪圖指令的容器,而不是容器的文本。

移動現有文檔的部分將無法工作,因爲:

  • 文檔本身包含了什麼指令一起去彌補行,段落沒有信息,以及部分
  • 的文檔使用壓縮和字節偏移量,移動或刪除它的一部分將意味着您需要重新計算所有的字節偏移量

如果您放棄重新流動文本的要求,這肯定是可能的。 iText已經有一個名爲pdfSweep的插件,它可以查看所有繪圖和渲染操作,並刪除與給定矩形相交的那些(或調整它們,例如當路徑穿過矩形時)。

如果你正在生成pdf,這當然是微不足道的。你可以簡單地這樣做:

File outputFile = new File(System.getProperty("user.home"),"output.pdf"); 
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outputFile)); 
Document layoutDocument = new Document(pdfDocument); 

if(some_condition) 
{ 
    layoutDocument.add(new Paragraph("Lorem Ipsum Dolor Sit Amet")); 
} 
layoutDocument.add(new Paragraph("Never gonna give you up. Never gonna let you down.")); 

退房http://itextpdf.com/itext7/pdfsweep

+0

謝謝Joris..i會處理你的建議 –