2011-12-10 26 views
10

Xin chào: Phương thức "setMargins" trong IText có hoạt động theo cách thông thường không?iText: Thiết lập lề có hoạt động không?

Tôi đã thử những điều sau

 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(); 

Tuy nhiên, tôi nhận được đầu ra giống như đầu vào của tôi. Tôi tự hỏi có một thủ thuật đặc biệt để có được phương thức setMargins hoạt động bình thường.

Trả lời

16

setMargins phương pháp chỉ hoạt động trước khi

document.open(); 
+0

Vâng, điều đó đã hoạt động .... cảm ơn – Saqib

1

Margins có thể được thay đổi sau khi open(), tuy nhiên, những thay đổi chỉ có hiệu lực sau khi newPage().

Thêm PdfImportedPage làm "hình ảnh" tôn vinh lề của tài liệu.

Ví dụ:

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

Bạn có thể thay đổi trái và lề đỉnh trong tài liệu pdf mới bằng cách thêm bù đắp bằng cách gọi

cb.addTemplate(page, leftMarginOffset,topMarginOffset); 

số tích cực sẽ làm giảm lợi nhuận và số âm tăng chúng.

Các vấn đề liên quan