gpt4 book ai didi

c# - 使用 iTextSharp 禁用扩展功能

转载 作者:可可西里 更新时间:2023-11-01 09:06:20 26 4
gpt4 key购买 nike

我有一个 PDF 模板,其中的表单启用了扩展功能。使用 iTextSharp 填写此表单的字段后,使用 Acrobat Reader 的用户收到错误消息:

This document enabled extended features in Adobe Reader. The document has been changed since it was created and use of extended features is no longer available. Please contact the author for the original version of this document.

我用谷歌搜索了一下,但所有帖子都在谈论“启用”扩展功能,但是,我希望表单字段保持禁用和扩展功能关闭

这是我正在使用的示例代码:

using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);

// PdfStamper, which will create
var stamper = new PdfStamper(pdfReader, newFileStream);

var form = stamper.AcroFields;

var fieldKeys = form.Fields.Keys;

foreach (string fieldKey in fieldKeys)
{
if (fieldKey.Equals("Retailer Name"))
form.SetField(fieldKey, retailerName);
}
// “Flatten” the form so it wont be editable/usable anymore
stamper.FormFlattening = true;

stamper.Close();
pdfReader.Close();
}

最佳答案

由于 iTextPdf 网站已完全改版,此处的链接已失效。但是没有这些链接也可以理解答案。

iText Keyword : Reader enabled PDFs指向以下信息:

Submitted by Bruno Lowagie on Fri, 12/31/2010 - 16:37

After filling out my form, my PDF shows the following message: This document enabled extended features in Adobe Reader. The document has been changed since it was created and use of extended features is no longer available. Please contact the author for the original version of this document. How do I avoid this message?

表单的创建者启用了文档阅读器。 Reader 启用只能使用 Adob​​e 软件来完成。您可以通过两种方式避免此消息:

  • 删除使用权。这将导致表单不再启用 Reader。例如:如果文档的创建者允许将填写的表格保存在本地,则在删除使用权限后将不再可能。
  • 以附加模式填写表格。这将导致更大的文件大小,但将保留 Reader 启用。

它也指向样本ReaderEnabledForm.java (C#/iTextSharp 的等价物是 ReaderEnabledForm.cs )展示了如何做。

在您的情况下,这相当于调用

pdfReader.RemoveUsageRights();

在创建 PdfReader 之后和创建 PdfStamper 之前。

/**
* Removes any usage rights that this PDF may have. Only Adobe can grant usage rights
* and any PDF modification with iText will invalidate them. Invalidated usage rights may
* confuse Acrobat and it's advisabe to remove them altogether.
*/
public void RemoveUsageRights()

关于c# - 使用 iTextSharp 禁用扩展功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com