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

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

我在网上搜索并没有找到解决方案来做到这一点。

我有一个带有数据集客户的VB.net表单,我想在textbox.text中获取联系信息并填写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

我在Imports上遇到错误,不知道导入的是什么..

我添加了itextsharp.dll,所以应该没问题。

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

vb.net visual-studio pdf itext
1个回答
0
投票

将Imports放在课堂之外。

© www.soinside.com 2019 - 2024. All rights reserved.