以 pdf 表格填写数据

问题描述 投票:0回答:2

尝试使用 PdfSharp,使用此处显示的示例代码,但没有任何效果。

我使用Win 10下提供的Microsoft PrintToPdf服务打印了一个Web文档,读取该文档,但AcroForm属性什么都没有,所以我失败了。

我错过了什么?

致以诚挚的问候

格哈德

Public Shared Sub test()

        Dim doc As PdfDocument = PdfReader.Open("C:\xxx\yyy.pdf", PdfDocumentOpenMode.Modify
        Dim form As PdfAcroForm = doc.AcroForm

        If doc.AcroForm.Elements.ContainsKey("/NeedAppearances") = False Then
            doc.AcroForm.Elements.Add("/NeedAppearances", New PdfSharp.Pdf.PdfBoolean(True))
        Else
            doc.AcroForm.Elements("/NeedAppearances") = New PdfSharp.Pdf.PdfBoolean(True)
        End If

        Beep()

    End Sub

实际结果是形式什么都没有(C#中为null)

pdfsharp
2个回答
3
投票

找到了可行的解决方案。 我获得 NuGet 包 PDFsharp 和 PDFsharp-MigraDoc。您可以填写这样的字段:

Dim field As PdfTextField = DirectCast(myForm.Fields(fieldName), PdfTextField)
field.ReadOnly = False                                                                  ' Prepare the field for writing
field.Value = New PdfString(value)
field.ReadOnly = True                                                                   ' Seal the field to prvent user modifications
field.MultiLine = isMultiline

它运行良好,而且是免费的。


1
投票

您可能已经找到答案,但供将来参考: AcroForm(或 Acrobat Forms)是一种表单规范,用于在 PDF 文件上制作表单。

您的 PDF 可能是一个没有表单的平面文件。

您可以使用 Adobe Acrobat Professional(付费)或网站 PDFEscape(支持广告)

制作 PDF 的 AcroForm
© www.soinside.com 2019 - 2024. All rights reserved.