PowerShell和ITextSharp - 基于模板创建新的PDF

时间:2013-01-30 00:30:40

标签: pdf powershell replace itextsharp

我使用ITextSharp和PowerShell创建PDF文档。

我希望能够加载一个理想情况下具有占位符的现有模板PDF文件,然后用我提供的值替换占位符。

然后我想将更改保存为新PDF文档。

这可能吗?

现在这里是我创建PDF的代码

[System.Reflection.Assembly]::LoadFrom("c:\\itextsharp.dll")
[void][iTextSharp.text.pdf.PdfWriter]::GetInstance($Doc, [System.IO.File]::Create("c:\existing.pdf") )
# Need to edit $Doc (replace values, add elements) then save as new file
$Doc.Close()

感谢任何帮助。

谢谢, 安德鲁

1 个答案:

答案 0 :(得分:2)

您将使用AcroFields.SetFields方法在可填写PDF表单的每个字段中指定所需的值:

[System.Reflection.Assembly]::LoadFrom($iTextSharpLibFullname)

$reader = New-Object iTextSharp.text.pdf.PdfReader($templateFileFullname)

$stamper = New-Object iTextSharp.text.pdf.PdfStamper($reader, 
                                                     [System.IO.File]::Create($outputFileFullname)) 

$stamper.AcroFields.SetField('Field1_Name', 'Field1_Value')
$stamper.AcroFields.SetField('Field2_Name', 'Field2_Value')
#etc. for each field in your form...     

$stamper.Close()

其中:
$iTextSharpLibFullname是对iTextSharp.dll的引用 $templateFileFullname是您的可填写PDF模板表单的名称 $outputFileFullname是您要创建的PDF的名称