מקרים של שימוש נפוץ עבור Aspose.PDF FOSS for Go

מקרים של שימוש נפוץ עבור Aspose.PDF FOSS for Go

Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article • מתאים לביצוע פעולות הנחוצות ביותר באמצעות Document, Form, EncryptionOptions, Table, ו OutlineItemCollection תגית: Install with go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.

הדרכה שלב אחר צעד

שלב 1: התקנת החבילה

הוסף את מודול Go תלות:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

שלב 2: ייבוא החבילה

השתמש באליאס כדי לשמור על רמזים ייבוא קצרים:

import (
    "fmt"
    pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

שלב 3: לחלק PDF לתוך קבצים לפי דף

Document.Split לחלק מסמך רב עמודים לאחד *Document לפי דף.

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))

שלב 4: שילוב PDFים מרובים לאחד

Document.Append שילוב של דפים מתוך מסמך שנייה במקום לפני חיסכון.

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")

שלב 5: יישום סיסמה הצפנה

EncryptionOptions הגדרת סיסמה משתמש, סימן הבעלים, אלגוריתם, ו Per-פעולה Permissions בטלפון אחד:

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")

כדי ליצור עותק של טקסט מ- קובץ מוצפן:

doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")

שלב 6: מלא AcroForm

תגיות קשורות השם או השמות (התגובה לשם)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")

שלב 7: יצירת לוח מסך

הוסף A Table עם Row ו Cell כניסה לדף עבור חיוב או הדו"ח גנרטור:

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")

שלב 8: הוסף עץ ספרותי

OutlineItemCollection יצירת מילות מפתח עם פרק / סעיף נייטנג ו DestinationXYZ מטרות דף:

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")

בעיות נפוצות ותקנות

pdf.Open החזיר שגיאה עבור קבצי PDF בתוקף בדוק אם מסלול הקובץ נכון ולא פותח את הקבצים באחד. ב-Windows, סגור קבצים יכול למנוע קריאה.

סוג של טענה פאניקה בעת גישה לשדות צורה שימוש pdf.FieldType(f) או סוג החלפת כדי לבדוק את סוג השדה לפני תגית: A *pdf.TextBoxField טענה על א CheckboxField אני הולך לפאניקה.

go get תגיות קשורות “מודול לא נמצא” ביטחון GOPROXY יש להגדיר את זה על פרוקסיה נגישה (לדוגמה,. GOPROXY=direct) וזה רשתך יכולה להגיע github.com.בסביבה המזוהמת, שימוש GONOSUMCHECK או מראה מודול מקומי.

הצלת נכשלת לאחר OpenWithPassword אם אתה קורא Save לאחר OpenWithPassword בלי להתקשר RemoveEncryption, המקור מוצפן מחדש עם הסיסמה המקורית.זהו ההצעה הצפויה תגית: Call RemoveEncryption כדי להפיק עותק של טענה.

מספר דף המסמך המזויף הוא שגוי Append תנו למשתמש את המקום.הבטיח שלא תקשר Append על מסמך שכבר נשמר; פתח מחדש את המסמכים הבסיסיים אם יש צורך לבנות מספר תוצאות משולבות.


שאלות נפוצות שואלים

האם אני יכול לעבד PDFs בלי לכתוב על דיסק?

Document.WriteTo מקבלת את io.Writer,כך שתוכל לכתוב על רשת, ברשת. זרם, או כתיבת תגובה ללא יצירת קובץ זמני.

האם זה בטוח להשתמש Aspose.PDF FOSS עבור Go באופן תחרותי?

כל אחד *Document אין טעם לנסות את ה-GROUTINE - משתמש אחד Document על פי גוריאנה, או להגן על מקרים משותפים עם מוטקס.

כיצד ניתן לקרוא מחדש את ערכי השדה מתוך טופס מלא?

שימוש Field.Value() על כל שדה או אזהרה סוג כדי לגשת לסוג ספציפי של אביזרים כגון CheckboxField.Checked() או ComboBoxField.SelectedIndex().

האם אני יכול ליצור PDF מתוך ה- scratch ללא תבנית קיימת?

כן כן. pdf.NewDocument() יצירת מסמך ריק - צלצול AddBlankPageFromFormat(pdf.PageFormatA4) כדי להוסיף דף ריק, ולאחר מכן להוספת תוכן (טבלאות, הערות וכו ‘) לפני שמור.

מה ההבדל בין Document.Save ו Document.WriteTo?

Save(path string) כותבים על מסלול קובץ. WriteTo(w io.Writer) כתוב לכל אחד io.Writer – שימושי עבור תשובות HTTP, בופר או צינורות זרם.


ראה גם

 עברית