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 ответа
Из того, что я могу сказать, ни 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, такого как ОКРУГ КОЛУМБИЯ. Или легкое приложение для редактирования аннотаций.