Layers (Optional Content Groups)

Слои (наслоения), или более формальное их название – группы с выборочным содержимым, представляют собой совокупность графических элементов, которые пользователь может динамически сделать видимыми или невидимыми при просмотре документа. (Такая возможность является полезной в таких случаях, как CAD рисование, карты или многоязычные документы) С появлением версии PDF 1.5. такая возможность стала доступна и в PDF. Формы, картинки и аннотации так же могут входить в группы с выборочным содержимым.

Каждой группе присуще состоянием, которое может принимать одно их двух значений: вкл/выкл. Состояния могут изменяться программно или через пользовательский интерфейс приложения. Состояния влияют на видимость содержимого группы. Как правило, содержимое группы является видимым, когда ее состояние имеет значение вкл. и невидимым – когда выкл. Когда группа в PDF документе имеет состояние выкл., то оно не отображается.

Вы можете посмотреть все группы, которые используются в PDF документе, на вкладке Layers. (для  Adobe Reader). Откройте пункт меню “View”, перейдите к “Navigation Tabs”  и выберите пункт “Layers”.

Здесь мы дадим несколько инструкций, как создать PDF документ с группами при помощи нашей библиотеки PDF Creator Pilot. В примере мы создадим PDF документ с несколькими группами с выборочным содержимым (пример на языке VBScript).

' Создаем объект PDF Document
Set PDF = CreateObject("PDFCreatorPilot.PDFDocument4")
PDF.SetLicenseData "demo@demo", "demo"

' Устанавливаем заголовок для документа
PDF.SetTitle "PDF with Layers", 1

'  Далее создаем группу с выборочным содержимым.
groupIndex = PDF.CreateContentGroup("Text Optional Content Group")

' Затем нужно добавить содержимое в группу. Содержимое группы должно быть
' заключено между операторами BeginMarkedContent and EndMarkedContent. Между этими
' операторами можно рисовать графические фигуры, картинки, формы, аннотации или
' текст.

'  Пример группы с текстовым содержимым:
PDF.BeginMarkedContent groupIndex
PDF.ShowTextAt 10, 40, "Hello, optional content group!"
PDF.EndMarkedContent

'  Пример группы с графическим содержимым:
img = PDF.AddImageFromFile(L"image.jpg")
PDF.BeginMarkedContent groupIndex
PDF.ShowImage img, 150, 100
PDF.EndMarkedContent

'  Пример группы с аннотациями:
PDF.BeginMarkedContent groupIndex
PDF.AddUnicodeTextAnnotation 10, 10, L"Title", L"Some text goes here..."
PDF.EndMarkedContent

'   Вы можете объединять содержимое различных типов в одну группу. Например,
PDF.BeginMarkedContent groupIndex
PDF.ShowTextAt 10, 40, "Hello, optional content group!"
PDF.AddEditBox 50, 210, 150, 250, "edt1"
PDF.SetColor 0.0, 0.9f, 0.0, 0.0
PDF.ResetPath
PDF.DrawEllipse 100, 200, 200, 300
PDF.FillAndStroke
PDF.EndMarkedContent

' Задаем имя для сохранения pdf документа.
PDF.SaveToFile "PdfWithContentGroups.pdf", true

' disconnect from library
Set PDF = Nothing

Надеемся, что данный пример кода и несколько PDF документов с группами продемонстируют, что такое группы с выборочным содержимым в PDF и как их можно создать, используя библиотеку PDF Creator Pilot.

Здесь вы можете загрузить примеры  PDF документов с группами и пример код, для создания подобных документов:
http://www.colorpilot.com/downloads/ContentGroupsExample.pdf
http://www.colorpilot.com/downloads/ContentGroupsExample_SourceCode.zip

Артем Голубниченко
Руководитель проекта Виртуальный Принтер

Leave a Reply

Your email address will not be published. Required fields are marked *