Introduction
इस पोस्ट में, आप सीखेंगे कि कैसे हो जाओ में मूल पीडीएफ दस्तावेज़ प्रबंधन संचालन का उपयोग करके Aspose.PDF FOSS: दवाओं को खोलने और बचाने, नए पीआरडी बनाना, एक दबाव को प्रति-पृष्ठ फ़ाइलों में विभाजित करना, कई पीपीडी को जोड़ना और पृष्ठ रेंजों को निकालना।.
पुस्तकालय एक मॉड्यूल है। github.com/aspose-pdf-foss/aspose-pdf-foss-for-go, एमआईटी लाइसेंस, और जाने के लिए 1.24 या बाद में की आवश्यकता है. स्थापित करें go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.
यह पोस्ट में शामिल हैं Document, Page, PageRange,और DocumentInfo ऐसे प्रकार के रूप में मुख्य दस्तावेज प्रबंधन सतह।.
मुख्य कार्यों
दस्तावेजों को खोलना और बचाना
pdf.Open एक पीडीएफ डाउनलोड करें और डिस्क से वापस लाएं *Document. OpenWithPassword क्या है पासवर्ड संरक्षित फ़ाइलों के लिए भी।. Document.Save परिणाम को वापस लिखें एक फ़ाइल मार्ग।. Document.WriteTo एक को लिखते हैं io.Writer स्मृति या नेटवर्क के लिए परिदृश्यों में।.
// Open a standard PDF
doc, err := pdf.Open("input.pdf")
if err != nil {
panic(err)
}
// Open an encrypted PDF
protected, err := pdf.OpenWithPassword("locked.pdf", "userpassword")
if err != nil {
panic(err)
}
// Save to a new path
err = doc.Save("output.pdf")
fmt.Println(protected.PageCount())
एक नया दस्तावेज़ बनाना
pdf.NewDocument एक खाली बनाता है *Document.उपयोग करें AddBlankPageFromFormat एक सफेद पृष्ठ को मानक कागज के आकार के साथ जोड़ने के लिए।. PageFormat अतः यह संदर्भ एक प्रकार के (PageFormatA4, PageFormatLetter,और इसी तरह).
doc := pdf.NewDocumentFromFormat(pdf.PageFormatA4)
doc.Save("new_document.pdf")
एक दस्तावेज़ को विभाजित करना
Document.Split एक PDF को व्यक्तिगत पृष्ठ में विभाजित करें *Document मूल्य - प्रत्येक वापस भेजे गए दस्तावेज़ में एक पृष्ठ होता है और इसे स्वतंत्र रूप से सहेजा जा सकता है। बैच-प्रोडित रिपोर्टों को विभाजित करने या बिल पृष्ठों के अलगाव के लिए उपयोगी है।.
doc, _ := pdf.Open("multi_page.pdf")
pages, err := doc.Split()
if err != nil {
panic(err)
}
for i, p := range pages {
filename := fmt.Sprintf("page_%03d.pdf", i+1)
if err := p.Save(filename); err != nil {
fmt.Printf("Failed to save page %d: %v\n", i+1, err)
}
}
fmt.Printf("Split into %d pages\n", len(pages))
कई पीडीएफ को संलग्न करें
Document.Append एक दूसरे को मिलाएं *Document स्थान पर पहुंचने के लिए, उपकरणों को सभी पृष्ठों से स्रोत. कॉल करें Append कई बार दस्तावेजों को दोहराने से पहले एकल Save.स्रोत दस्तावेज में कोई संशोधन नहीं किया गया है।.
base, _ := pdf.Open("report_intro.pdf")
section1, _ := pdf.Open("section1.pdf")
section2, _ := pdf.Open("section2.pdf")
appendix, _ := pdf.Open("appendix.pdf")
base.Append(section1)
base.Append(section2)
base.Append(appendix)
base.Save("complete_report.pdf")
एक पृष्ठ रेंज निकालना
PageRange एक व्यापक श्रृंखला (1-आधारित, उपयोग के लिए) का प्रतिनिधित्व करता है From/To (ख) पारित करने के लिए रेंज Document.Extract एक नया बनाने के लिए *Document केवल चुने हुए को ही शामिल किया गया है। यह एक अध्याय प्रति निर्यात या संपादित प्रतिलिपि बनाने के लिए उपयोगी है जो कुछ पृष्ठों को छोड़ दें।.
doc, _ := pdf.Open("long_report.pdf")
// Extract pages 3 through 7
subset, err := doc.Extract(pdf.PageRange{From: 3, To: 7})
if err != nil {
panic(err)
}
subset.Save("pages_3_to_7.pdf")
पाठ और लेखन दस्तावेज़ मेटाडेटा
Document.Info लौटें A DocumentInfo स्ट्रेट एक्सटेंशन जानकारी शब्दकोश के क्षेत्र: Title, Author, Subject, Keywords, Creator, Producer, CreationDate,और ModDate.फ़ील्ड को सीधे बदलें, फिर कॉल करें Document.SetInfo कॉल करने से पहले अपडेट किए गए संरचना को लिखना Save.
doc, _ := pdf.Open("report.pdf")
info, _ := doc.Info()
// Read current values
fmt.Printf("Title: %s\nAuthor: %s\n", info.Title, info.Author)
// Update fields
info.Title = "Annual Report 2026"
info.Author = "Finance Team"
info.Keywords = "annual, report, finance, 2026"
doc.SetInfo(info)
doc.Save("report_updated.pdf")
व्यक्तिगत पृष्ठों तक पहुंच
Document.Page(n) रिटर्न A *Page 1. आधारित सूचकांक के लिए।. Document.PageCount लौटें पृष्ठों की कुल संख्या. पृष्ठ पृष्ठ बॉक्स पढ़ने के लिए भूमेट्री गुणों को प्रदर्शित करते हैं और आकार है।.
doc, _ := pdf.Open("document.pdf")
fmt.Printf("Page count: %d\n", doc.PageCount())
page, _ := doc.Page(1)
size, err := page.Size()
if err != nil {
panic(err)
}
fmt.Printf("Page 1 size: %.0f x %.0f pt\n", size.Width, size.Height)
जल्दी शुरू करें
मॉड्यूल के साथ स्थापित करें go get, फिर नीचे पूर्ण उदाहरण चलाएं. उदाहर खुलता है एक स्रोत दस्तावेज़, अपने पहले तीन पृष्ठों को एक नए दस्त में निकालता है, अद्यतन करता है DocumentInfo मेटाडेटा फ़ील्ड, और डिस्क में परिणाम बचाता है।.
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go
एक पूर्ण उदाहरण जो एक दस्तावेज़ खोलता है, पृष्ठों 1-3 को निकालता हैं और अद्यतन मेटाडेटा के साथ परिणाम बचाता हूं:
package main
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)
func main() {
// Open source document
src, err := pdf.Open("source.pdf")
if err != nil {
panic(err)
}
// Extract pages 1-3
subset, err := src.Extract(pdf.PageRange{From: 1, To: 3})
if err != nil {
panic(err)
}
// Update metadata
info, _ := subset.Info()
info.Title = "Pages 1-3 Extract"
info.Author = "Document Pipeline"
subset.SetInfo(info)
if err := subset.Save("extract_pages_1_3.pdf"); err != nil {
panic(err)
}
fmt.Printf("Saved %d pages\n", subset.PageCount())
}
खुले स्रोत और लाइसेंस
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, कोई चलने का समय शुल्क नहीं, और कोई पंजीकरण आवश्यकताएं नहीं. स्रोत कोड उपलब्ध है github.com/aspose-pdf-foss/asspose - pdf-for-go के लिए.