परिचय

Aspose.PDF FOSS for Go एक शुद्ध-Go लाइब्रेरी है PDF दस्तावेज़ों के साथ काम करने के लिए। यह एक API प्रदान करता है नई PDFs को शुरू से बनाने, मौज़ूदा फ़ाइलें खोलने और संपादित करने, दस्तावेज़ों को प्रति-पृष्ठ आउटपुट में विभाजित करने, कई PDFs को मिलाने, और पासवर्ड-आधारित एन्क्रिप्शन लागू करने के लिए — सभी बिना किसी मूल C या C++ निर्भरताओं के।

यह लाइब्रेरी github.com/aspose-pdf-foss/aspose-pdf-foss-for-go पर एक Go मॉड्यूल के रूप में उपलब्ध है और MIT लाइसेंस के तहत जारी की गई है। Go 1.24+ की आवश्यकता है।

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

यह पोस्ट मुख्य क्षमताओं को कवर करती है: दस्तावेज़ संचालन, सुरक्षा, AcroForm भरना, तालिका लेआउट, बुकमार्क, और एनोटेशन।


मुख्य विशेषताएँ

दस्तावेज़ विभाजन और मर्जिंग

The 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 क्लिक करने योग्य क्षेत्रों में URI या पृष्ठ-गंतव्य कार्यों को संलग्न करता है।

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 MIT लाइसेंस के तहत जारी किया गया है। उपयोग प्रतिबंध नहीं हैं, रनटाइम शुल्क नहीं है, और पंजीकरण आवश्यकताएँ नहीं हैं। स्रोत कोड github.com/aspose-pdf-foss/aspose-pdf-foss-for-go पर उपलब्ध है।

व्यावसायिक उपयोग MIT लाइसेंस शर्तों के तहत अनुमति है। यदि आपके प्रोजेक्ट को एंटरप्राइज़-ग्रेड समर्थन, विस्तारित फ़ॉर्मेट कवरेज, या क्लाउड इंटीग्रेशन की आवश्यकता है, तो Aspose.PDF — Enterprise Product Family एक अलग व्यावसायिक प्रस्ताव है।


शुरू करना

संबंधित संसाधन