Introduction
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an Yeni PDF’ler oluşturmak için API, mevcut dosyaları çarpışarak açmak ve düzenlemek, bölmek sayfa başına çıkışlara belgeler, birden fazla PDF’yi birleştirmek ve şifre tabanlı uygulama Şifreleme - herhangi bir yerli C veya C++ bağımlılığı olmadan.
Kütüphane bir modül olarak mevcuttur. github.com/aspose-pdf-foss/aspose-pdf-foss-for-go MIT lisansı altında serbest bırakılır. yükleme ile birlikte go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go Herhangi bir 1.24+ Projeye Gitmek İçin Tıklayınız.
Bu yazı temel özellikleri kapsamaktadır: belge işlemi, güvenlik, AcroForm doldurma, masa düzen, notlar ve notları.
Ana Özellikler
Belgeyi bölmek ve karıştırmak
O zamanlar Document Tip sağlar Split() PDF’yi sayfalar başına belgelere ayırmak ve Append() Bir dış belgeyi yerinde birleştirmek. PageRange ile çalışmanıza izin verin Seçici çıkarma veya ihracat için bir alt sayfa. Metadata Fuarlar okuma ve yazma yazarı, başlık ve oluşturma tarihi için belge-bilgi alanları.
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")
Şifre şifreleme ve izinler
EncryptionOptions Kullanıcı şifresini, sahibinin şifresini ve izin verilen işlemleri ayarlayın. tek bir çağrı SetEncryption.Desteklenen algoritmalar AES-128 (varsayılan) olarak adlandırılır., AES-256 (ISO 32000-2, PDF 2.0 çıkışını üretir) ve RC4-128 miras uyumluluğu için. Permissions Bireysel işlemleri – baskı, kopyalama, erişilebilirlik – izin vermenize veya reddetmenizi sağlar. Bağımsız olarak . OpenWithPassword Şifreli dosyaları açmak; RemoveEncryption Tırnaklar The Şikayetçi bir kopyayı kaydetmeden önce şifre.
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 alan işleme
Form Bir belgede tüm AcroForm alanlarına erişim sağlar. Field Temel olarak • Tipi; tip iddiaları erişim sağlar TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField,ve ButtonField.- Set alanı değerler alan adı ile — izleyici görünümleri otomatik olarak yeniden canlandırır /NeedAppearances=true kurtarma için.
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")
Tablo Layout
Table, Row,ve Cell Yapılandırılmış ağ düzenleri PDF sayfalarında oluşturun. BorderInfo Sınır tarzı hücre veya tüm masa için ayarlanır. MarginInfo Cell padding yaptırın. TextStyle yazı tipi, boyutu, renk ve uyum kontrolü HAlign ve VAlign. Image Bu sayede, metinle birlikte hücrelerin içine yerleştirilebilir.
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 ve Navigasyon
OutlineItemCollection tek bir kitaplık girişini temsil eder. kullanın SetTitle, SetBold, SetColor,ve SetDestination Bunu yapılandırmak için. DestinationXYZ Hedefler doğru Sayfa koordinatları; DestinationFit Sayfayı gören sayfaya koymak. NamedDestinations Kayıtlar yeniden kullanılabilir atlama hedefleri adla erişilebilir.
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")
Annotasyonlar ve Stamps
AnnotationCollection Tüm notları bir sayfada tutar. TextAnnotation bir sticky-note eklemek için Yorum yapın. StampAnnotation Bir onay veya bilgi çubuğu kullanarak yerleştirin. Önceden tanımlanmış StampName Değerleri . HighlightAnnotation Yazı bölgelerini işaretler. RedactAnnotation Hassas içeriği sürekli olarak kaldırır. LinkAnnotation URI veya sayfa-destination eklentisi Clickable bölgelere yönelik eylemler.
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")
Hızlı Başlangıç
Modül yükleme:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goMinimum bir çalışma akışı: PDF’yi açın, şifrelemeyin ve kaydedin:
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")
}
Açık Kaynak ve Lisans
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, -Hiçbir çalışma ücreti ve kayıt gereksinimleri yok. kaynak kodu mevcuttur: github.com/aspose-pdf-foss/asspose - pdf-for-go için.
Ticari kullanım MIT lisans şartları altında izin verilir. eğer proje ihtiyacınız varsa İşletme seviyesi destek, geniş format kapsamı veya bulut entegrasyonu, Aspose.PDF — Enterprise Product Family ayrı bir Ticari teklifler için.