Общи случаи на употреба за Aspose.PDF FOSS for Go

Общи случаи на употреба за Aspose.PDF FOSS for Go

Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article Обхваща най-често необходимите операции, използвайки системата за управление на данните. Document, Form, EncryptionOptions, Table, и OutlineItemCollection Инсталиране с go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.

Постепенно ръководство

Стъпка 1: Инсталирайте пакета

Добавете зависимостта на модула Go:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

Стъпка 2: Импортиране на пакета

Използвайте алиас, за да поддържате препратки към вноса кратки:

import (
    "fmt"
    pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

Стъпка 3: Разделяне на PDF файл в по-страници

Document.Split разделя многостраничен документ на един *Document на страница.

doc, err := pdf.Open("report.pdf")
if err != nil {
    panic(err)
}
pages, _ := doc.Split()
for i, p := range pages {
    p.Save(fmt.Sprintf("report_page_%03d.pdf", i+1))
}
fmt.Printf("Split %d pages\n", len(pages))

Стъпка 4: Съединете няколко PDF файла в един

Document.Append съчетава страници от втори документ на място преди запазване.

base, _ := pdf.Open("intro.pdf")
chapter1, _ := pdf.Open("chapter1.pdf")
chapter2, _ := pdf.Open("chapter2.pdf")
appendix, _ := pdf.Open("appendix.pdf")

base.Append(chapter1)
base.Append(chapter2)
base.Append(appendix)
base.Save("full_document.pdf")

Стъпка 5: Приложи шифроване с парола

EncryptionOptions конфигурира паролата на потребителя, собственика и алгоритъма; за всяка операция Permissions в едно обаждане:

doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
    UserPassword:  "clientpass",
    OwnerPassword: "adminpass",
    Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")

За да се произведе обикновена текстова копия от криптиран файл:

doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")

Стъпка 6: Попълнете акроформата

Итерация или целеви полета по име.TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField).

doc, _ := pdf.Open("application_form.pdf")

name := doc.Form().Field("applicant_name").(*pdf.TextBoxField)
name.SetValue("Jane Doe")

agree := doc.Form().Field("terms_accepted").(*pdf.CheckboxField)
agree.SetChecked(true)

country := doc.Form().Field("country").(*pdf.ComboBoxField)
country.SetSelected(0)

doc.Save("application_filled.pdf")

Стъпка 7: Създайте план за масата

Добавете a. Table с: Row и в) Cell вписвания на страница за генериране на фактура или доклад:

doc, _ := pdf.Open("invoice_template.pdf")
page, _ := doc.Page(1)

tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{200, 80, 100})

header := tbl.AddRow()
header.AddCell("Description")
header.AddCell("Qty")
header.AddCell("Amount")

row := tbl.AddRow()
row.AddCell("PDF Processing Service")
row.AddCell("1")
row.AddCell("$500.00")

page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")

Стъпка 8: Добавяне на дърво за бележки

OutlineItemCollection създава закладки с вграждане на глави/раздели и DestinationXYZ Цели на страници:

doc, _ := pdf.Open("manual.pdf")
page1, _ := doc.Page(1)
page2, _ := doc.Page(2)

ch1 := pdf.NewOutlineItemCollection(doc)
ch1.SetTitle("Introduction")
ch1.SetBold(true)
ch1.SetDestination(pdf.NewDestinationXYZ(page1, 0, 792, 1.0))
doc.Outlines().Add(ch1)

ch2 := pdf.NewOutlineItemCollection(doc)
ch2.SetTitle("Configuration")
ch2.SetDestination(pdf.NewDestinationFit(page2))
doc.Outlines().Add(ch2)

doc.Save("manual_bookmarked.pdf")

Обичайни проблеми и решения

pdf.Open Връща грешка за валидни PDF файлове Проверете дали пътят на файла е правилен и че файлът не е отворен в друг код. В Windows блокирането на файловете може да предотврати четенето.

Прикриване на формулярните полета при използването на “Тайп” Използване на: pdf.FieldType(f) или превключвател за проверка на типа поле преди твърдение. *pdf.TextBoxField твърдение за CheckboxField Ще се паникьосвам.

go get Провал с “модул не е намерен” Осигуряване на GOPROXY е зададен на достъпна прокси (напр. GOPROXY=direct) и че мрежата ви може да достигне до github.com.В среда с въздушни провали, използване на GONOSUMCHECK или локално огледало на модула.

SaveTo не работи след OpenWithPassword Ако се обадиш… Save след това OpenWithPassword без да се обаждаш. RemoveEncryption, Изходът е повторно криптиран с оригиналната парола. Това е очакваното поведение повикване RemoveEncryption изрично да се произведе обикновена копие.

Смятането на страниците в обединения документ е грешно. Append Уверете се, че не ви каните. Append на 1 януари документ, който вече е бил запазен; отворете отново базовия документ ако се наложи. да се изграждат множество обединени изходи.


Често задавани въпроси

Мога ли да обработя PDF файлове без запис на диск?

Document.WriteTo приема и io.Writer, така че можете да пишете на буфер, мрежата поток, или писател на отговори без създаване на временен файл.

Безопасно ли е да използвате Aspose.PDF FOSS за Go едновременно?

Всеки от тях. *Document Инстанция не е goroutine-безопасен. Използвайте един Document на горотин, или защита на споделени инстанции с мутекс.

Как да прочета обратно стойностите на полето от попълнен формуляр?

Използване на: Field.Value() за достъп до специфични за типа аксесоари на всяко поле или заявка за тип като например: CheckboxField.Checked() или с други: ComboBoxField.SelectedIndex().

Мога ли да създам PDF от нулата без съществуващ шаблон?

  • Да, много добре. pdf.NewDocument() създава празен документ. AddBlankPageFromFormat(pdf.PageFormatA4) да добавите празна страница, след което додайте съдържание (таблици, бележки и т.н.) преди съхранение.

Каква е разликата между: Document.Save и в) Document.WriteTo?

Save(path string) пише на път за файл. WriteTo(w io.Writer) Пише на всеки. io.Writer полезен за HTTP отговори, буфери или поточни тръбопроводи.


Вижте също:

 Български