Я пытаюсь сохранить PDF файл, сохранив данные из FDF в PDFTemplate, в моем WPF приложения.Написать FDF в PDF с помощью iTextsharp
Итак, ситуация такая. У меня есть 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();
}
Я не уверен относительно того, что я Я делаю неправильно. Пожалуйста помоги.
Поздно к вечеринке, но, по-моему, вам нужно только сбросить позицию MemoryStream до 0 до сброса в поток файлов. – zbarrier