Introduction

Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API để tạo PDF mới từ scratch, mở và chỉnh sửa các tệp hiện có, chia sẻ tài liệu vào các kết quả mỗi trang, kết hợp nhiều PDF và áp dụng dựa trên mật khẩu mã hóa - tất cả mà không có bất kỳ sự phụ thuộc C hoặc C++ bản địa.

Thư viện có sẵn như một module Go tại github.com/aspose-pdf-foss/aspose-pdf-foss-for-go Được phát hành theo giấy phép MIT. Cài đặt với go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go vào bất kỳ Chương trình 1.24 + dự án.

Bài viết này bao gồm các tính năng cơ bản: hoạt động tài liệu, bảo mật, AcroForm lấp đầy, bố trí bảng, sổ sách và ghi chú.


Các tính năng chính

Tài liệu chia và mờ

Các Document Loại cung cấp Split() chia PDF thành các tài liệu mỗi trang và Append() - Để kết hợp một tài liệu bên ngoài trong vị trí. PageRange Hãy để bạn làm việc với một phần của các trang cho khai thác hoặc xuất khẩu chọn lọc. Metadata triển lãm Tài liệu-tiếng thông tin trường để đọc và viết tác giả, tiêu đề, và ngày tạo.

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

mật khẩu và giấy phép

EncryptionOptions cấu hình mật khẩu người dùng, mật mã chủ sở hữu và các hoạt động được phép trong Một cuộc gọi duy nhất để SetEncryption.Các thuật toán được hỗ trợ là AES-128 (được mặc định), AES-256 (ISO 32000-2, sản xuất PDF 2.0), và RC4-128 cho tương thích di sản. Permissions cho phép hoặc từ chối các hoạt động cá nhân - in, copy, accessibility - độc lập . OpenWithPassword Mở các tập tin mã hóa; RemoveEncryption Stripes các mật khẩu trước khi lưu một bản sao có thể.

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

- Công trình xử lý AcroForm Field

Form cung cấp quyền truy cập vào tất cả các trường AcroForm trong một tài liệu. Field là căn cứ giao diện; kiểu tuyên bố cung cấp quyền truy cập vào TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, và ButtonField.- Set Field giá trị theo tên trường — người xem tự động tái tạo các hình ảnh qua /NeedAppearances=true trên Save.

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

bảng layout

Table, Row, và Cell Xây dựng các bố trí mạng có cấu trúc trên các trang PDF. BorderInfo cấu hình phong cách biên giới cho mỗi ô hoặc cho toàn bộ bảng. MarginInfo Cài đặt cell padding. TextStyle kiểm soát chữ cái, kích thước, màu sắc và sự phù hợp thông qua HAlignVAlign. Image Có thể được đặt bên trong các tế bào cùng với văn bản.

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

Bookmark và Navigation

OutlineItemCollection đại diện cho một bản ghi đơn. sử dụng SetTitle, SetBold, SetColor, và SetDestination để cấu hình nó. DestinationXYZ Mục tiêu chính xác - Tùy chỉnh trang; DestinationFit Đặt trang trong người xem. NamedDestinations ghi lại mục tiêu nhảy tái sử dụng có thể truy cập theo tên.

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

Annotations và Stamps

AnnotationCollection giữ tất cả các ghi chú trên một trang. TextAnnotation Thêm một sticky-note Comment ạ. StampAnnotation đặt một tấm thông báo hoặc giấy chứng nhận bằng cách sử dụng một trong các định nghĩa trước StampName giá trị . HighlightAnnotation Tác giả Text Regions. RedactAnnotation - Tự do loại bỏ nội dung nhạy cảm. LinkAnnotation URI hoặc trang đích Các hoạt động cho các khu vực có thể nhấp chuột.

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

Khởi động nhanh

Cài đặt module:

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

Một dòng công việc tối thiểu - mở một PDF, mã hóa nó với mật khẩu và lưu:

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

Open Source và giấy phép

Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, không có phí chạy, và không yêu cầu đăng ký. mã nguồn có sẵn tại: github.com/aspose-pdf-foss/sởi PDF-Foss-for-go.

Sử dụng thương mại được phép theo các điều khoản giấy phép MIT. Nếu dự án của bạn yêu cầu Hỗ trợ cấp doanh nghiệp, bao phủ định dạng mở rộng hoặc tích hợp đám mây, các Aspose.PDF — Enterprise Product Family là một riêng biệt Ưu đãi thương mại.


bắt đầu

Tài nguyên liên quan