Можно ли использовать iTextSharp для удаления из объектов документа PDF, которые не видны (или, по крайней мере, не отображаются)?
Подробнее:
1) Мой источник - это страница PDF, содержащая изображения и текст (возможно, некоторые векторные рисунки) и встроенные шрифты.
2) Существует интерфейс для создания нескольких "полей обрезки".
3) Я должен создать новый PDF файл, содержащий только то, что находится внутри полей обрезки. Все остальное должно быть удалено из результирующего документа (действительно, я могу принять контент, который находится наполовину внутри и наполовину снаружи, но это не идеал, и он не должен появляться в любом случае).
Мое решение:
Я успешно разработал решение, которое создает новые временные документы, каждый из которых содержит содержимое каждого поля обрезки (используя writer.GetImportedPage и contentByte.AddTemplate для страницы, которая точно равна размеру поля обрезки). Затем я создаю окончательный документ и повторяю процесс, используя метод AddTemplate, чтобы разместить каждую "обрезанную страницу" на последней странице.
Это решение имеет 2 больших недостатка:
- Размер документа - [исходный размер] * [количество полей обрезки], так как вся страница там, штампована много раз! (невидимый, но он там)
- доступ к невидимому тексту можно получить, выбрав все (CTRL + A) внутри Reader и вставленные.
Итак, я думаю, мне нужно перебирать объекты PDF, обнаруживать, видимо или нет, и удалить его. На момент написания статьи я пытаюсь использовать pdfReader.GetPdfObject.
Спасибо за помощь.