使用textbox.text中的值填写PDF表单,并在PDF填充后打印PDF

时间:2019-02-23 12:56:09

标签: vb.net visual-studio pdf itext

我已经在网上搜索,但没有找到解决方案。

我有一个VB.net表单,其中包含客户数据集,我想在textbox.text中获取联系信息,并填写PDF表单,然后打印。

在每个创建pdf的地方都提到了itextsharp,而不是填写和打印pdf,我发现了一个很有前途的代码,我对vb.net并不十分熟悉,这是我的第一个程序。

这是我认为可以工作的代码...

Imports System
Imports System.IO
Imports System.Xml
Imports iTextSharp
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.text.xml
Imports System.Security

Private Sub xmltopdf()
    Dim pdfTemp As String = "C:\ExampleTemplate.pdf" ' ---> It's the original pdf form you want to fill
    Dim newFile As String = "C:\NewFile.Pdf" ' ---> It will generate new pdf that you have filled from your program

    ' ------ READING -------

    Dim pdfReader As New PdfReader(pdfTemp)

    ' ------ WRITING -------

    ' If you don’t specify version and append flag (last 2 params) in below line then you may receive “Extended Features” error when you open generated PDF
    Dim pdfStamper As New PdfStamper(pdfReader, New FileStream(newFile, FileMode.Create), "\6c", True)

    Dim pdfFormFields As AcroFields = pdfStamper.AcroFields

    ' ------ SET YOUR FORM FIELDS ------

    pdfFormFields.SetField("Company", "Parth Dave & Co.")
    pdfFormFields.SetField("SalesOrder", "1234456")
    pdfFormFields.SetField("InstallAddress", "Lorimer Street")
    pdfFormFields.SetField("Suburb", "Port Melbourne")
    pdfFormFields.SetField("Post_Code", "3207")
    pdfFormFields.SetField("ClientContact", "Parth")
    pdfFormFields.SetField("ClientPhone", "0402020202")

    pdfStamper.FormFlattening = False

    ' close the pdf
    pdfStamper.Close()
    ' pdfReader.close() ---> DON"T EVER CLOSE READER IF YOU'RE GENERATING LOTS OF PDF FILES IN LOOP
End Sub

我在导入时出错,不知道导入是什么。

我已经添加了itextsharp.dll,所以应该可以。

如果有人可以帮助我或向正确的方向发送邮件,将不胜感激。

1 个答案:

答案 0 :(得分:0)

将Imports放在类之外。