Возможности библиотеки 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 | Доступ к отдельной странице — размер, аннотации, содержимое |
Form | AcroForm контейнер — перечисление полей и доступ |
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 | Радиальный градиент заливки для векторных фигур |