如何获取文本并以横向和两个文本列转换为PDF?

时间:2019-04-26 20:41:58

标签: itext itext7

我需要更改纸张方向,然后将文本分为两列。我想要这样:

enter image description here

我来自一个大文本文件,需要将所有这些文本添加到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

1 个答案:

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

结果如下所示: result