איך לטעון מסמך ב-Go

איך לטעון מסמך ב-Go

Aspose.PDF FOSS עבור Go טוען קובץ PDF ממסלול קובץ, io.Reader, או כל מקור המוגן בסיסמה, ותמיד מחזיר ערך *Document לעבודה עליו. הספרייה היא מודול Go המותקן עם go get.

מדריך שלב-אחר-שלב

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

הוסף את המודול לפרויקט שלך:

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

ודא שהמודול נפתר:

import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

שלב 2: ייבא מחלקות נדרשות

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

שלב 3: טען PDF ממסלול קובץ

pdf.Open טוען קובץ PDF ומחזיר *Document ושגיאה:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

שלב 4: טען PDF מוגן בסיסמא

pdf.OpenWithPassword פותח קובץ שמוצפן עם סיסמת משתמש:

doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
	panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")

שלב 5: טען PDF מזרם

pdf.OpenStream קורא PDF מכל io.Reader — תגובה רשתית, מאגר בזיכרון, או קובץ שנפתח בנפרד. pdf.OpenStreamWithPassword הוא המקביל המוגן בסיסמא לזרמים:

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

שלב 6: בדוק את המסמך שהוטען

לאחר הטעינה, Document.PageCount מדווח על המספר הכולל של הדפים ו-Document.Page(n) משיג דף בודד לפי האינדקס שמתחיל מ-1:

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)

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

OpenWithPassword עדיין נכשל לאחר שהזנתי מה שלדעתי היא הסיסמה הנכונה

מתן סיסמה שגויה ל-OpenWithPassword גורם לשגיאה שאינה ריקה. הסיסמאות רגישות לרישיות — ודא את הסיסמה המדויקת של המשתמש שהוגדרה בקובץ PDF המקור.

OpenStream מחזיר שגיאה על קובץ PDF מוצפן

OpenStream לא יכול לפתוח קבצי PDF מוצפנים. השתמש ב-OpenStreamWithPassword עבור זרמים מוגנים בסיסמה במקום זאת.

האם אני צריך OpenWithPassword ל-PDF שמתגלה שאינו מוצפן?

לא — פתיחת קובץ לא מוצפן דרך OpenWithPassword מותרת ומתנהגת כמו קריאה רגילה של Open, ולכן בטוח להשתמש ב-OpenWithPassword כשאינך בטוח שהקובץ מוצפן.

Document.Page(n) מחזיר שגיאה אחרי פעולה מוצלחת Open

מספר העמוד נמצא מחוץ לתחום. Page משתמש באינדקס מבוסס 1 בין 1 ל-Document.PageCount(); קרא ל-PageCount() תחילה כדי לאמת את התחום.


שאלות נפוצות

אילו פורמטים של קבצים אני יכול לטעון עם Open?

Open, OpenWithPassword, OpenStream ו-OpenStreamWithPassword כולם מקבלים קלט PDF בלבד.

איך אני טוען קובץ PDF שכבר בזיכרון במקום על הדיסק?

עטוף את פרוסת הבייט ב-bytes.Reader (שממלא את io.Reader) והעבר אותה ל-pdf.OpenStream, או ל-pdf.OpenStreamWithPassword אם הבייטים מייצגים קובץ PDF מוצפן.

איך אני טוען PDF מוגן בסיסמה?

הפעל את pdf.OpenWithPassword(path, password) בשביל נתיב קובץ, או את pdf.OpenStreamWithPassword(r, password) בשביל זרם.

איך אני בודק כמה דפים נטענו?

הפעל את Document.PageCount() על ה-*Document שהוחזר.

ראה גם

 עברית