Itext 如何在拆分页上添加新行

Itext 如何在拆分页上添加新行,itext,Itext,我正在使用(Java) 已解决: 删除所有\n后,我在文档创建时添加了新的页边距 不需要document.setMargins() 当您指出您同时使用iText 5.5.x和7.1.x时,不清楚代码中的类来自哪个库版本。对不起。我也有点困惑。放置corelibs,但在没有它的情况下可以工作。没有iTextPDF 7。。。删除了核心库。对不起,我的英语。如果有不清楚的地方,请告诉我。好的,首先,如果您需要文档。添加(新段落(“\n\n\n\n”)要给由setPageEvent打印的heder留出空

我正在使用(Java)

已解决: 删除所有
\n
后,我在文档创建时添加了新的页边距

不需要
document.setMargins()


当您指出您同时使用iText 5.5.x和7.1.x时,不清楚代码中的类来自哪个库版本。对不起。我也有点困惑。放置
core
libs,但在没有它的情况下可以工作。没有iTextPDF 7。。。删除了核心库。对不起,我的英语。如果有不清楚的地方,请告诉我。好的,首先,如果您需要
文档。添加(新段落(“\n\n\n\n”)
要给由
setPageEvent
打印的heder留出空间,那么您已经做错了:在文档的顶部和底部空白区域选择绘制页眉和页脚的坐标。如果需要更多空间,请选择更大的边距。因此,没有必要在由
文档填充的主页体中留下空白。添加
调用。正如您自己发现的,通过提前设置页边距(在
文档之前。打开()
,例如在文档构造函数中),也可以使页边距计入第1页。
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13</version>
</dependency>
Document document = new Document( PageSize.A4 );
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream( pdfFullPath ) );
writer.setPageEvent( new HeaderAndFooter() );

    for ( some condition for each page ) {
            document.add( theLogoInLeftTop );     
            document.add( new Paragraph("\n\n\n\n\n") );  <<<-- Will give room for the heder printed by the `setPageEvent`           

            Image thumb = Image.getInstance( theImage );
            float scaler = ((document.getPageSize().getWidth() - document.leftMargin()
                           - document.rightMargin() ) / thumb.getWidth()) * 100;                

            thumb.scalePercent(scaler);
            thumb.setBorder( Image.BOX );
            thumb.setBorderWidth(1);
            document.add( thumb );        

            PdfPTable table = new PdfPTable( new float[] { 1, 3 } );
            table.setTotalWidth( document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin() );
            table.setLockedWidth(true);  


            // Too much rows will cause a page break and will print 
            // the rows over the header.
            for( some or few rows ) {
                table.addCell( someLeftText );
                table.addCell( someRightText );
            }

            document.add(table);            
            document.newPage();
    }

    document.close();
    writer.close();     
public class HeaderAndFooter extends PdfPageEventHelper {

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
      // Printing the headers using
      // ColumnText.showTextAligned

    }

}   
float left = 30;
float right = 30;
float top = 85;
float bottom = 20;        

Document document = new Document( PageSize.A4, left, right, top, bottom );