问题标签 [itext7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pdf - iText - 仅加密嵌入文件
如PDF 32000-1:2008第 7.6.1 节所述,我想创建一个未加密的 pdf 文件,其中包含 iText 的加密嵌入文件:
从 PDF 1.5 开始,嵌入文件可以在其他未加密的文档中加密
但是,以下示例 (iText 7.0.1) 会生成一个带有未加密嵌入文件流的 PDF 文件(关闭压缩以更好地分析生成的 PDF 文件):
此结果似乎与规范说明相反:
如果流的内容嵌入在 PDF 文件中(参见 7.11.4,“嵌入的文件流”),它们应像文件中的任何其他流一样被加密
上述示例生成的 pdf 文件包含 CF 字典中加密嵌入文件流的正确条目:
规范的表 20 指出:
加密嵌入文件时,一致性写入器应尊重此值,但具有自己的加密过滤器说明符的嵌入文件流除外。
在我们的例子中,流没有自己的 CF 说明符,因此应该使用 AESV2 进行加密。但是,在我们的示例中,流未加密:
这导致以下问题:
- 这是 iText 中的错误还是我误解了 PDF 规范?
- 如何使用 iText 创建带有加密嵌入文件的未加密 pdf 文件?
- 如果这(还)不可能,是否有任何其他免费库或命令行工具可以做到这一点?
PS:Acrobat Reader DC 和 PDF-XChange Viewer 2.5 要求输入密码才能打开附件,而(不符合标准的)阅读器(如 evince)可以毫无问题地打开附件。但这不是我的问题。我的问题不是关于读者行为和可能的道德规范,而是关于 pdf 文件本身及其对规范的遵守情况。
pdf - Itext7替换文本根本不起作用
我正在尝试评估 itext7,所以我有一个现有的 pdf,我想替换其中的一些文本,但这不起作用,下面是我的代码;我会很感激一些帮助。谢谢
pdf-generation - 如何在 iText 中为 FormFields 设置行距?
iText 7 表单字段中的默认行距似乎是 2 或 1.5,但我真的很想删除行距。setMultipliedLeading(..)
通常,我通过调用一个Paragraph
对象来设置行距,但它也不PdfAcroForm
是它的子类,PdfTextFormField
没有这个方法,并且只有字符串可以设置为表单字段值。如何设置行距的值?提前致谢。
pdf - iText 7:PdfDictionary 过早发布
对于某些 PDF,我在刷新标签结构时看到了 NPE。iText 7.0.2-SNAPSHOT 会出现此问题。iText 5.5.10 可以很好地处理这些文件。NPE 被抛出,PdfDictionary.get(PdfName key, boolean asDirect)
因为映射为空。该类中的地图唯一可以变为 null 的时间releaseContent()
是被调用的时间。
由于releaseContent()
' 的唯一目的是 - 据我所知 - 释放内存,因此我测试了将其更改为空方法时会发生什么。结果是文件似乎被正常处理。没有更多的例外。这是一个示例文件。
释放后只有少数对象被访问。对于上面的示例文件,这也可以解决问题:
我将把为什么会发生这种情况的分析留给那些比我更有知识的人。我不知道这是损坏的 PDF 还是 iText7 中的错误的结果。
输入输出
我在用 iText 7.0.2-SNAPSHOT 做什么:
输出是什么:
itext7 - itext 7 制表符顺序 - 失败
应该在 iText7 中演示支持 UA 并作为 Jump Start 教程的一部分提供的文件未能通过可访问性完整检查。此测试在 Adobe Acrobat Pro 中可用。
我测试了以下文件: cmp_quick_brown_fox_PDFUA.pdf 和 cmp_united_states_PDFA-3a.pdf
可以使用什么 API 使它们合规?有解决这个问题的计划吗?谢谢你的帮助。
java - Itext 7 中的非 ASCII 字体
我在 Linux Mint 17.1 之上使用 itext-7.0.1
我正在尝试将非 ASCII 文本(希伯来语)添加到 PdfDocument,但文本中缺少所有希伯来语字母:
总结上面的代码:所有 ASCII 文本(英文和数字)都正确写入 PDF,但希伯来字母 ( entity.getName()
) 写为空行。上面的字体在文字处理器中正确输入,但是为了验证这一点,我尝试了其他导致相同结果的字体。
在 itext-5 中有很多内容。我应该切换到 itext-5 而不是 7 吗?
itext - iText 5 到 iText 7 代码转换。列表类型 AcroFields
我有以下用于 pdf 修改的 iText 5 示例,
我正在尝试转换为 iText 7,但我很难转换函数的最后一部分,其中列表类型字段值和简单的 Acrofield 值被插入到文档中。
:------------------------------------------------ --------------
提前感谢您的帮助。