Go'da Bir Belgeyi Nasıl Yüklenir
Aspose.PDF FOSS for Go, bir dosya yolundan, bir io.Reader üzerinden veya şifreyle korunan herhangi bir kaynaktan PDF yükler ve her zaman üzerinde işlem yapılacak bir *Document değer döndürür. Kütüphane, go get ile kurulan bir Go modülüdür.
Adım Adım Kılavuz
Adım 1: Paketi Kurun
Modülü projenize ekleyin:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goModülün çözüldüğünü doğrulayın:
import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Adım 2: Gerekli Sınıfları İçe Aktar
import (
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)Adım 3: Dosya Yolundan PDF Yükle
pdf.Open bir PDF dosyasını yükler ve bir *Document ile bir hata döndürür:
doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount(), "pages")Adım 4: Şifre Koruması Olan PDF Yükle
pdf.OpenWithPassword kullanıcı şifresiyle şifrelenmiş bir dosyayı açar:
doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")Adım 5: Bir Akıştan PDF Yükle
pdf.OpenStream bir PDF’yi herhangi bir io.Reader üzerinden okur — bir ağ yanıtı, bellek içi tampon veya ayrı olarak açılmış bir dosya. pdf.OpenStreamWithPassword, akışlar için şifre korumalı eşdeğeridir:
f, err := os.Open("input.pdf")
if err != nil {
panic(err)
}
defer f.Close()
doc, err := pdf.OpenStream(f)
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount(), "pages")
// For an encrypted stream, open a separate reader and pass a password:
f2, _ := os.Open("locked.pdf")
defer f2.Close()
doc2, err := pdf.OpenStreamWithPassword(f2, "secret")
if err != nil {
panic(err)
}
fmt.Println(doc2.PageCount(), "pages (encrypted)")Adım 6: Yüklenen Belgeyi İncele
Yüklendikten sonra, Document.PageCount toplam sayfa sayısını rapor eder ve Document.Page(n) 1 tabanlı indeksine göre tek bir sayfayı alır:
doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
panic(err)
}
fmt.Printf("Page count: %d\n", doc.PageCount())
page, err := doc.Page(1)
if err != nil {
panic(err)
}
size, err := page.Size()
if err != nil {
panic(err)
}
fmt.Printf("Page 1 size: %.0f x %.0f pt\n", size.Width, size.Height)Yaygın Sorunlar ve Çözümler
OpenWithPassword hâlâ doğru olduğunu düşündüğüm şifreyi girdikten sonra başarısız oluyor
OpenWithPassword‘a yanlış bir şifre sağlamak nil olmayan bir hataya yol açar. Şifreler büyük/küçük harfe duyarlıdır — kaynak PDF’de ayarlanan tam kullanıcı şifresini doğrulayın.
OpenStream şifreli bir PDF’de hata döndürüyor
OpenStream şifreli PDF’leri açamaz. Bunun yerine şifre korumalı akışlar için OpenStreamWithPassword kullanın.
İhtiyacım var mı? OpenWithPassword şifreli olmadığı ortaya çıkan bir PDF için?
Hayır — OpenWithPassword aracılığıyla şifrelenmemiş bir dosya açmak izinlidir ve düz bir Open çağrısı gibi davranır, bu yüzden bir dosyanın şifreli olup olmadığından emin değilseniz OpenWithPassword kullanmak güvenlidir.
Document.Page(n) başarılı bir işlemden sonra hata döndürüyor Open
Sayfa numarası aralık dışında. Page, 1 ile Document.PageCount() arasında 1 tabanlı bir indeks kullanır; aralığı doğrulamak için önce PageCount() çağırın.
Sıkça Sorulan Sorular
Open ile hangi dosya formatlarını yükleyebilirim?
Open, OpenWithPassword, OpenStream ve OpenStreamWithPassword yalnızca PDF girdisini kabul eder.
Diskte değil, zaten bellekte olan bir PDF’yi nasıl yükleyebilirim?
Byte dilimini bir bytes.Reader içine sarın (bu io.Reader gerektirir) ve pdf.OpenStream‘ye geçirin, ya da baytlar şifreli bir PDF’yi temsil ediyorsa pdf.OpenStreamWithPassword kullanın.
Şifre korumalı bir PDF’yi nasıl yüklerim?
pdf.OpenWithPassword(path, password) öğesini dosya yolu için, pdf.OpenStreamWithPassword(r, password) öğesini ise akış için çağırın.
Kaç sayfanın yüklendiğini nasıl kontrol ederim?
Döndürülen *Document üzerinde Document.PageCount()‘i çağırın.