مقدمة
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an واجهة برمجة لإنشاء ملفات PDF جديدة من الصفر، وفتح وتحرير الملفين الموجودين، والتمزيق. المستندات إلى مخرجات لكل صفحة، ودمج PDFs متعددة وتطبيق كلمة مرور القائمة على التشفير جميعها بدون أي اعتمادات C أو C ++ الأصلية.
المكتبة متاحة كوحدة Go على: github.com/aspose-pdf-foss/aspose-pdf-foss-for-go ويتم إصدارها تحت ترخيص MIT. قم بتثبيته مع: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go إلى أيّ مكان. إذهب إلى مشروع 1.24+.
تغطي هذه المشاركة القدرات الأساسية: عمليات الوثائق، والأمن، وتعبئة AcroForm، وترتيب الجدول، والعلامات الكتابية، والتسجيل.
الميزات الرئيسية
تقسيم وثائق ودمجها
المجلس الوزاري Document النوع يقدم Split() تقسيم PDF إلى وثائق لكل صفحة، و Append() لدمج وثيقة خارجية في الموقع. PageRange يسمح لك بالعمل مع مجموعة فرعية من الصفحات للاستخراج أو التصدير الانتقائي. Metadata المكشوفات حقول معلومات المستندات للقراءة والكتابة المؤلف، العنوان وتاريخ الإنشاء.
doc, _ := pdf.Open("report.pdf")
// Split into per-page PDFs
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page%03d.pdf", i+1))
}
// Merge a second PDF into doc
doc2, _ := pdf.Open("appendix.pdf")
doc.Append(doc2)
doc.Save("combined.pdf")
تشفير كلمة المرور و الأذونات
EncryptionOptions يهيئ كلمة المرور المستخدم، وكلمة المرء المالك، والعمليات المسموح بها في دعوة واحدة إلى: SetEncryption.الخوارزميات المدعومة هي AES-128 (الجهاز الافتراضي) ،, AES-256 (ISO 32000-2، ينتج مخرج PDF 2.0) ، و RC4-128 للتوافق القديم. Permissions يسمح لك بالسماح أو رفض العمليات الفردية طباعة، نسخة، إمكانية الوصول ?? بشكل مستقل. OpenWithPassword يفتح الملفات المشفرة.; RemoveEncryption يزيل الـ كلمة المرور قبل حفظ نسخة نصيّ.
doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "userpass",
OwnerPassword: "ownerpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")
معالجة حقل AcroForm
Form يمنح الوصول إلى جميع حقول AcroForm في المستند. Field هو القاعدة واجهة؛ تصريحات النوع تمنح الوصول إلى TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField,، و ButtonField. الميدان محدد القيم حسب اسم الحقل المشاهد يعيد إعادة تشكيل الظهور تلقائياً عبر: /NeedAppearances=true على حفظ.
doc, _ := pdf.Open("application.pdf")
text := doc.Form().Field("full_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
check := doc.Form().Field("agree_terms").(*pdf.CheckboxField)
check.SetChecked(true)
combo := doc.Form().Field("country").(*pdf.ComboBoxField)
combo.SetSelected(0)
doc.Save("application_filled.pdf")
تصميم الجدول
Table, Row,، و Cell إنشاء تخطيطات شبكة منظمة على صفحات PDF. BorderInfo يُهيئ أسلوب الحدود لكل خلية أو للجدول بأكمله. MarginInfo يضع الغطاء الخلوي. TextStyle يسيطر على الخط والحجم واللون والتوافق عبر HAlign و VAlign. Image يمكن وضعها داخل الخلايا بجانب النص.
doc, _ := pdf.Open("invoice_template.pdf")
tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{120, 80, 80})
row := tbl.AddRow()
row.AddCell("Item")
row.AddCell("Qty")
row.AddCell("Price")
page, _ := doc.Page(1)
page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")
علامات المفتاح والتنقل
OutlineItemCollection يمثل إدخالًا واحدًة من علامات المفتاح. استخدام SetTitle, SetBold, SetColor,، و SetDestination لتكوينها. DestinationXYZ يستهدف دقيقاً إحداثيات الصفحة.; DestinationFit يتناسب مع الصفحة في المشاهد. NamedDestinations يسجل أهداف القفز قابلة لإعادة الاستخدام يمكن الوصول إليها باسم.
doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)
chapter := pdf.NewOutlineItemCollection(doc)
chapter.SetTitle("Chapter 1: Getting Started")
chapter.SetBold(true)
chapter.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(chapter)
section := pdf.NewOutlineItemCollection(doc)
section.SetTitle("Installation")
section.SetDestination(pdf.NewDestinationFit(page))
chapter.Add(section)
doc.Save("manual_with_bookmarks.pdf")
ملاحظات وبطاقات
AnnotationCollection تحتوي على جميع التعليقات في صفحة. TextAnnotation يضيف ملاحظة ملصقة تعليق. StampAnnotation يضع طابع الموافقة أو التفاصيل باستخدام أحد النماذج: محدد مسبقاً StampName القيم. HighlightAnnotation علامات مناطق النص. RedactAnnotation يزيل المحتوى الحساس بشكل دائم. LinkAnnotation يرفق عنوان الموقع أو الصفحة الوجهة الإجراءات إلى المناطق التي يمكن النقر عليها.
doc, _ := pdf.Open("draft.pdf")
page, _ := doc.Page(1)
stamp := pdf.NewStampAnnotation(page, pdf.Rectangle{LLX: 100, LLY: 700, URX: 250, URY: 750}, pdf.StampNameApproved)
page.Annotations().Add(stamp)
doc.Save("draft_approved.pdf")
بدء سريع
قم بتثبيت الوحدة:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goتدفق عمل ضئيل فتح PDF، تشفيرها بكلمة مرور، وحفظ:
package main
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)
func main() {
doc, err := pdf.Open("input.pdf")
if err != nil {
panic(err)
}
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "secret",
OwnerPassword: "ownerSecret",
Permissions: &pdf.Permissions{AllowPrint: true},
})
if err := doc.Save("output_encrypted.pdf"); err != nil {
panic(err)
}
fmt.Println("Saved output_encrypted.pdf")
}
المصدر المفتوح والتصنيف
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, لا توجد رسوم تشغيل ولا متطلبات تسجيل. يتوفر الكود المصدر على: github.com/aspose-pdf-foss/asspose - pdf-فوس فور جو.
يسمح باستخدام التجارية بموجب شروط ترخيص MIT. إذا كان مشروعك يتطلب دعم مستوى المؤسسة، تغطية النموذج الموسع أو دمج السحابة، Aspose.PDF — Enterprise Product Family هو منفصلة. عرض تجاري.