كيفية تحميل مستند في Go

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

انظر أيضاً

 العربية