Python - создать многослойный PDF

Есть ли способ использовать Python для создания нескольких слоев PDF. Но не слияние.

Я думаю, что многослойность PDF означает, что на странице более одного слоя, и я могу выбрать, какой слой показывать в Acrobat.

Вот документ, который я нахожу о многоуровневом PDF: http://www.open.ac.uk/opencetl/files/opencetl/file/ecms/web-content/Multi-pdf-how-to-%20file.pdf

И пример многослойного PDF: http://www.talkgraphics.com/attachment.php?s=1901864ddbe7b63f672440daffc3907e&attachmentid=76844&d=1285324919

3 ответа

Вы можете использовать PyPDF2 для наложения страниц из разных файлов PDF, создавая другой файл PDF, который не сглаживается.

Вы можете найти хороший пример добавления водяного знака здесь. Посмотрите на пример и объяснение в разделе "Наложение страниц".

Из того, что я могу сказать, ни Reportlab, ни Pypdf не имеют механизмов для создания блоков отмеченного контента, необходимых для реализации слоев (или необязательных групп содержимого).

Я создал такой, используя интерфейс IronPython и Datalogics .Net для APDFL. Существует также интерфейс Java, поэтому вы можете сделать то же самое с Jython.

В основном метод заключается в том, что вы создаете группу Optional ContentGroup для своего слоя, затем добавляете содержимое, которое вы хотите в своем слое, в контейнер и задаете для OptionalContentMembershipDict контейнера значение OptionalContentMemberDict, которое соединяет эти два элемента.

ocg = PDFL.OptionalContentGroup(doc,"Labels")
doc.DefaultOptionalContentConfig.Order.Insert(0,PDFL.OptionalContentOrderLeaf(ocg))
labelContainer.OptionalContentMembershipDict = PDFL.OptionalContentMembershipDict(doc,[ocg,],PDFL.VisibilityPolicy.AnyOn)

Где labelContainer - это Контейнерный Элемент, который я добавил в Содержимое моей страницы.

Раскрытие: я работаю для Datalogics.

Число зрителей, которым необходимо просматривать слои, составляет очень небольшое меньшинство и обычно не соответствует стандарту PDF/X-4. Но многие редакторы Python могут изменять или добавлять OCG, однако из-за сложности многие из них являются приложениями коммерческого уровня, такими как PyMuPDF на основе MuPDF. . https://pymupdf.readthedocs.io/en/latest/document.html#Document.get_layer

До сих пор

PDF/X-1a и PDF/X-3, которые до сих пор широко используются в качестве стандартного обмена данными с коммерческими принтерами, явно запрещают использование OCG (дополнительных групп контента, также известных как слои).

Обратной стороной слоев является то, что даже если вы их создадите, большинство программ для чтения PDF-файлов, включая Lightweight Adobe Acrobat, видят их как один или все без каких-либо средств для включения и выключения, кроме как путем установки раздутого редактора Acrobat или Full Enhanced Reader, такого как ОКРУГ КОЛУМБИЯ. Или легкое приложение для редактирования аннотаций.

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