परिचय
Aspose.PDF FOSS for Go अब PDF दस्तावेज़ों को HTML में निर्यात करता है, पेज ट्री पर वैकल्पिक सामग्री लेयर्स को उजागर करता है, और टैग्ड PDF (सुलभ) दस्तावेज़ों के लेखन के लिए एक फ़ेसाड प्रदान करता है। ये जोड़ Document, Page, और Form प्रकारों को दस्तावेज़-प्रबंधन क्षमताओं के साथ विस्तृत करते हैं जो मूलभूत खोलें/सहेजें कार्यप्रवाहों से आगे हैं: PDF को एक आत्म-निर्भर HTML पृष्ठ में बदलना, लेयर वाली सामग्री की दृश्यता को टॉगल करना, PDF/UA अनुपालन के लिए तार्किक संरचना को चिह्नित करना, और AcroForm फ़ील्ड डेटा को JSON के रूप में बदलना।
यह लाइब्रेरी एक Go मॉड्यूल है, github.com/aspose-pdf-foss/aspose-pdf-foss-for-go, जो MIT लाइसेंस के तहत जारी की गई है और इसमें कोई मूल C या C++ निर्भरताएँ नहीं हैं।
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goयह पोस्ट नए HTML निर्यात मोड, वैकल्पिक सामग्री (लेयर) संभाल, टैग्ड-कंटेंट लेखन, और फ़ॉर्म JSON निर्यात/आयात को समझाती है — जो सभी वर्तमान API सतह पर आधारित हैं।
मुख्य विशेषताएँ
PDF को HTML में निर्यात करना
Document.SaveHTML और Document.WriteHTML लोड किए गए PDF को HTML में परिवर्तित करते हैं, HTMLSaveOptions.Mode द्वारा नियंत्रित (HTMLModeText एक दृश्यमान, चयन योग्य टेक्स्ट लेयर के लिए जो glyph-रहित रास्टर बैकग्राउंड पर हो; HTMLModeNative एक इनलाइन-SVG वेक्टर लेयर के लिए; HTMLModeFlow रीफ़्लोएबल HTML के लिए)। इंटरैक्टिव AcroForm फ़ील्ड्स को InteractiveForms: true के साथ वास्तविक HTML फ़ॉर्म कंट्रोल्स में बदला जा सकता है।
doc, _ := pdf.Open("input.pdf")
// Faithful mode (default): full page raster + transparent selectable text layer.
doc.SaveHTML("out.html")
// Visible-text mode: real styled HTML text over a glyph-less background raster.
doc.SaveHTML("out.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeText})
// Native mode: page graphics as one inline SVG layer.
doc.SaveHTML("out.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeNative})
// Flow mode: reflowable HTML, paragraphs and headings in reading order.
doc.SaveHTML("article.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeFlow})
// Interactive forms become fillable HTML controls.
doc.SaveHTML("form.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeText, InteractiveForms: true})
वैकल्पिक सामग्री लेयर्स
Document.AddLayer एक नया वैकल्पिक सामग्री समूह (OCG) बनाता है और एक *Layer लौटाता है; Document.Layers दस्तावेज़ में पहले से मौजूद प्रत्येक लेयर की सूची देता है। एक पृष्ठ सामग्री को Page.BeginLayer / Page.EndLayer के साथ किसी लेयर से संबंधित के रूप में चिह्नित करता है। Layer.SetVisible(false) डिफ़ॉल्ट रूप से लेयर की सामग्री को छिपा देता है।
doc := pdf.NewDocumentFromFormat(pdf.PageFormatA4)
layer := doc.AddLayer("Watermark")
page, _ := doc.Page(1)
page.BeginLayer(layer)
page.AddText("DRAFT", pdf.TextStyle{Font: pdf.FontHelveticaBold, Size: 48},
pdf.Rectangle{LLX: 150, LLY: 400, URX: 450, URY: 460})
page.EndLayer()
layer.SetVisible(false) // hide the watermark by default
doc.Save("layered.pdf")
टैग्ड PDF और अभिगम्यता
Document.TaggedContent वह *TaggedContent फ़ेसाड लौटाता है जो दस्तावेज़ की तार्किक संरचना ट्री का स्वामित्व रखता है। TaggedContent.SetTitle / SetLanguage कैटलॉग-स्तर की मेटाडेटा सेट करते हैं जिसकी PDF/UA आवश्यकता है, और Page.TagContent मार्क्ड कंटेंट में एक ड्रॉइंग कॉल को कोष्ठक में रखता है जबकि एक *StructElement नोड जोड़ता है।
doc := pdf.NewDocumentFromFormat(pdf.PageFormatA4)
tc := doc.TaggedContent()
tc.SetTitle("Quarterly Report")
tc.SetLanguage("en-US")
page, _ := doc.Page(1)
page.TagContent(tc.Root(), pdf.StructH1, func() error {
return page.AddText("Quarterly Report", pdf.TextStyle{Font: pdf.FontHelveticaBold, Size: 24},
pdf.Rectangle{LLX: 50, LLY: 760, URX: 545, URY: 800})
})
fig, _ := page.TagContent(tc.Root(), pdf.StructFigure, func() error {
return page.AddImage("chart.png", pdf.Rectangle{LLX: 50, LLY: 540, URX: 300, URY: 680})
})
fig.SetAlt("Bar chart of Q3 sales by region") // required for figures
doc.Save("accessible.pdf") // doc.ValidatePDFUA() is now Conformant
फ़ॉर्म डेटा को JSON के रूप में निर्यात करना
Form.ExportJSON हर AcroForm फ़ील्ड के प्रकार और मान को JSON में सीरियलाइज़ करता है; Form.ImportJSON एक JSON पेलोड को फ़ॉर्म पर वापस लागू करता है और अपडेट किए गए फ़ील्डों की संख्या लौटाता है। JSONExportOptions.Indent आउटपुट को सुंदर रूप से प्रिंट करता है।
doc, _ := pdf.Open("filled.pdf")
data, _ := doc.Form().ExportJSON(pdf.JSONExportOptions{Indent: true})
// Fill a template from a JSON payload; discard the applied-field count.
template, _ := pdf.Open("template.pdf")
_, _ = template.Form().ImportJSON(data)
त्वरित प्रारंभ
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-gopackage 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)
}
err = doc.SaveHTML("out.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeText})
if err != nil {
panic(err)
}
fmt.Println("HTML export complete")
}
समर्थित फ़ॉर्मेट
| फ़ॉर्मेट | एक्सटेंशन | पढ़ें | लिखें |
|---|---|---|---|
| हाँ | - | ||
| HTML | html | - | हाँ |
| JSON | json | - | हाँ |
ओपन सोर्स और लाइसेंसिंग
Aspose.PDF FOSS for Go MIT लाइसेंस के तहत जारी किया गया है: कोई उपयोग प्रतिबंध नहीं, कोई रनटाइम शुल्क नहीं, और व्यावसायिक या व्यक्तिगत उपयोग के लिए कोई पंजीकरण आवश्यकता नहीं। स्रोत कोड github.com/aspose-pdf-foss/aspose-pdf-foss-for-go पर होस्ट किया गया है।