Skip to main content

appendPages

Краткая информация

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

Обсуждение

PDFDocumentOpen и PDFDocumentCreate являются двумя функциями, которые обеспечивают ссылку на объект PDFDocument.

Один из стандартных сценариев создания новых файлов PDF предназначен для создания атласов. Как правило, необходимо создать новый объект PDFDocument, присоединить к нему содержание других PDF-файлов и сохранить объект PDFDocument на диск. Другим стандартным сценарием является изменение содержания существующего файла PDF или его свойств. После того, как вы получили ссылку на PDFDocument, вы можете выполнить методы appendPages, insertPages или deletePages, а также использовать методы updateDocProperties и updateDocSecurity для изменения настроек PDF-файла.

Метод deletePages удобен для выгрузки только тех страниц, которые должны быть изменены. Обработка большого количества страниц занимает много времени. Если были изменены всего несколько страниц, быстрее удалить их, затем добавить измененные страницы с помощью метода insertPages.

В настоящий момент при использовании Python для настройки безопасности PDF документа, она ограничена шифрованием RC4. Если вы настраиваете безопасность PDF в ArcGIS Pro, она ограничена шифрованием AES 256-bit. Это значит, что, если вы управляете документами PDF, используя Python, вы ограничены работой только с теми документами PDF, которые не защищены, либо документами с шифрованием RC4.

Синтаксис

appendPages()

Свойства

Имя Объяснение Тип данных

pageCount

(Только для чтения)

Возвращает целое число, отображающее общее число страниц в документе PDF.

Long

Методы

appendPages(pdf_path, {input_pdf_password})

Добавляет один документ PDF в конце другого.

Имя Объяснение Тип данных

pdf_path

Необходимо вставить строку с указанием расположения и имени присоединяемого документа PDF.

String

input_pdf_password

(Дополнительный)

Строка, определяющая главный пароль для защищенного файла. Это должен быть главный пароль: пользовательский пароль не подойдет.

(Значение по умолчанию — None)

String

deletePages(page_range)

Позволяет удалить одну или несколько страниц из документа PDF.

Имя Объяснение Тип данных

page_range

Строка, задающая страницы для удаления. Для удаления одной страницы в строке указывается одно значение (например, "3"). Несколько страниц можно удалить, задав их номера через запятую (например, "3, 5, 7"). Кроме того, можно задать диапазоны страниц (например, "1, 3, 5-12" ).

String

insertPages(pdf_path, {before_page_number}, {input_pdf_password})

Позволяет вставлять содержимое одного документа PDF в начало или в середину другого PDF.

Имя Объяснение Тип данных

pdf_path

Необходимо вставить строку с указанием расположения и имени вставляемого документа PDF.

String

before_page_number

(Дополнительный)

Целое число, определяющее номер страницы в ссылаемом PDFDocument, перед которым необходимо вставить новые страницы. Например, если before_page_value равно 1, вставляемая страница будет находиться перед всеми страницами.

(Значение по умолчанию — 1)

Integer

input_pdf_password

(Дополнительный)

Строка, определяющая главный пароль для защищенного файла. Это должен быть главный пароль: пользовательский пароль не подойдет.

(Значение по умолчанию — None)

String

saveAndClose()

Сохраняет изменения, внесенные в текущий PDFDocument.

updateDocProperties({pdf_title}, {pdf_author}, {pdf_subject}, {pdf_keywords}, {pdf_open_view}, {pdf_layout})

Обновляет метаданные PDF. С помощью этого метода можно также задать параметры поведения, которые будут срабатывать при открытии документа в Adobe Reader или Adobe Acrobat, например, начальный вид или вид эскизов страниц.

Имя Объяснение Тип данных

pdf_title

(Дополнительный)

The document title. This is a PDF metadata property.

(Значение по умолчанию — None)

String

pdf_author

(Дополнительный)

The document author. This is a PDF metadata property.

(Значение по умолчанию — None)

String

pdf_subject

(Дополнительный)

The document subject. This is a PDF metadata property.

(Значение по умолчанию — None)

String

pdf_keywords

(Дополнительный)

The document keywords. This is a PDF metadata property.

(Значение по умолчанию — None)

String

pdf_open_view

(Дополнительный)

Specifies the Adobe Reader view mode that will be used.

  • VIEWER_DEFAULT—The application user preference when opening the file will be used.

  • USE_NONE—Only the document will display. No other panels will display.

  • USE_THUMBS—The document and the Pages panel will display.

  • USE_BOOKMARKS—The document and the Bookmarks panel will display.

  • FULL_SCREEN—The document will display in full-screen viewing mode.

  • LAYERS—The document and the Layers panel will display.

  • ATTACHMENT—The document and the Attachments panel will display.

(Значение по умолчанию — USE_THUMBS)

String

pdf_layout

(Дополнительный)

Specifies the Adobe Reader layout mode that will be used.

  • VIEWER_DEFAULT—The application user preference when opening the file will be used.

  • SINGLE_PAGE—Single-page mode will be used.

  • ONE_COLUMN—One-column continuous mode will be used.

  • TWO_COLUMN_LEFT—Two-column continuous mode with the first page on the left will be used.

  • TWO_COLUMN_RIGHT—Two-column continuous mode with the first page on the right will be used.

  • TWO_PAGE_LEFT—Two-page mode left will be used.

  • TWO_PAGE_RIGHT—Two-page mode right will be used.

