gpt4 book ai didi

c# - ITextSharp PDFTemplate FormFlattening 去除填充数据

转载 作者:太空狗 更新时间:2023-10-29 20:47:31 26 4
gpt4 key购买 nike

我正在将现有应用程序从 Java 移植到 C#。原始应用程序使用 IText 库来填写 PDF 表单模板并将它们另存为新的 PDF。我的 C# 代码(示例)如下:

string templateFilename = @"C:\Templates\test.pdf"; 
string outputFilename = @"C:\Output\demo.pdf";

using (var existingFileStream = new FileStream(templateFilename, FileMode.Open))
{
using (var newFileStream = new FileStream(outputFilename, FileMode.Create))
{
var pdfReader = new PdfReader(existingFileStream);
var stamper = new PdfStamper(pdfReader, newFileStream);

var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;

foreach (string fieldKey in fieldKeys)
{
form.SetField(fieldKey, "REPLACED!");
}

stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
}

只有当我省略时,一切才能正常工作

stamper.FormFlattening = true;

行,但随后表格显示为...表格。当我添加这一行时,任何设置到表单字段的值都会丢失,从而导致空白表单。如果有任何建议,我将不胜感激。

最佳答案

在使用 iTextSharp 5.4.4(或更高版本)时,您很可能可以通过强制 iTextSharp 为表单字段生成外观来解决此问题。在您的示例代码中:

var form = stamper.AcroFields;
form.GenerateAppearances = true;

关于c# - ITextSharp PDFTemplate FormFlattening 去除填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18925311/

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