【问题标题】:Fill in data in a pdf form在pdf表格中填写数据
【发布时间】:2019-05-17 13:07:41
【问题描述】:

尝试使用 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)

【问题讨论】:

  • 我知道这已经过时了,但你有没有找到答案?实际上,我正在做类似的事情
  • 是的,找到了可行的解决方案。哦,我的上帝,这个论坛是 .... 不允许下线。抱歉: Imports PdfSharp.Pdf Imports PdfSharp.Pdf.AcroForms Imports PdfSharp.Pdf.IO and

标签: pdfsharp


【解决方案1】:

稻草, 想加评论,失败,太长了。 所以我写了一个答案。不错的论坛软件,不是吗?

是的,找到了可行的解决方案。我得到了 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

--> 工作正常。而且是免费的。

致以最诚挚的问候

格哈德

【讨论】:

    【解决方案2】:

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

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

    您可以使用 Adob​​e Acrobat Professional(付费)或网站 PDFEscape(广告支持)制作 PDF 的 AcroForm

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 2016-04-05
      • 2013-01-03
      • 2012-07-28
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多