Συχνές ερωτήσεις
Αδειοδότηση και ανοικτή πηγή
Ποια είναι η άδεια για το Aspose.PDF FOSS for Go;?
Aspose.PDF FOSS for Go is released under the ΜΙΤ Αδειοδότηση.Το πλήρες κείμενο της άδειας είναι συμπεριλαμβάνεται στο αποθεματικό του στην github.com/αποστροφή-pdf-foss/Αποκτροφή - pdf-for-go. Δεν απαιτείται εγγραφή, ενεργοποίηση αρχείου ή κλειδί λειτουργίας.
Μπορώ να χρησιμοποιήσω το Aspose.PDF FOSS για την Go σε ένα εμπορικό προϊόν;?
Ναι. Η άδεια MIT επιτρέπει απεριόριστη εμπορική χρήση, τροποποίηση, διανομή και ιδιωτική χρήση. Πρέπει να συμπεριλάβετε την ειδοποίηση πνευματικών δικαιωμάτων και το κείμενο της άδειας MIT σε όλα τα αντίγραφα ή σημαντικά τμήματα του λογισμικού.
Υπάρχει επιχειρηματική έκδοση;?
Aspose.PDF FOSS is the open-source, MIT-licensed edition. A separate commercial Aspose.PDF product is available as the Aspose.PDF — Enterprise Product Family με επιχειρηματική υποστήριξη, εκτεταμένη κάλυψη μορφής και ενσωμάτωση στο cloud.
Εγκατάσταση και απαιτήσεις
Πώς μπορώ να εγκαταστήσω το Aspose.PDF FOSS για Go;?
Προσθήκη του module στο έργο σας:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goΕισάγετε το με ένα alias στα αρχεία πηγής σας:
import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Ποια έκδοση χρειάζεται;?
1.24 ή αργότερα απαιτείται. ελέγξτε την έκδοση σας με το go version.
Υπάρχουν εγχώριες ή συστημικές βιβλιοθήκες εξαρτήσεις;?
Το Aspose.PDF FOSS for Go είναι μια υλοποίηση καθαρά με καμία εξάρτηση C, C++ ή CGo. Δεν απαιτεί βιβλιοθήκες συστήματος, αναθεωρητές PDF ή εξωτερικά εργαλεία.
Πυροβολισμοί
Πώς μπορώ να ανοίξω ένα υπάρχον PDF;?
Χρησιμοποιήστε pdf.Open για τα τυποποιημένα PDF και pdf.OpenWithPassword Για τα αρχεία που προστατεύονται από κωδικό πρόσβασης:
doc, err := pdf.Open("document.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Πώς μπορώ να χωρίσω ένα PDF σε μεμονωμένες σελίδες;?
Document.Split Επιστρέφει ο Α []*Document,1 ανά σελίδα:
doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}Πώς μπορώ να συγχωνεύσω πολλαπλά PDF;?
Document.Append Συνδυάζει ένα αρχείο πηγής σε θέση:
base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")Πώς μπορώ να συμπληρώσω ένα πεδίο AcroForm;?
Χρησιμοποιήστε Document.Form().Field(name) Και αναφέρει το συγκεκριμένο είδος:
doc, _ := pdf.Open("form.pdf")
text := doc.Form().Field("customer_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
check := doc.Form().Field("agree").(*pdf.CheckboxField)
check.SetChecked(true)
doc.Save("form_filled.pdf")Υποστηριζόμενοι τύποι πεδίων: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.
Πώς μπορώ να προσθέσω βιβλιογραφίες;?
Δημιουργήστε ένα OutlineItemCollection και να βάλει ένα Destination:
doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)
bm := pdf.NewOutlineItemCollection(doc)
bm.SetTitle("Chapter 1")
bm.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(bm)
doc.Save("manual_with_bookmarks.pdf")Ασφάλεια και κρυπτογράφηση
Πώς μπορώ να προστατεύσω ένα PDF;?
Χρησιμοποιήστε Document.SetEncryption Με ένα EncryptionOptions παρέχει έναν κωδικό πρόσβασης για το άνοιγμα του αρχείου και έναν ιδιοκτήτη κωδικού πρόσβασής για τα δικαιώματα τροποποίησης:
doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "userpass",
OwnerPassword: "ownerpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("doc_protected.pdf")Ποια αλγόριθμοι κρυπτογράφου υποστηρίζονται;?
Τρεις αλγόριθμοι είναι διαθέσιμες μέσω EncryptionOptions.Algorithm:
| Αλγόριθμος | Συνεχώς | Κανόνες |
|---|---|---|
| AES-128 | EncryptionAlgAES128 (από προεπιλογή ) | ISO 32000-1 |
| AES-256 | EncryptionAlgAES256 | ISO 32000-2 (Εξέλιξη PDF 2.0) |
| RC4-128 | EncryptionAlgRC4_128 | κληρονομιά |
Πώς μπορώ να ανοίξω ένα αρχείο με προστασία κωδικού πρόσβασης;?
Χρησιμοποιήστε pdf.OpenWithPassword όταν το αρχείο απαιτεί αυθεντικότητα. περάστε τον κωδικό πρόσβασης του χρήστη ως δεύτερο επιχείρημα· επιστρέφει ένα κανονικό *Document Όταν η αποκρυπτογράφηση επιτυγχάνει:
doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Πώς μπορώ να αφαιρέσω την κρυπτογράφηση από ένα PDF;?
Κλήση Document.RemoveEncryption μετά το άνοιγμα του αρχείου με τον σωστό κωδικό πρόσβασης. Αποθηκεύστε το αποτέλεσμα για να γράψετε ένα μη κρυπτογραφημένο αντίγραφο:
doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")Ρεντερίνγκ και κείμενο
Πώς μπορώ να μετατρέψω μια σελίδα PDF σε μια εικόνα;?
Χρησιμοποιήστε έναν από τους τύπους συσκευών: BmpDevice, PngDevice, JpegDevice, TiffDevice,ή GifDevice.• Κατασκευάστε τη συσκευή με ένα Resolution Αξιολόγηση και καλέστε το αντίστοιχο Render* Μέθοδος με ένα io.Writer και RenderOptions:
doc, _ := pdf.Open("report.pdf")
page, _ := doc.Page(1)
f, _ := os.Create("page1.png")
defer f.Close()
page.RenderPNG(f, pdf.RenderOptions{DPI: 150})Πώς μπορώ να αναζητήσω κείμενο σε PDF;?
Κλήση Document.SearchText Με μια γραμμή ερωτήσεων και SearchOptions.Το αποτέλεσμα είναι ένα Σιτ του TextMatch τιμές - κάθε μία φέρει το αντίστοιχο κείμενο, τον δικό της δείκτη σελίδας και την Σύνδεση του κουτιού.
doc, _ := pdf.Open("doc.pdf")
matches, _ := doc.SearchText("total", pdf.SearchOptions{CaseInsensitive: true})
for _, m := range matches {
fmt.Printf("page %d: %q\n", m.PageNumber, m.Text)
}Πώς μπορώ να βάλω μια μορφή;?
Κλήση Document.Flatten μετά την συμπλήρωση ή αναθεώρηση μιας φόρμας. η μέθοδος καλύπτει όλο το πεδίο εισάγετε τις τιμές στα γραφικά της σελίδας και αφαιρέστε τα διαδραστικά πεδία φόρμας:
doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")Γνωστές Περιορισμοί
Όλα τα PDF λειτουργίες υποστηρίζονται;?
Η βιβλιοθήκη καλύπτει τις πιο κοινές λειτουργίες διαχείρισης εγγράφων: ανοίξτε, δημιουργήστε, αποθηκεύσετε, χωρίστε και συγχωνεύστε το κρυπτογράφημα σελίδων, τα AcroForms, οι πίνακες, σημειώσεις, αναρτήσεις εικόνας, η αναζήτηση κειμένου και η εκκίνηση μορφής. Προηγμένες δυνατότητες όπως ψηφιακές υπογραφές, περιεχόμενο 3D και μετατροπή PDF/A μπορεί να μην εφαρμόζονται πλήρως στην τρέχουσα έκδοση. Δείτε το ρεκόρ README για την τρέχουσα κατάσταση χαρακτηριστικών.
Τι συμβαίνει αν χρησιμοποιώ μια δήλωση τύπου πεδίου που δεν ταιριάζει;?
Ένα είδος ισχυρισμού για Field Αυτό δεν ταιριάζει με τον πραγματικό τύπο πεδίου θα πανικοβληθεί. Χρησιμοποιήστε pdf.FieldType(f) Για να ελέγξετε τον τύπο πριν από την υποβολή, ή χρησιμοποιήστε ένα μετατροπέα τύπου:
doc, _ := pdf.Open("form.pdf")
for _, f := range doc.Form().Fields() {
switch v := f.(type) {
case *pdf.TextBoxField:
fmt.Println("text:", v.Value())
case *pdf.CheckboxField:
fmt.Println("checked:", v.Checked())
}
}