Adobe Sdk программно удаляет водяные знаки

Я использую библиотеку Adobe PDF (интерфейс C++) и некоторое время пытаюсь удалить водяные знаки из существующего PDF.

Чтобы добавить водяной знак, я использовал PDDocAddWatermarkFromText метод, но мне нужно будет удалить ранее существующие водяные знаки в файле.

Я выполнил задачу, когда водяной знак был добавлен в качестве аннотации, но это не охватит все возможные случаи, так как кажется, что они могут быть добавлены также в качестве фоновых объектов. Нужно знать, как эти фоновые объекты могут быть удалены из файла.

Спасибо за помощь!

2 ответа

Что ж, может оказаться затруднительным четко идентифицировать водяные знаки, которые существуют как чисто текстовые для удаления вместо, например, существующих как аннотация водяного знака. При этом, если вы можете определить шаблон для форматирования водяных знаков, возможно, удастся найти решение.

Вы пытались связаться с отделом поддержки для получения дополнительной помощи?

Водяные знаки, как правило, будут последним элементом потока контента страницы, а Фоны будут первым элементом потока контента. Поэтому я бы проверил, является ли первый или последний элемент PDEForm. И если это так, я бы тогда проверил, есть ли в PDEFormCosObj запись словаря PieceInfo. Словарь PieceInfo может указывать, является ли это WaterMark или Background.

В противном случае вам может потребоваться проанализировать содержимое этой PDEForm на предмет свойств, похожих на водяные знаки (например, является ли это текстовым элементом с одним textRun? Указывает ли матрица Form|Text|TextRun какой-либо поворот?)

Другие вопросы по тегам