问题标签 [pdfstamper]

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.

0 投票
0 回答
339 浏览

pdf - 如何在移动(调整大小)Stamp Annotation iText 时保留文本

我正在使用 iText 处理一些注释。

我尝试在现有 PDF 文件上绘制带有文本的图章注释。印章注释确实显示在 PDF 上,但是当我移动印章(或调整大小)时,文本(将所有格式)消失并且无法再恢复。

这是我的代码

我也附上了此问题的屏幕截图供您查看。

PDF 文件上的图章渲染

我做了一些研究,如果我更改线路代码

当我移动图章时,文本仍然存在,但如果我调整矩形大小,文本仍然会消失。

0 投票
2 回答
623 浏览

c# - PdfContentStreamEditor 在 PDF 文件上旋转图像

我有一个我希望是一个简单的问题。我正在尝试使用 iTextSharp 修改一些 PDF 文件,但是似乎 iTextSharp 放在文件末尾的 XMP 元数据正在破坏 PDF 文件的布局(而且我对 PDF 格式不太熟悉完全理解为什么)。

这是原始文档的一小部分 以及“已编辑”文档中的同一部分 您可以从上面的两张图片中看到,文档似乎已被旋转。然而,从将 PDF 文件视为二进制差异来看,唯一不同的似乎是文件末尾的一些 XMP 元数据

最后显示 XMP 元数据的文件的 DIFF 作为唯一的区别

我尝试在几个 PDF 查看器(Sumatra PDF、Edge Browser 和 Adob​​e Acrobat)中打开文件,都显示出同样的怪异。

我想我有两个问题:a) PDF 文件如何从文件末尾的 XMP 元数据中改变?b) 如何使 iTextSharp 不产生此输出?(iTextSharp 似乎只在我添加/编辑内容时执行此操作,而不是在我仅删除 Javascript 或类似内容时执行此操作)

<EDIT 1>
我用于 iTextSharp 的代码是来自此处帖子的 PdfContentStreamEditor(逐字):https
://stackoverflow.com/a/35915789/2535822 </EDIT 1>
<EDIT 2>
好的..似乎它不是 XMP 元数据。我通过使用摆脱了它:

但是,文件末尾仍然有一堆额外的数据

</编辑 2>

0 投票
0 回答
19 浏览

java - 无法将文本标记为横向 PDF

我正在使用 iText 5.0 将静态文本添加到几个现有的 PDF 中。以下代码适用于纵向 PDF,但不适用于横向 PDF。我一直在努力让这项工作正常进行,我会感谢任何关于我可能在这里遗漏的提示。

横向示例 PDF:http: //mirrors.ibiblio.org/CTAN/macros/latex/contrib/mwe/example-image-a4-landscape.pdf

代码块:

0 投票
1 回答
907 浏览

javascript - 用于自定义图章的 PDF Javascript 在 Adob​​e Reader DC 中不起作用

下面的代码用于 Adob​​e Reader 中的自定义图章。此代码适用于邮票表中的一行 3 个文本字段。

它的作用:在放置印章时要求用户在 javascript 窗口中输入。提交后,自定义图章表格中的文本字段将填入输入内容。

问题:它在 Adob​​e Acrobat Pro XI 中适用于所有 3 个字段。但除了 Adob​​e Reader DC 中的第一个字段外,它无法用于任何其他领域。导致其他 2 个字段为空白。

第一个字段有效的事实意味着我的代码在底部(“这部分!”)都很好。在修复或让我知道使用用户输入定义字段值的另一种方法方面的任何帮助将不胜感激:)

据我所知(PDF JavaScript 在 Adob​​e Reader DC 但所有其他 Reader 中不起作用)新的 Adob​​e Reader DC 对 javascript 语法非常严格。

0 投票
2 回答
1310 浏览

javascript - 使用 iText 在 pdf 的特定位置上盖章

我试图使用 javascript 获取位置并传递坐标以在图章上应用图章,但它无法正常工作。下面是我用来捕获鼠标指针坐标的函数。

下面是使用 iText 处理冲压部分的后端代码:

这是我要标记的位置:

这是我要盖章的位置

输出不是我所期望的:

输出不是我预期的

0 投票
0 回答
155 浏览

