2011-12-10 59 views
10

嗨:IText中的「setMargins」方法是否以傳統方式工作?iText:設置邊距是否有效?

我曾嘗試以下

 System.out.println(f.exists()); 
     Document document = new Document(PageSize.A4,36,36,36,36); 
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(f.getAbsolutePath()+"0.pdf")); 
     document.open(); 

     //reader 
     PdfReader reader = new PdfReader(new FileInputStream(f)); 
     PdfContentByte cb = writer.getDirectContent(); 

     for(int i = 1 ; i < reader.getNumberOfPages()+1 ; i++) 
     { 
      System.out.println(f.getName()+" "+i); 
      PdfImportedPage page = writer.getImportedPage(reader, i); 
      document.newPage(); 
      cb.addTemplate(page,0,0); 
     } 


     // Add your new data/text here 
     // for example... 
     //document.add(new Paragraph("my timestamp")); 
     document.close(); 

不過,我得到的輸出作爲我的輸入相同。我想知道有一個特殊的技巧讓setMargins方法正常工作。

回答

16

setMargins方法效果

document.open(); 
+0

那麼,工作....謝謝 – Saqib

1

邊距可以改變open()後,但是,改變只需要newPage()後生效之前只。

將「PdfImportedPage」添加爲「圖片」表示對文檔的邊緣進行標記。

例子:

通過調用

cb.addTemplate(page, leftMarginOffset,topMarginOffset); 

正數將減少利潤和負數提高他們

PdfImportedPage page = writer.getImportedPage(reader, i); 
document.add(Image.getInstance(page)); 
1

你可以改變左,新的PDF文檔中的頂邊距通過添加偏移。