2016-07-23 1 views
0

Я попытался использовать iTextSharp 5.5.9 для редактирования PDF-файлов. Проблема в том, что когда я редактирую большое поле прямоугольника в PDF-файле, он не может сохранить файл. Это код:Как отредактировать большой прямоугольник PDF от iTextSharp?

PdfReader reader1 = new PdfReader(new FileStream(DesFile, FileMode.Open)); 

Stream fs = new FileStream(DesFile, FileMode.Open); 

PdfStamper stamper = new PdfStamper(reader1, fs); 

List<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>(); 

cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(77f,77f,600f,600f), BaseColor.GRAY)); 

PdfCleanUpProcessor cleaner = new PdfCleanUpProcessor(cleanUpLocations, stamper); 

cleaner.CleanUp(); 

stamper.Close(); 

reader1.Close(); 

Я использую http://sox.sourceforge.net/sox.pdf, чтобы проверить, если изменить прямоугольник

new Rectangle(77f,77f,200f,200f) 

Это будет хорошо работать ... Но когда я изменяю назад больший прямоугольник:

new Rectangle(77f,77f,600f,600f) 

Он перестает работать. Пожалуйста помоги!

+2

Он перестает работать не сообщение очень описательный ошибка. Вызывается ли исключение? – nbokmans

+0

'redact' означает «уменьшить» или «уменьшить»? – TaW

+0

Это не вызвало каких-либо исключений @nbokmans – SuperBerry

ответ

0

Разработка iText обычно предупреждает против штамповки в тот же файл, что и исходный код PdfReader. Если это делается так же, как в коде OP, операции чтения и записи могут входить друг в друга, результаты непредсказуемы.

После использования разных файлов для чтения и записи, решение OP начало работать.


Если сначала считывает исходный файл в память в качестве byte[], а затем строит PdfReader из этого массива, можно использовать один и тот же файл, как выходе PdfStamper, работающий на этом читатель. Но этот шаблон также не рекомендуется: если во время штамповки возникает какая-либо проблема, исходное содержимое файла может быть уже удалено, поэтому у вас нет ни форматированного оригинального PDF, ни штампованного результата PDF.

Это может быть неудобно, чтобы объяснить клиенту, что его документы полностью исчезли навсегда ...

Смежные вопросы