Возможности библиотеки PDF

Возможности библиотеки PDF

Возможности PDF-библиотеки

Эта страница резюмирует основные области функций в Aspose.PDF FOSS для Go. Каждый раздел содержит ссылки на посвящённые страницы руководства разработчика с полными примерами кода.


Управление документами

Document является центральным типом. Он поддерживает открытие (Open, OpenWithPassword), создание (NewDocument), сохранение (Save) и работу с коллекциями страниц (Split, Append, Extract, PageCount). SetMetadata и Metadata предоставляют доступ для чтения/записи к полям словаря Info.

doc, _ := pdf.Open("input.pdf")
pages, _ := doc.Split()
fmt.Printf("Split into %d pages\n", len(pages))

Безопасность и шифрование

EncryptionOptions настраивает шифрование на основе пароля одним вызовом Document.SetEncryption. Поддерживаемые алгоритмы: AES-128 (по умолчанию), AES-256 (ISO 32000-2 / PDF 2.0) и RC4-128. Permissions управляет отдельными операциями — печать, копирование, доступность — независимо.

doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
	UserPassword:  "user",
	OwnerPassword: "owner",
	Permissions:   &pdf.Permissions{AllowPrint: true},
})
doc.Save("doc_secured.pdf")

AcroForm Обработка

Document.Form возвращает *Form, предоставляющий доступ ко всем полям. Операции приведения типов раскрывают конкретные типы полей: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField и ButtonField. Значения полей записываются; их визуальное представление автоматически генерируется просмотрщиками PDF.

doc, _ := pdf.Open("form.pdf")
text := doc.Form().Field("name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
doc.Save("form_filled.pdf")

Разметка таблицы

Table, Row и Cell создают сеточные макеты, размещённые на страницах. BorderInfo задаёт стили границ для отдельной ячейки или всей таблицы. MarginInfo задаёт отступы. TextStyle, Font, Color, HAlign и VAlign управляют отображением текста.


Закладки и навигация

OutlineItemCollection представляет собой отдельную закладку. Настройте заголовок, стиль жирного/курсивного шрифта, цвет ссылки и назначение (DestinationXYZ, DestinationFit, DestinationFitH). Вложенные закладки формируют иерархию глав/разделов. NamedDestinations предоставляет переиспользуемые целевые страницы, доступные по имени.


Аннотации

AnnotationCollection содержит все аннотации на странице. Доступные типы включают TextAnnotation, FreeTextAnnotation, StampAnnotation, HighlightAnnotation, LinkAnnotation, RedactAnnotation, InkAnnotation, LineAnnotation, SquareAnnotation и CircleAnnotation.


Обработка изображений

Image представляет встроенный ресурс изображения. ImageInfo раскрывает размеры и цветовое пространство. Изображения могут быть добавлены на страницы напрямую или встроены в ячейки таблиц. OptimizeImageOptions предоставляет параметры сжатия для уменьшения размера файла.


Рендеринг в изображение

BmpDevice, PngDevice, JpegDevice, GifDevice и TiffDevice рендерят отдельные страницы PDF в растровые изображения. Каждое устройство создаётся с параметром Resolution и предоставляет метод Render*, который записывает вывод в io.Writer. RenderOptions управляет параметрами рендеринга — разрешением вывода (DPI) и цветом фона.

doc, _ := pdf.Open("report.pdf")
page, _ := doc.Page(1)
dev := pdf.NewPngDevice(pdf.Resolution{DPI: 150})
f, _ := os.Create("page1.png")
defer f.Close()
dev.Process(page, f)

Поиск текста

SearchText принимает строку запроса и SearchOptions и возвращает срез TextMatch результатов. Каждый TextMatch раскрывает найденный текст, его ограничивающий прямоугольник на странице и индекс страницы, где он был найден.

doc, _ := pdf.Open("report.pdf")
matches, _ := doc.SearchText("invoice", pdf.SearchOptions{CaseInsensitive: true})
for _, m := range matches {
	fmt.Printf("Found %q on page %d\n", m.Text, m.PageNumber)
}

Уплощение формы

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

doc, _ := pdf.Open("form_filled.pdf")
doc.Flatten()
doc.Save("form_flat.pdf")

API Reference Сводка

Тип:Purpose
DocumentБазовый контейнер документа — открывать, создавать, сохранять, разделять, объединять
PageДоступ к отдельной странице — размер, аннотации, содержимое
FormAcroForm контейнер — перечисление полей и доступ
TableЭлемент сеточного макета
EncryptionOptionsНастройка пароля и алгоритма
PermissionsФлаги контроля доступа для каждой операции
OutlineItemCollectionУзел дерева закладок
AnnotationCollectionКонтейнер аннотаций страницы
MetadataЧтение/запись словаря информации
ImageВстроенный ресурс изображения
BmpDeviceОтрисовать страницу PDF в BMP
PngDeviceОтрисовать страницу PDF в PNG
JpegDeviceПреобразовать страницу PDF в JPEG
TiffDeviceПреобразовать страницу PDF в TIFF
GifDeviceПреобразовать страницу PDF в GIF
RenderOptionsПараметры рендеринга — DPI и цвет фона
SearchOptionsКонфигурация текстового поиска
TextMatchОдин результат текстового поиска с ограничивающим прямоугольником
LinearGradientЛинейный градиент заливки для векторных фигур
RadialGradientРадиальный градиент заливки для векторных фигур

См. также:

 Русский