首页 > 解决方案 > 如何获取文本并转换为横向和两个文本列的 PDF?

问题描述

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

在此处输入图像描述

我来自一个大文本文件,我需要在 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

标签: itextitext7

解决方案


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

结果如下所示: 结果


推荐阅读