我需要更改纸张方向,然后将文本分为两列。我想要这样:
我来自一个大文本文件,需要将所有这些文本添加到PDF中,如图所示。
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST));
PageSize ps = PageSize.A4;;
Document doc = new Document(pdfDoc, ps);
BufferedReader br = new BufferedReader(new FileReader("verybigfileWithText.txt"));
while ((line = br.readLine()) != null) {
//split pdf and add text in two column without overlapping page
}
doc.close();
而且我需要能够更改中心(两列之间)和上/右/下/左的边距。并获取每列的宽度:)
请帮帮我 Pdf: https://dropmefiles.com/HqD6f
答案 0 :(得分:1)
要更改页面的方向,您可以使用PageSize#rotate
,例如PageSize.A4.rotate()
要将内容放入两列(或更多列)中,可以创建自己的文档渲染器,或使用适合您需要的现有ColumnDocumentRenderer
。它接受允许您控制边距的列区域(甚至可以以特殊的方式放置列,这可能不是您的用例):
Document document = new Document(pdfDocument, PageSize.A4.rotate());
Rectangle[] columnAreas = new Rectangle[] {new Rectangle(30, 30, 350, 520), new Rectangle(430, 30, 350, 520)};
ColumnDocumentRenderer renderer = new ColumnDocumentRenderer(document, columnAreas);
document.setRenderer(renderer);
document.add(new Paragraph(text).setTextAlignment(TextAlignment.JUSTIFIED));
document.close();