(Значение по умолчанию — SINGLE_PAGE)

String

updateDocSecurity(new_master_password, {new_user_password}, {encryption}, {permissions[permissions,...]})

Устанавливает для PDF-файла пароль, шифрование и ограничения безопасности.

Имя Объяснение Тип данных

new_master_password

The primary document password.

String

new_user_password

(Дополнительный)

The user password needed to open the PDF for viewing.

(Значение по умолчанию — None)

String

encryption

(Дополнительный)

Specifies the encryption technique that will be used for the PDF.

  • AES-128—128-bit AES encryption (Acrobat 7.0 compatible) will be used.

  • AES-256-R5—256-bit AES encryption with R5 encoding (Acrobat 9.0 compatible) will be used.

  • AES-256—256-bit AES encryption (Acrobat X compatible) will be used.

  • RC4—128-bit RC4 encryption (Acrobat 5.0 compatible) will be used.

    Прежние версии:

    RC4 is only included for compatibility. AES encryption is recommended. RC4 will be deprecated in a future release.

(Значение по умолчанию — AES-256)

String

permissions[permissions,...]

(Дополнительный)

A string or list of strings that specifies the permissions that will be granted by the document security settings.

  • ALL—All permissions will be granted.

  • ALL_MASTER—COPY, EDIT, EDIT_NOTES, and HIGH_PRINT permissions will be granted.

  • COPY—Permission to copy information from the document to the clipboard will be granted.

  • DOC_ASSEMBLY—Permission to perform page insert, delete, and rotate, as well as to create bookmarks and thumbnails will be granted.

  • EDIT—Permission to edit the document in ways other than adding or modifying text notes will be granted.

  • EDIT_NOTES—Permission to add, modify, and delete text notes, as well as fill in or sign existing form or signature fields will be granted.

  • FILL_AND_SIGN—Permission to fill in or sign existing form or signature fields will be granted.

  • HIGH_PRINT—Permission for high-quality printing will be granted.

  • PRINT—Permission to print the document will be granted.

(Значение по умолчанию — ALL)

String

Пример кода

PDFDocument, пример 1

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

import arcpy, os

#Set file name and remove if it already exists
pdfPath = r"C:\Projects\YosemiteNP\AttractionsMapBook.pdf"
if os.path.exists(pdfPath):
    os.remove(pdfPath)

#Create the file and append pages
pdfDoc = arcpy.mp.PDFDocumentCreate(pdfPath)
pdfDoc.appendPages(r"C:\Projects\YosemiteNP\Title.pdf")
pdfDoc.appendPages(r"C:\Projects\YosemiteNP\MapPages.pdf")
pdfDoc.appendPages(r"C:\Projects\YosemiteNP\ContactInfo.pdf")

#Commit changes and delete variable reference
pdfDoc.saveAndClose()
del pdfDoc
PDFDocument, пример 2

Следующий скрипт изменяет свойства метаданных документа PDF и задает стиль, с которым открывается документ.

import arcpy
pdfDoc = arcpy.mp.PDFDocumentOpen(r"C:\Projects\YosemiteNP\AttractionsMapBook.pdf")
pdfDoc.updateDocProperties(pdf_title="Yosemite Main Attrations Map Book",
                           pdf_author="Esri",
                           pdf_subject="Main Attractions Map Book",
                           pdf_keywords="Yosemite; Map Books; Attractions",
                           pdf_open_view="USE_THUMBS",
                           pdf_layout="SINGLE_PAGE")
pdfDoc.saveAndClose()
del pdfDoc
PDFDocument, пример 3

Следующий скрипт задает пароли user_password и master_password, зашифровывает PDF с помощью сжатия RC4 и требует пароль при открытии документа. Ознакомьтесь с ограничениями защищенного PDF в описание класса выше.

import arcpy
pdfDoc = arcpy.mp.PDFDocumentOpen(r"C:\Projects\YosemiteNP\AttractionsMapBook.pdf")
pdfDoc.updateDocSecurity("master", "user", "RC4")
pdfDoc.saveAndClose()
del pdfDoc
PDFDocument, пример 4

Следующий скрипт заменяет все четыре страницы в существующем PDF, используя методы deletePages и затем insertPages. Обратите внимание, как была вставлена новая страница 3 перед текущей страницей 3, которая на самом деле была страницей 4 до удаления исходной страницы 3. То же самое происходит с диапазоном страниц 5-7. Ознакомьтесь с ограничениями защищенного PDF в описание класса выше.

import arcpy
pdfDoc = arcpy.mp.PDFDocumentOpen(r"C:\Projects\YosemiteNP\AttractionsMapBook.pdf", "master")
pdfDoc.deletePages("3, 5-7")
pdfDoc.insertPages(r"C:\Projects\Yosemite\NewPage3.pdf", 3, "master")
pdfDoc.insertPages(r"C:\Projects\Yosemite\NewPages5-7.pdf", 5, "master")
pdfDoc.saveAndClose()
del pdfDoc