11

iTextのsetMarginsメソッドは従来の方法で機能しますか?

私は次のことを試しました:

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メソッドを正常に動作させるための特別なトリックがあるかどうか疑問に思っています。

4

4 に答える 4

20

setMarginsメソッドは次の前にのみ機能します。

document.open();
于 2012-06-15T14:34:32.890 に答える
1

マージンは の後に変更できますが、変更はの後open()にのみ有効になりnewPage()ます。

を「画像」として追加するPdfImportedPageと、ドキュメントの余白が考慮されます。

例:

PdfImportedPage page = writer.getImportedPage(reader, i); 
document.add(Image.getInstance(page));
于 2012-10-08T12:37:31.997 に答える
1

呼び出してオフセットを追加することにより、新しいpdfドキュメントの左マージンと上マージンを変更できます

cb.addTemplate(page, leftMarginOffset,topMarginOffset);

正の数は余白を減らし、負の数は余白を増やします。

于 2014-06-19T18:16:25.333 に答える