Aspose.PDF için yaygın kullanım durumları FOSS for Go
Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article en sık kullanılan işlemleri kullanarak yapılır. Document, Form, EncryptionOptions, Table,ve OutlineItemCollection • Yükleme ile go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.
Adım adım rehberlik
Adım 1: Paket yükleme
Modül bağımlılığı eklemek için:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goAdım 2: Paket İthalatı
İthalat referanslarını kesin tutmak için bir alias kullanın:
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)Adım 3: Bir PDF’yi sayfalar başına bölün
Document.Split Bir sayfa belgesini bir sayfaya ayırır. *Document Sayfaya göre.
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))Adım 4: Birden fazla PDF’yi birine bağlayın
Document.Append Birleşmeden önce ikinci bir belgenin sayfalarını yerleştirir.
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")Adım 5: Şifre şifreleme uygulayın
EncryptionOptions Kullanıcı şifresini, sahibinin şifresini, algoritmasını ve Per-operasyon Permissions Tek bir çağrıda:
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")Şifreleme dosyasından bir şikayet kopyasını oluşturmak için:
doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")Adım 6: Bir AcroForm doldurun
(İş veya işareti belirleyen bir bölümde, bu bölümün adı ile ilgili olarak belirtilmiştir.)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")Adım 7: Bir masa düzenini oluşturun
A eklemek Table ile Row ve Cell Faturalar veya raporlar için bir sayfaya giriş yapın:
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")Adım 8: Bir Bookmark ağacı ekleyin
OutlineItemCollection bölüm/bölüm ile kitap işaretleri oluşturur ve DestinationXYZ Sayfa hedefleri :
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")Toplam Sorunlar ve Çözümler
pdf.Open Geçerli PDF dosyaları için bir hata iade eder Dosya yolu doğru olup olmadığını ve dosyanın başka bir dosyada açılmadığını kontrol edin. Windows’ta dosya kilidini engelleyebilir.
Form alanlarına erişirken panik türü Kullanım pdf.FieldType(f) veya bir tür değiştirme alan tipi kontrol etmek için önce İtiraf : A *pdf.TextBoxField A’da iddia edilen CheckboxField Panik yapacaklar.
go get “Modül Bulamadı” ile başarısızlık Ensure GOPROXY Bu nedenle, bir proxy (örneğin,. GOPROXY=direct) ve bu Ağı ulaşabilir github.com.• Hava kirliliği ortamında, kullanımı GONOSUMCHECK Yerel bir modül ayna.
kurtarma başarısızlık sonrası OpenWithPassword Eğer ararsanız Save sonra OpenWithPassword Çağrı Olmadan RemoveEncryption, çıkış orijinal şifre ile yeniden şifrelenir. bu beklenen İletişim - Call RemoveEncryption Şikayetçi bir kopya oluşturmak için.
Sıkıntılı sayfa sayısı yanlıştır. Append -İşsizlik için telefonunuzu arayın.Gözleminizin yerinde değil olduğundan emin olun. Append Üzerinde kaydedilmiş bir belge; gerekirse temel belgenin yeniden açılması Birden fazla kombine çıkış yapılır.
Sıkça Sorulan Sorular
PDF’leri disk yazmadan işleyebilir miyim?
Document.WriteTo kabul eder bir io.Writer,Bu yüzden bir buffer, ağ için yazabilirsiniz. akış veya bir geçici dosya oluşturmadan cevap yazarı.
Peki, bu yöntemi kullanmak için güvenli midir?
Each *Document Goroutine güvenli değil. kullanın bir Document Goroutin için, veya bir mutex ile paylaşılmış örnekleri koruyun.
Bir doldurulmuş formdan alan değerlerini nasıl geri okuyacağım?
Kullanım Field.Value() Herhangi bir alan veya tip uyarısı, tip-sözlü aksesuarlara erişmek için Böylece CheckboxField.Checked() veya ComboBoxField.SelectedIndex().
Mevcut bir şablon olmadan bir PDF oluşturabilir miyim?
Evet evet. pdf.NewDocument() boş bir belge oluşturur. çağrı AddBlankPageFromFormat(pdf.PageFormatA4) Bir beyaz sayfa eklemek için, sonra kaydetmeden önce içeriği (tablar, notlar vb.) ekleyin.
Arasındaki fark nedir Document.Save ve Document.WriteTo?
Save(path string) Bir dosya yoluna yazın. WriteTo(w io.Writer) Herkes için yazıyor io.Writer - HTTP yanıtları, buffers veya akış boruları için yararlıdır.