鉴于以下内容:如您所见,标题当前位于第4页,内容位于第5页。我在这个文件中有大约25节,有没有一种方法,让一个页面上的区域,以评估如果我的标题和一些内容将能够适应它?如果我可以评估一下,我可以使用 document().newPage()
document().newPage()
qybjjes11#
你可以用 PdfPageEvent 以下是示例:
PdfPageEvent
import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.io.*; public class App { public static void main(String[] args) throws FileNotFoundException, DocumentException { Document document = new Document(PageSize.A6, 20, 20, 20, 20); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/tmp/out.pdf")); writer.setPageEvent(new PdfListener()); document.open(); for (int i = 0; i < 10; i++) { Paragraph paragraph = new Paragraph(); paragraph.add(new Phrase("The chapter "+i)); Chapter chapter = new Chapter(paragraph, 1); Section section1 = chapter.addSection("The section "+i+".1", 2); Section section2 = chapter.addSection("The section "+i+".2", 2); document.add(chapter); document.add(section1); document.add(section2); } document.close(); } public static class PdfListener implements PdfPageEvent { public void onChapter(PdfWriter writer, Document dcmnt, float f, Paragraph prgrph) { if( f < 50.0f ){ dcmnt.newPage(); } } public void onChapterEnd(PdfWriter writer, Document dcmnt, float f) {} public void onSection(PdfWriter writer, Document dcmnt, float f, int i, Paragraph prgrph) { if( f < 50.0f ){ dcmnt.newPage(); } } public void onSectionEnd(PdfWriter writer, Document dcmnt, float f) {} public void onOpenDocument(PdfWriter writer, Document dcmnt) {} public void onStartPage(PdfWriter writer, Document dcmnt) {} public void onEndPage(PdfWriter writer, Document dcmnt) {} public void onCloseDocument(PdfWriter writer, Document dcmnt) {} public void onParagraph(PdfWriter writer, Document dcmnt, float f) {} public void onParagraphEnd(PdfWriter writer, Document dcmnt, float f) {} public void onGenericTag(PdfWriter writer, Document dcmnt, Rectangle rctngl, String string) {} } }
点(0/0)位于左下角,而不是页面的开头
1条答案
按热度按时间qybjjes11#
你可以用
PdfPageEvent
以下是示例:点(0/0)位于左下角,而不是页面的开头