0

我的目标是使用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();
            }
        }
4

0 回答 0