我的目标是使用SetField
从代码中更改PDF,然后使用API下载它。 API可以运行,并且可以下载PDF,但未进行任何更改。
工作几天后,我必须寻求帮助。
我想要达到的目的是将更改后的文件取回。
我得到了填充的值,并使用GetField
看到该字段已设置,但是再次下载时,PDF中没有任何更改。
这是我使用的代码。
var pth = $"{Environment.CurrentDirectory}.Services\\Pdf\\plan2.pdf";
PdfReader pdfReader = null;
byte[] bytes = File.ReadAllBytes(pth);
try
{
using (MemoryStream outStream = new MemoryStream())
{
MemoryStream inputStream = new MemoryStream(bytes);
pdfReader = new PdfReader(inputStream);
PdfStamper pdfStamper = new PdfStamper(pdfReader, outStream);
pdfStamper.AcroFields.GenerateAppearances = true;
pdfStamper.AcroFields.SetField("registersubject", "testSubject");
pdfStamper.FormFlattening = true;
pdfStamper.FreeTextFlattening = true;
pdfStamper.Writer.CloseStream = false;
pdfStamper.Close();
return outStream.ToArray();
}
}