Мне нужно удалить все поля формы pdf, поэтому я использую iText и пытаюсь сгладить PDF.Как сгладить PDF с помощью Itext в C#?
Из-за унаследованного кода я ограничен IText версии 4.1.6.1
Мой код:
public static byte[] RemoveAcroFields(String filename)
{
if (filename != null && File.Exists(filename))
{
byte[] pdfFile = File.ReadAllBytes(filename);
PdfReader reader = new PdfReader(pdfFile);
MemoryStream stream = new MemoryStream(pdfFile);
PdfStamper stamper = new PdfStamper(reader, stream);
stamper.FormFlattening = true;
stamper.Close();
var flattenedPdfBytes = stream.ToArray();
reader.Close();
stream.Close();
return flattenedPdfBytes;
}
else
{
return null;
}
}
Это производит это исключение
bei System.IO.MemoryStream.set_Capacity(Int32 value)
bei System.IO.MemoryStream.set_Capacity(Int32 value)
bei System.IO.MemoryStream.EnsureCapacity(Int32 value)
bei System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
Когда я раскомментировать stamper.close() no Исключение происходит, но полученный pdf не был сплющен
Вы предоставили трассировку стека, но не исключение? Насколько велик ваш PDF-файл? – Paddy
«Наследие» не является оправданием для использования версии iText, которая официально не была выпущена iText Group. Вы используете вилку, распространяемую людьми, которые, возможно, изменили iText таким образом, что это нарушает функциональность. Кроме того: те старые версии iText, предшествующие iText 5.3, не поддерживают большие файлы, поэтому вы можете обновить *, потому что теперь вам нужна дополнительная поддержка больших файлов PDF. * –
Я добавил исключение ... PDF составляет всего 500 КБ –