كيفية تحميل مستند في Go
Aspose.PDF FOSS for 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 المُسترجع.