itext - 如何获取文本并转换为横向和两个文本列的 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
解决方案
要更改页面的方向,您可以使用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();
推荐阅读
- c++ - 将字符写入C(mbed)中的文件?
- python - 关于 Python 中 UTF8 的 Fastq 问题
- express - 使用 $pull 删除子文档项
- android - 启动另一个意图的活动不起作用
- google-chrome - Chrome 中 CTAP2 (FIDO2) 协议的不完整实现?
- php - PHP - 如何打印具有特定模式的字符串?(词搜索网格)
- java - Ajax 调用数据不绑定
- git - 使用 Netbeans 连接到 azure devops GIT 存储库时出现“不正确的凭据”错误
- python - 如何动态定义窗口名称变量
- javascript - 使用 emit 切换变量值