2011-12-10 12 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

余白ただし、変更はのみnewPage()後に有効になり、open()後に変更することができます。

「画像」としてPdfImportedPageを追加すると、文書の余白が優先されます。

例:

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

あなたは

正の数がマージンと負の数は、それらを増やす削減する

cb.addTemplate(page, leftMarginOffset,topMarginOffset); 
を呼び出すことにより、オフセット追加することによって、新しいPDF文書の左と上余白を変更することができます。

関連する問題