有没有办法在 pdf acro 字段中强制 line-breaks?
Is there a way to force line-breaks in pdf acro fields?
如标题所述,我目前正在努力在 pdf-acro-field 中强制 line-breaks("\n"
和 "\r\n"
)。我正在使用 OpenPdf 和 FlyingSaucer(有关详细信息,请参阅依赖项)并通过设置 "Ff" [=70] 的 bit-flags 13 和 26 来设法启用 multi-line 和 rich-text 字段=].
我使用 PDF-Reference ISO-3200_2008 作为指南(从第 442 页开始)。
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
问题
我阅读现有的 PDF 并以编程方式填写 acro 字段。像这样:
acroFields.setField("address", content);
内容只是一个带有一些换行符的简单字符串。没什么特别的。
我的文字太长,有时会中断。启用多行时,文本将中断,但前提是它到达行尾。基本上,我想显示的是地址和顶部的一些附加信息。但并非所有行的大小都相等,例如我想在同一行上显示信息 1 和 2,在不同的行上分别显示信息 4 和 5。
我想到了什么
<h2>What I want</h2>
<pre>Company XYZ
A brand here</pre>
<pre>Another Section
With some more info that goes further to the right
phone, email, website</pre>
<br>
<h2>What it looks like</h2>
<p>Company XYZ
A brand here
Another Section
With some more info that goes further to the right
phone, email, website</p>
问题
- 有没有办法在 PDF 中普遍实现 line-breaks?
- 有没有办法以编程方式实现line-breaks?
- 我可以在 OpenPdf 或 FlyingSaucer 中执行此操作吗?
- 如果没有简单的方法 - 什么是可行的解决方法?
依赖关系
compile group: 'com.github.librepdf', name: 'openpdf', version: '1.3.3'
compile group: 'com.googlecode.juniversalchardet', name: 'juniversalchardet', version: '1.0.3'
compile 'org.xhtmlrenderer:flying-saucer-core:9.1.18'
compile 'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.18'
它没有用,因为内容(来自解析的 html 文件的输入)里面有 \r\n
,但不知何故它只适用于 \n
所以我做了以下:
content.replaceAll("\\r\\n", Chunk.NEWLINE.getContent()); // 2nd param is just "\n"
这解决了我的问题。
如标题所述,我目前正在努力在 pdf-acro-field 中强制 line-breaks("\n"
和 "\r\n"
)。我正在使用 OpenPdf 和 FlyingSaucer(有关详细信息,请参阅依赖项)并通过设置 "Ff" [=70] 的 bit-flags 13 和 26 来设法启用 multi-line 和 rich-text 字段=].
我使用 PDF-Reference ISO-3200_2008 作为指南(从第 442 页开始)。
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
问题
我阅读现有的 PDF 并以编程方式填写 acro 字段。像这样:
acroFields.setField("address", content);
内容只是一个带有一些换行符的简单字符串。没什么特别的。
我的文字太长,有时会中断。启用多行时,文本将中断,但前提是它到达行尾。基本上,我想显示的是地址和顶部的一些附加信息。但并非所有行的大小都相等,例如我想在同一行上显示信息 1 和 2,在不同的行上分别显示信息 4 和 5。
我想到了什么
<h2>What I want</h2>
<pre>Company XYZ
A brand here</pre>
<pre>Another Section
With some more info that goes further to the right
phone, email, website</pre>
<br>
<h2>What it looks like</h2>
<p>Company XYZ
A brand here
Another Section
With some more info that goes further to the right
phone, email, website</p>
问题
- 有没有办法在 PDF 中普遍实现 line-breaks?
- 有没有办法以编程方式实现line-breaks?
- 我可以在 OpenPdf 或 FlyingSaucer 中执行此操作吗?
- 如果没有简单的方法 - 什么是可行的解决方法?
依赖关系
compile group: 'com.github.librepdf', name: 'openpdf', version: '1.3.3'
compile group: 'com.googlecode.juniversalchardet', name: 'juniversalchardet', version: '1.0.3'
compile 'org.xhtmlrenderer:flying-saucer-core:9.1.18'
compile 'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.18'
它没有用,因为内容(来自解析的 html 文件的输入)里面有 \r\n
,但不知何故它只适用于 \n
所以我做了以下:
content.replaceAll("\\r\\n", Chunk.NEWLINE.getContent()); // 2nd param is just "\n"
这解决了我的问题。