pdf - iTextSharp 添加的页脚和水印没有出现在 Edge 中,但在 Chrome 中可以

我使用 iTextSharp 创建 pdf,并使用 PdfStamper 添加脚注和水印。这一直运作良好。最近在 MS Edge 中查看 pdf 时没有出现页脚和水印。但是,如果我在 Chrome 中查看相同的 pdf,页脚和水印会正确显示。

我将 pdf 文件存储在 Azure 的 blob 存储中。

我最近将 iTextSharp 版本从 V4.1.2.0 更改为 V5.5.13。

添加水印和页脚的代码如下:

我尝试重新安排页脚和水印的应用顺序,并注释掉添加水印或页脚。这些都没有帮助。

我使用代码在代码的其他地方添加页脚,这很有效。在它起作用的地方,页脚将应用于单个页面。在它不起作用的地方,我刚刚将存储在单独 blob 中的页面收集在一起,并将它们合并到一个内存流中。页脚和水印应用于此。

令人困惑的是,pdf 在 Chrome 中可以正常工作,但在 Edge 中却不行。这两种方式都适用——即,如果我在 Chrome 中创建它并在 Edge 中查看它,页脚就会消失,如果我在 Edge 中创建它并在 Chrome 中查看它,页脚就会出现。

有没有其他人看到这个问题并知道如何解决它?

0 投票
2 回答
1923 浏览

javascript - 根据文本框值选中或取消选中复选框 Adob​​e Acrobat Stamp Javascript

它适用于 Adob​​e Acrobat Javascript:

我正在尝试此代码,但失败了两天。我正在尝试将此代码放在 textField 计算选项卡和自定义计算脚本中。

任何帮助将不胜感激。

让我也告诉你我想要达到的目标。我希望如果用户在 textField 中输入任何值,它会检查该值是否为“是”,它应该标记复选框已选中。如果它是 No 它什么也不做或取消选中该复选框。

0 投票
1 回答
522 浏览

java - PDF 文档的数字签名

是否可以为已签名的 PDF 文档生成数字签名?我正在使用以下代码为 PDF 文档生成数字签名。

0 投票
1 回答
818 浏览

c# - PDF 表格在部分填写后不再可编辑

我遇到了一个 Web API 的问题,它接收 PDF 文档(PDF 表单)作为 base64 编码字符串,将其放入文件中,填写一些字段(使用iTextSharpPdfStamper类)并将结果发送回为一个base64编码的字符串,它再次被制作成一个文件。

当我之后尝试使用Foxit Reader打开此文件/文档时,我仍然可以编辑这些字段,但是当我尝试使用Adob​​e Acrobat Reader进行相同操作时,这些字段不再可编辑。

在Foxit Reader中打开属性页并查看文档的安全属性时,它说一切都是允许的。但是,在Adob​​e Acrobat Reader中执行相同操作时,它表示不允许评论、填写字段和签名(这是在将其发送到 API 之前)。

不幸的是,我无法指定最终用户使用的 PDF 阅读器,所以我需要它是通用的。

我可以看到许多其他人发布了关于类似问题的帖子,但我没有在其中看到我的特定问题。

有谁知道这里发生了什么以及如何解决它?

编辑:添加代码

我正在这样做(略微简化,但相同):

编辑:添加了示例 PDF 文件

示例文件只是在互联网上找到的东西,我记得它在这里的另一篇文章中有链接。

我尝试在此 PDF 表单中填写 2 个字段(名字和姓氏)。

一个文件是从 base64 字符串创建的表单。

d94b6076-983d-47db-b496-a0ba383deda4.pdf

第二文件是填写2个字段后的输出。

d94b6076-983d-47db-b496-a0ba383deda4_filled.pdf

0 投票
0 回答
179 浏览

c# - iTextSharp - 添加印章 - 印章不在内容之上,而是在其之下

我正在尝试使用 ITextSharp 的压模来标记现有的 pdf 文档。我能够打开现有的 pdf 并将图像放入所需位置。(在 pdf 上盖章)

问题是邮票(红色图像)总是在图纸下方。(黑色线条在红色图像上方)反之亦然。

我的结果: 在此处输入图像描述

想要的结果正好相反——黑色线条上的红色图像

知道如何正确完成此操作吗?谢谢任何建议。

这是我的代码: