Часто задавані запитання

Часто задавані запитання

Ліцензування та відкритий код

Яка ліцензія на Aspose.PDF FOSS for Go?

Aspose.PDF FOSS for Go is released under the Ліцензія MIT.Повний текст ліцензії: включені в репозиторій на: github.com/aspose-pdf-foss/asspose - pdf-Foss-for-go. Не потрібно реєстрації, файлу активізації або ключа для виконання.

Чи можна використовувати Aspose.PDF FOSS для Go у комерційному продукті?

Так. Ліцензія MIT дозволяє неограничене комерційне використання, модифікацію, розповсюдження та приватне користування. Ви повинні включити повідомлення про авторські права і текст ліцензії MIT у всіх копіях або значних частинах програмного забезпечення.

Чи є корпоративна версія?

Aspose.PDF FOSS is the open-source, MIT-licensed edition. A separate commercial Aspose.PDF product is available as the Aspose.PDF — Enterprise Product Family з корпоративною підтримкою, розширенням форматного покриття та інтеграцією в хмару.


Інсталяції та вимоги

Як встановити Aspose.PDF FOSS для Go?

Додати модуль до проекту Go:

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

Імпортуйте його з псевдонімом у вихідні файли:

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

Яка версія Go потрібна?

Потрібно перейти до версії 1.24 або пізніше. Перевірте свою версію з go version.

Чи є залежність від бібліотеки нації або системи?

Не. Aspose.PDF FOSS for Go є чисто-Go реалізацією без залежностей C, C++, або CGo. Вона не вимагає системних бібліотек, переглядачів PDF чи зовнішніх інструментів.


Використання вогню

Як я відкриваю існуючу файл PDF?

Використання pdf.Open для стандартних PDF-файлів; та pdf.OpenWithPassword для файлів, захищених паролем:

doc, err := pdf.Open("document.pdf")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

Як розділити PDF на окремі сторінки?

Document.Split повертає a []*Document, одна на сторінку:

doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
    p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}

Як я з’єднаю кілька файлів PDF?

Document.Append зливає вихідний документ на місці:

base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")

Як заповнити поле AcroForm?

Використання Document.Form().Field(name) і визначити тип бетону:

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

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

doc.Save("form_filled.pdf")

Типи полей, які підтримуються: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.

Як додати закладки?

Створення OutlineItemCollection і встановити Destination:

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

bm := pdf.NewOutlineItemCollection(doc)
bm.SetTitle("Chapter 1")
bm.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(bm)
doc.Save("manual_with_bookmarks.pdf")

Безпека та шифрування

Як я захищую PDF паролем?

Використання Document.SetEncryption з EncryptionOptions Структура для застосування пароля захисту та знаків дозволу. Введіть пароль користувача для відкриття файлу і власника паролю для прав на внесення змін:

doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
    UserPassword:  "userpass",
    OwnerPassword: "ownerpass",
    Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("doc_protected.pdf")

Які алгоритми шифрування підтримуються?

Три алгоритми доступні через: EncryptionOptions.Algorithm:

AlgorithmConstantStandard
AES-128EncryptionAlgAES128 (за замовчуванням)ISO 32000-1
AES-256EncryptionAlgAES256ISO 32000-2 (вихід PDF 2.0)
RC4-128EncryptionAlgRC4_128Legacy

Як я відкриваю файл, захищений паролем?

Використання pdf.OpenWithPassword передати пароль користувача як другий аргумент; він повертає нормальний код файлу. *Document після успішного розшифрування:

doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

Як я видаляю шифрування з PDF?

Call Document.RemoveEncryption Після відкриття файлу з правильним паролем. Захопить результат, щоб записати нешифровану копію:

doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")

Редюсінг та текст

Як я перетворюю сторінку PDF на зображення?

Використовуйте один з типів пристроїв: BmpDevice, PngDevice, JpegDevice, TiffDevice, або GifDevice.Створити пристрій з Resolution значення і подзвонити відповідним Render* метод з io.Writer і RenderOptions:

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

Як я шукаю текст у PDF?

Call Document.SearchText з почерком запиту та SearchOptions.Результат - це срізька TextMatch значення кожен містить відповідний текст, його індекс сторінки та її обмежувальна скринька.

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

Як я розірівнюю форму?

Call Document.Flatten після заповнення або перегляду форми. Метод пече всі поля значення в графіку сторінки і видаляє поля інтерактивних форм:

doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")

Знайомі обмеження

Чи підтримуються всі функції PDF?

Бібліотека охоплює найбільш поширені операції управління документами: відкриття, створення, збереження, розділення, зливання, витягнення сторінки, шифрування , AcroForms, таблиці, закладники , анотації, рендеринг на зображення , пошук тексту і розрівнення форми. Поскладні функції як цифрові підписи, 3D-контент та конверсія PDF / A можуть не бути повністю реалізовані в поточному випуску. Перевірте репозиторій README для поточного стану функцій .

Що станеться, якщо я використаю твердження типу поля, яке не відповідає?

Заявлення типу на Field що не відповідає фактичному типу поля, буде паніка. Використання pdf.FieldType(f) перевірки типу перед встановленням або використання переключателя типу:

doc, _ := pdf.Open("form.pdf")
for _, f := range doc.Form().Fields() {
    switch v := f.(type) {
    case *pdf.TextBoxField:
        fmt.Println("text:", v.Value())
    case *pdf.CheckboxField:
        fmt.Println("checked:", v.Checked())
    }
}
 Українська