iText故障,使用5.5.4添加元素
我的代码已经在5.5.4更新中被破坏。我已经在内部确认它与以前的3个版本一起工作 添加元素会导致空指针异常iText故障,使用5.5.4添加元素,itext,Itext,我的代码已经在5.5.4更新中被破坏。我已经在内部确认它与以前的3个版本一起工作 添加元素会导致空指针异常 reader = new PdfReader('Users/Me/Documents/a.pdf') stamper = new PdfStamper(reader, new FileOutputStream('some_file')) cb = stamper.getOverContent(1) ct = new ColumnText(cb) ct.setSimpleColum
reader = new PdfReader('Users/Me/Documents/a.pdf')
stamper = new PdfStamper(reader, new FileOutputStream('some_file'))
cb = stamper.getOverContent(1)
ct = new ColumnText(cb)
ct.setSimpleColumn(120f, 48f, 200f, 600f)
pz = new Paragraph ( new Phrase (20, 'Hello World!', f) )
ct.addElement(pz)
ct.go()
stamper.close()
reader.close()
约翰
伟大的新书btw布鲁诺
更新
我以前确实漏掉了一点代码,我试图用一段较长的代码来隔离这个问题
这个版本确实向我展示了这个问题:
bf = BaseFont.createFont(BaseFont.HELVETICA_BOLD, 'Cp1252', BaseFont.EMBEDDED)
f = new Font(bf, 13)
reader = new PdfReader(src')
stamper = new PdfStamper(reader, new FileOutputStream(dest))
cb = stamper.getOverContent(1)
ct = new ColumnText(cb)
ct.setSimpleColumn(120f, 48f, 200f, 600f)
pz = new Paragraph ( 'Hello World!' )
ct.addElement(pz)
ct.go()
stamper.close()
reader.close()
ct.addText(chunk)在5.5.4中有效,但在5.5.1-5.5.3中无效。您的代码示例不完整。例如:它遗漏了您试图添加额外单词的PDF(我使用了一个简单的示例),也遗漏了一些定义,例如
f
变量的声明(我使用了默认字体,即Helvetica,12pt)
当我填写您在问题中留下的空白时,我的结论是:
此代码生成PDF,该文档现在两次显示单词“Hello World!”,一次是因为这些单词已经出现在原始文档中,另一次是因为我们使用您问题中的改编代码添加了这些单词
换句话说:我无法重现您报告的问题,因此您的问题无法回答
请注意,我不理解这一行:
Paragraph pz = new Paragraph(new Phrase(20, "Hello World!", f));
为什么要创建一个短语
,然后将其包装在段落
中?
为什么不使用短语
,或段落
?例如:
Paragraph pz = new Paragraph(20, "Hello World!", f);
编辑:
根据你的编辑,我改编了这个例子。我仍然无法重现问题,不是通过使用:
pz = new Paragraph ( 'Hello World!' )
pz = new Paragraph ( 'Hello World!', f )
(这是你写的),也不是通过使用:
pz = new Paragraph ( 'Hello World!' )
pz = new Paragraph ( 'Hello World!', f )
(这可能是你想写的)
编辑:
使用您在评论中共享的文件,我能够重现问题。我也理解问题发生的原因:您有一个标记为PDF的文件。现在您正在添加未标记的内容。旧版本的iText允许你做这样一个不体贴的操作,而最新版本的iText显然阻止你做一些违背“良好品味”的事情。我将把它传递给开发部,以确定这是否是有意的。让您的代码使用示例和5.5.4。似乎实际上与读者有关。如何发布示例文件?
PdfReader
或Adobe Reader或其他PDF查看器?无法将文件(图像除外)上载到StackOverflow。通常人们会将文件存储在Dropbox、Google Drive,。。。并共享一个链接。。hello world.pdf不会导致错误,但此文件会导致错误。由InDesign制成并压平。当我在iText(面向客户的)查看问题跟踪程序时,我发现这个问题已经解决了。我没有时间去弄清楚它是怎么修好的。