Các trường hợp sử dụng chung cho Aspose.PDF FOSS for Go

Các trường hợp sử dụng chung cho Aspose.PDF FOSS for Go

Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article bao gồm các hoạt động cần thiết thường xuyên nhất bằng cách sử dụng Document, Form, EncryptionOptions, Table, và OutlineItemCollection - Cài đặt với go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.

Hướng dẫn từng bước

Bước 1: Cài Đặt Gói

Thêm vào phụ thuộc module Go:

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

Bước 2: nhập khẩu gói

Sử dụng một alias để giữ cho các tham chiếu nhập khẩu ngắn gọn:

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

Bước 3: Chia PDF thành tệp mỗi trang

Document.Split chia một tài liệu đa trang thành một *Document theo trang.

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))

Bước 4: Kết hợp nhiều PDF vào một

Document.Append Kết hợp các trang từ một tài liệu thứ hai trong vị trí trước khi tiết kiệm.

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")

Bước 5: Sử dụng mật khẩu mã hóa

EncryptionOptions cấu hình mật khẩu người dùng, mật mã chủ sở hữu, thuật toán và Per-Hành động Permissions Trong một cuộc gọi đơn:

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")

Để tạo một bản sao phỏng vấn từ tệp mã hóa:

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

Bước 6: Tạo một AcroForm

Tính năng của các trường theo tên hoặc mục tiêu. xác định loại cụ thể (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")

Bước 7: Xây dựng bảng xếp hạng

thêm a Table Với RowCell Đăng nhập vào một trang cho hóa đơn hoặc báo cáo tạo:

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")

Bước 8: Thêm một cây Bookmark

OutlineItemCollection tạo ra các bảng chữ cái với chương/phần nẻo và DestinationXYZ Trang mục tiêu:

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")

Các vấn đề chung và Fixes

pdf.Open Gửi lỗi cho các tệp PDF hợp lệ Kiểm tra xem đường tệp là đúng và rằng file không mở trong một khác. Trong Windows, khóa tệp có thể ngăn chặn đọc.

Loại tuyên bố hoảng loạn khi truy cập các trường hình thức Sử dụng pdf.FieldType(f) hoặc một loại chuyển đổi để kiểm tra các loại trường trước khi Đáp án: A *pdf.TextBoxField tuyên bố trên a CheckboxField sẽ hoảng loạn.

go get Thay đổi “module not found” Ensure GOPROXY được thiết lập để một proxy có thể truy cập (ví dụ:. GOPROXY=direct(và đó là Mạng lưới của bạn có thể đạt được github.com.Trong môi trường không khí, sử dụng GONOSUMCHECK hoặc một gương mô-đun địa phương.

Sau khi thất bại OpenWithPassword Nếu bạn gọi Save Sau khi OpenWithPassword Không gọi điện RemoveEncryption, xuất được mã hóa lại với mật khẩu ban đầu. đây là dự kiến Chức năng - Call RemoveEncryption để tạo một bản sao phàn nàn.

Số trang tài liệu bị bỏ lỡ là sai Append thay đổi người nhận tại chỗ. đảm bảo bạn không gọi Append trên một tài liệu đã được lưu; mở lại tài khoản cơ bản nếu cần thiết Xây dựng nhiều kết hợp kết quả.


Thường xuyên hỏi câu hỏi

Tôi có thể xử lý PDF mà không viết trên đĩa?

Document.WriteTo chấp nhận một io.Writer, vì vậy bạn có thể viết cho một buffer, mạng lưới stream, hoặc phản hồi viết mà không tạo một tệp tạm thời.

Có an toàn để sử dụng Aspose.PDF FOSS cho Go đồng thời không?

Each *Document không an toàn cho goroutine. sử dụng một Document bằng goroutine, hoặc bảo vệ các ví dụ được chia sẻ với một mutex.

Làm thế nào để tôi đọc lại các giá trị trường từ một biểu mẫu được điền?

Sử dụng Field.Value() trên bất kỳ trường hoặc báo thức kiểu để truy cập các phụ kiện cụ thể loại như như CheckboxField.Checked() hoặc ComboBoxField.SelectedIndex().

Tôi có thể tạo PDF từ scratch mà không cần một mẫu hiện tại?

Có . pdf.NewDocument() tạo tài liệu trống.Call AddBlankPageFromFormat(pdf.PageFormatA4) để thêm một trang trống, sau đó thêm nội dung (bảng, ghi chú, vv) trước khi tiết kiệm.

Sự khác biệt giữa Document.SaveDocument.WriteTo?

Save(path string) viết cho một file path. WriteTo(w io.Writer) viết cho bất kỳ io.Writer - hữu ích cho các phản ứng HTTP, buffer hoặc đường ống lưu lượng.


See Also

 Tiếng Việt