我正在尝试通过将FDF中的数据保存到我的WPF应用程序中的PDFTemplate来保存PDF文件。
所以,情况是这样的。我有一个PDFTemplate.pdf作为模板并具有占位符(或字段)。现在我以编程方式生成这个FDF文件,该文件又包含要填写的PDFTemplate所需的所有字段名称。此外,这个FDF还包含PDFTemaplte的文件路径,因此在打开时,它知道要填写哪个PDF利用。
现在,当尝试双击FDF时,它会打开Adober Acrobat Reader并显示填充了数据的PDFTemplate。但我无法使用“文件”菜单保存此文件,因为它说此文件将在没有数据。
所以,然后我决定使用iTextsharp,阅读PDFTemaplate文件,阅读FDF文件并从那里获取数据,然后创建另一个PDF文件并将其与数据一起保存。
以下是我正在使用的代码,但是当我打开新保存的文件时,它说文件已损坏且无法修复:
using (MemoryStream pdfFlat = new MemoryStream())
using (PdfReader pdfReader = new PdfReader(templateLocation))
using(PdfStamper pdfStamper = new PdfStamper(pdfReader, pdfFlat))
using(FdfReader fdfReader = new FdfReader(fdfFileNameAndPath))
{
AcroFields pdfForm = pdfStamper.AcroFields;
pdfForm.SetFields(fdfReader);
pdfStamper.FormFlattening = true;
pdfStamper.Writer.CloseStream = false;
using (FileStream saveStream =
new FileStream(
outputFileNameAndPath,
FileMode.Create,
FileAccess.Write))
{
pdfFlat.WriteTo(saveStream);
pdfFlat.Flush();
saveStream.Close();
}
fdfReader.Close();
pdfStamper.Close();
pdfReader.Close();
pdfFlat.Close();
}
我不确定我做错了什么。请帮忙。