הכניסה
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API ליצירת PDFים חדשים מתוך חיתוך, פתיחת ועריכה של קבצים קיימים, חלוקת מסמכים לתוך תוצאות לפי דף, שילוב של PDFים מרובים, ויישום מבוסס סיסמה הצפנה – כל ללא תלויות C או C++ המקומיות.
הספרייה זמינה כמודול Go ב- github.com/aspose-pdf-foss/aspose-pdf-foss-for-go הוא שוחרר תחת רישיון MIT. התקנת אותו עם go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go בכל אחד מהם 1.24 + פרויקטים.
הפוסט הזה מכסה את היכולות הבסיסיות: פעולות מסמך, אבטחה, מילוי AcroForm, מעצב שולחן, תוויות ספרים וכתובות.
תכונות מרכזיות
מסמכים מחולקים ומשתלבים
The Document סוג מספק Split() לחלק את ה-PDF לתוך מסמכים לפי דף ו Append() להוסיף מסמך חיצוני במקום. PageRange תנו לעבוד עם תת-סדרה של דפים עבור מיצוי או ייצוא סלקטיבי. Metadata תצוגה שדות מידע מסמך לקריאה ולכתוב מחבר, כותרת ותאריך יצירה.
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")
הצפנת סיסמה והרשאות
EncryptionOptions הגדרת סיסמה משתמש, סימן הבעלים והפעולות המותרות ב- שיחה אחת ל SetEncryption.האלגוריתם המומלץ הוא AES-128 (הדפוס), AES-256 (ISO 32000-2, מייצר PDF 2.0), ו- RC4-128 עבור תאימות מורשת. Permissions לאפשר או לסרב לפעולות בודדות - הדפסה, העתקה, גישה – באופן עצמאי . OpenWithPassword פותחים קבצים מוצפנים; RemoveEncryption שריד את סיסמה לפני שמירת עותק של טקסט.
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
Form מספק גישה לכל שדות AcroForm במסמך. Field זה הבסיס אינטראקציה; טופס הצהרות נותן גישה ל TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ו ButtonField.• הקמת שדה ערכים לפי שם שדה – הצופה מחדש את המראה באופן אוטומטי באמצעות /NeedAppearances=true על הצלה .
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")
שולחן Layout
Table, Row, ו Cell לבנות מעשים ברשת מבוססים על דפי PDF. BorderInfo הגדרת סגנון גבול לכל תא או עבור כל השולחן. MarginInfo תנו לי תא פדנג. TextStyle • בקרת טקסט, גודל, צבע וריכוז באמצעות HAlign ו VAlign. Image ניתן להציב אותם בתוך תאים לצד הטקסט.
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")
מילות המפתח והניווט
OutlineItemCollection נכנסת כניסה אחת.השתמשו SetTitle, SetBold, SetColor, ו SetDestination כדי להגדיר את זה. DestinationXYZ מטרות מדויקות הקואורדינט של הדף; DestinationFit מצד שני, הדף נכנס לתוך המבקר. NamedDestinations רשומות של מטרות קפיצה חוזרת זמינות על ידי שם.
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")
תגיות וסטמפס
AnnotationCollection כל ההודעות נשמרות בדף אחד. TextAnnotation הוסף הערה סטייקי → איך . StampAnnotation להציג מכתב אישור או מידע באמצעות אחד מהתוכניות. מראש מוגדרת StampName ערכים . HighlightAnnotation מסמכים אזורי טקסט. RedactAnnotation להסיר באופן קבוע את התוכן הרגיש. LinkAnnotation תגיות URI או יעד דף פעולות למקומות הקליקנים.
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")
מהיר התחלה
להגדיר את המודול:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goזרימת עבודה מינימלית – פתח PDF, הצפנה אותו באמצעות סיסמה, והחזיקה:
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")
}
קוד פתוח ורישיון
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, אין דמי זמן, ואין דרישות רישום.הקוד המקור זמין ב- github.com/aspose-pdf-foss/asspose - pdf-for-go.
שימוש מסחרי מותר על פי תנאי רישיון MIT. אם הפרויקט שלך דורש תמיכה ברמה ארגונית, כיסוי פורמט מורחב או אינטגרציה בענן, Aspose.PDF — Enterprise Product Family הוא נפרד הצעת מחיר מסחרית.