Introduction
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API для створення нових PDF-файлів з нуля, відкриття та редагування існуючих файлів, розділення документів у виходи на сторінку, злиття декількох PDF-файлів та застосування пароля. шифрування без будь-яких корінних залежностей C або C++.
Бібліотека доступна як модуль Go на: github.com/aspose-pdf-foss/aspose-pdf-foss-for-go і випускається за ліцензією MIT. Інсталювати його з: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go в будь-який Проектуйте 1.24+.
Цей пост охоплює основні можливості: операції з документами, безпека, заповнення AcroForm, розклад таблиці, заклади та анотації.
Ключові особливості
Розподіл та злиття документів
У. Document тип передбачає: Split() розділити PDF на документи за сторінку, а також Append() об’єднати зовнішній документ на місці. PageRange дозволяє працювати з підмножина сторінок для вибіркової екстракції або експорту. Metadata експозиції Полі для інформації про документ, щоб прочитати та написати автор, назва і дата створення.
doc, _ := pdf.Open("report.pdf")
// Split into per-page PDFs
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page%03d.pdf", i+1))
}
// Merge a second PDF into doc
doc2, _ := pdf.Open("appendix.pdf")
doc.Append(doc2)
doc.Save("combined.pdf")
Шифрування і дозволу за паролем
EncryptionOptions конфігурує пароль користувача, парол власника та дозволені операції в один закликання до: SetEncryption.Підтримуються алгоритми AES-128 (попередньо встановлений), AES-256 (ISO 32000-2, виробляє вихід PDF 2.0) та RC4-128 для старих версій. Permissions дозволяє дозволяти або відмовлятися в окремих операціях друкувати, копіювати, доступність ?? незалежно. OpenWithPassword відкриває зашифровані файли; RemoveEncryption відбирає з пароль перед збереженням копії простого тексту.
doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "userpass",
OwnerPassword: "ownerpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")
Процес обробки AcroForm-полевого процесу
Form надає доступ до всіх полей AcroForm у документі. Field є базою інтерфейс; твердження типу дають доступ до TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, і ButtonField.Поле встановлено . значення за назвою поля переглядач автоматично відтворює появу через /NeedAppearances=true на рятуванні.
doc, _ := pdf.Open("application.pdf")
text := doc.Form().Field("full_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
check := doc.Form().Field("agree_terms").(*pdf.CheckboxField)
check.SetChecked(true)
combo := doc.Form().Field("country").(*pdf.ComboBoxField)
combo.SetSelected(0)
doc.Save("application_filled.pdf")
Розгляд таблиці
Table, Row, і Cell Створення структурованих макетних схем на сторінках PDF. BorderInfo конфігурує стиль поблизу на кожну клітину або для всієї таблиці. MarginInfo встановлює обкладинку клітин. TextStyle контролює шрифт, розмір, колір та вирівнювання через HAlign і VAlign. Image можуть бути розміщені в клітинах поруч з текстом.
doc, _ := pdf.Open("invoice_template.pdf")
tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{120, 80, 80})
row := tbl.AddRow()
row.AddCell("Item")
row.AddCell("Qty")
row.AddCell("Price")
page, _ := doc.Page(1)
page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")
Закладки та навігація
OutlineItemCollection представляє один закладковий запис. Використовуйте SetTitle, SetBold, SetColor, і SetDestination для її налаштування. DestinationXYZ цільовані точні координати сторінки; DestinationFit підходить до сторінки в перегляднику. NamedDestinations реєструє повторне використання цільових прыжок, доступних по імені.
doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)
chapter := pdf.NewOutlineItemCollection(doc)
chapter.SetTitle("Chapter 1: Getting Started")
chapter.SetBold(true)
chapter.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(chapter)
section := pdf.NewOutlineItemCollection(doc)
section.SetTitle("Installation")
section.SetDestination(pdf.NewDestinationFit(page))
chapter.Add(section)
doc.Save("manual_with_bookmarks.pdf")
Анотації та марки
AnnotationCollection містить всі анотації на сторінці. TextAnnotation додає налепку. коментар. StampAnnotation розміщує штамп про схвалення або інформаційну марку за допомогою одного з: попередньо визначений StampName цінності. HighlightAnnotation знаки текстових регіонів. RedactAnnotation постійно видаляє чутливий контент. LinkAnnotation прикріпляє URI або адресу сторінки заходи для регіонів, на які можна натиснути.
doc, _ := pdf.Open("draft.pdf")
page, _ := doc.Page(1)
stamp := pdf.NewStampAnnotation(page, pdf.Rectangle{LLX: 100, LLY: 700, URX: 250, URY: 750}, pdf.StampNameApproved)
page.Annotations().Add(stamp)
doc.Save("draft_approved.pdf")
Швидкий старт
Інсталювати модуль:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goМінімальний робочий процес відкрити PDF, зашифрувати його паролем і зберегти:
package main
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)
func main() {
doc, err := pdf.Open("input.pdf")
if err != nil {
panic(err)
}
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "secret",
OwnerPassword: "ownerSecret",
Permissions: &pdf.Permissions{AllowPrint: true},
})
if err := doc.Save("output_encrypted.pdf"); err != nil {
panic(err)
}
fmt.Println("Saved output_encrypted.pdf")
}
Відкритий код та ліцензія
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, без платіжів за виконання та без вимог до реєстрації. github.com/aspose-pdf-foss/asspose - pdf-Foss-for-go.
Коммерчне використання дозволено за умовами ліцензії MIT. Якщо ваш проект вимагає Підтримка корпоративного рівня, розширене покриття формату або інтеграція в хмару. Aspose.PDF — Enterprise Product Family є окремим комерційне пропозиція.