正如标题所述,我目前正在努力在pdf-acro字段中强制换行("\n"
和"\r\n"
)。我正在使用OpenPdf和FlyingSaucer(有关详细信息,请参见依赖项),并通过设置“ Ff”属性的位标记13和26设法启用多行和富文本格式的字段。
我使用的是PDF参考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>
问题
依赖项
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'
答案 0 :(得分:0)
它不起作用,因为其中的内容(来自解析的html文件的输入)中包含\r\n
,但是不知何故它仅适用于\n
,所以我做了以下工作:
content.replaceAll("\\\\r\\\\n", Chunk.NEWLINE.getContent()); // 2nd param is just "\n"
这解决了我的问题。