Itext 如何获取文本并转换为具有横向和两个文本列的PDF?

Itext 如何获取文本并转换为具有横向和两个文本列的PDF?,itext,itext7,Itext,Itext7,我需要更改纸张方向,然后将文本分为两列。我想要喜欢它: 我来自一个大的文本文件,我需要将所有这些文本添加到照片中的PDF中 PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST)); PageSize ps = PageSize.A4;; Document doc = new Document(pdfDoc, ps); BufferedReader br = new BufferedReader(new FileReader("very

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

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

要更改页面方向,可以使用
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();