الأسئلة المتكررة
الترخيص والمصدر المفتوح
ما هي رخصة Aspose.PDF FOSS لـ Go؟?
Aspose.PDF FOSS for Go is released under the ترخيص MIT.النص الكامل للمراخيص هو: مدرجة في السجل عند: github.com/aspose-pdf-foss/asspose - pdf-فوس فور جو. لا حاجة للتسجيل، أو ملف التفعيل، او مفتاح الوقت المطلوب.
هل يمكنني استخدام Aspose.PDF FOSS for Go في منتج تجاري؟?
نعم. ترخص رخصة MIT الاستخدام التجاري غير المقيد، والتعديل، والتوزيع، والاستخدام الخاص. يجب أن تضيف إشعار حقوق الطبع والنشر ونص رخصه MIT في جميع النسخ أو أجزاء كبيرة من البرنامج.
هل هناك نسخة مؤسسة؟?
Aspose.PDF FOSS is the open-source, MIT-licensed edition. A separate commercial Aspose.PDF product is available as the Aspose.PDF — Enterprise Product Family مع دعم المؤسسة، وتغطية النماذج الموسعة، ودمج السحابة.
التثبيت والمتطلبات
كيف أتركب Aspose.PDF FOSS for Go؟?
إضافة الوحدة إلى مشروع Go الخاص بك:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goاستيرادها مع اسم مستعار في ملفات المصدر الخاصة بك:
import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"ما هو النسخة المطلوبة من Go؟?
يجب أن تصل إلى 1.24 أو أحدث. تحقق من إصدارك مع go version.
هل هناك اعتمادات مكتبة محلية أو نظامية؟?
لا. Aspose.PDF FOSS for Go هو تنفيذ نقي لـ Go بدون اعتمادات C أو C ++ أو cGo. ولا يتطلب أي مكتبات نظامية ، ومشاهدي PDF ، أو أدوات خارجية.
استخدام النار
كيف يمكنني فتح ملف PDF موجود؟?
استخدام pdf.Open لملفات PDF القياسية و pdf.OpenWithPassword لملفات محمية بكلمة مرور:
doc, err := pdf.Open("document.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())كيف أقوم بتقسيم ملف PDF إلى صفحات فردية؟?
Document.Split يعيد a []*Document,، واحدة لكل صفحة:
doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}كيف أجمع ملفات PDF متعددة؟?
Document.Append يدمج وثيقة مصدر في الموقع:
base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")كيف أملأ حقل AcroForm؟?
استخدام Document.Form().Field(name) ويقول نوع الخرسانة:
doc, _ := pdf.Open("form.pdf")
text := doc.Form().Field("customer_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
check := doc.Form().Field("agree").(*pdf.CheckboxField)
check.SetChecked(true)
doc.Save("form_filled.pdf")أنواع الحقول المدعومة: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.
كيف أضيف علامات المفتاح؟?
إنشاء OutlineItemCollection ووضع a Destination:
doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)
bm := pdf.NewOutlineItemCollection(doc)
bm.SetTitle("Chapter 1")
bm.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(bm)
doc.Save("manual_with_bookmarks.pdf")الأمن والتشفير
كيف أحمي PDF بكلمة مرور؟?
استخدام Document.SetEncryption مع EncryptionOptions struct لتطبيق حماية كلمة المرور وترشيحات الأذونة. قم بتوفير كلمة مرور المستخدم لفتح الملف وكلمة عبور المالك لحقوق التعديل:
doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "userpass",
OwnerPassword: "ownerpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("doc_protected.pdf")أي خوارزميات تشفير مدعومة؟?
ثلاثة خوارزميات متاحة عبر: EncryptionOptions.Algorithm:
| الخوارزمية | ثابتة | القياسية |
|---|---|---|
| AES-128 | EncryptionAlgAES128 (الجهل) | ISO 32000-1 |
| AES-256 | EncryptionAlgAES256 | ISO 32000-2 (مخرج PDF 2.0) |
| RC4-128 | EncryptionAlgRC4_128 | التراث |
كيف أفتح ملف محمي بكلمة مرور؟?
استخدام pdf.OpenWithPassword عندما يتطلب الملف المصادقة. تمر كلمة المرور كمحاور الثانية؛ فإنه يعود إلى عادة *Document بمجرد نجاح فك التشفير:
doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())كيف أزيل التشفير من ملف PDF؟?
اتصلوا Document.RemoveEncryption بعد فتح الملف باستخدام كلمة المرور الصحيحة. حفظ النتيجة لكتابة نسخة غير مشفرة:
doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")التصوير والنص
كيف أُصنع صفحة PDF إلى صورة؟?
استخدم أحد أنواع الأجهزة: BmpDevice, PngDevice, JpegDevice, TiffDevice,أو ، GifDevice. تصميم الجهاز مع a Resolution القيمة وندعو المقابلة Render* طريقة مع io.Writer و RenderOptions:
doc, _ := pdf.Open("report.pdf")
page, _ := doc.Page(1)
f, _ := os.Create("page1.png")
defer f.Close()
page.RenderPNG(f, pdf.RenderOptions{DPI: 150})كيف أبحث عن نص في PDF؟?
اتصلوا Document.SearchText مع سلسلة استفسار و SearchOptions.النتيجة هي: قطعة من TextMatch قيم كل منها يحمل النص المطابق، فهرس الصفحة الخاص به، وفهرس صفحتها. صندوق تحديد.
doc, _ := pdf.Open("doc.pdf")
matches, _ := doc.SearchText("total", pdf.SearchOptions{CaseInsensitive: true})
for _, m := range matches {
fmt.Printf("page %d: %q\n", m.PageNumber, m.Text)
}كيف أصفح نموذج؟?
اتصلوا Document.Flatten بعد ملء أو مراجعة نموذج. الطريقة تخبز جميع الحقول القيم في الرسومات الصفحة ويزيل حقل النموذج التفاعلي:
doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")الحد المعروف
هل يتم دعم جميع ميزات PDF؟?
تغطي المكتبة أكثر عمليات إدارة الوثائق شيوعًا: فتح ، إنشاء ، حفظ ، تقسيم ، دمج ، استخراج الصفحة ، التشفير ، AcroForms ، الجداول ، علامات الدخول، التعليقات ، الإصدار إلى صورة ، البحث النصي ، وتصفية الشكل. قد لا يتم تنفيذ ميزات متقدمة مثل توقيعات رقمية ومحتوى 3D ، و PDF / A في الإطلاق الحالية. تحقق من مستودع README للحصول على حالة خاصية الحال.
ماذا يحدث إذا استخدمت إقرار من نوع الحقل لا يطابق؟?
تصريح نوع على: Field لا يطابق نوع المجال الفعلي سوف تصاب بالذعر. استخدام pdf.FieldType(f) للتفتيش على النوع قبل التأكيد، أو استخدام مفتاح نوع:
doc, _ := pdf.Open("form.pdf")
for _, f := range doc.Form().Fields() {
switch v := f.(type) {
case *pdf.TextBoxField:
fmt.Println("text:", v.Value())
case *pdf.CheckboxField:
fmt.Println("checked:", v.Checked())
}
}