Introduktion
Aspose.PDF FOSS för Go exporterar nu PDF-dokument till HTML, exponerar valfria innehållslager i sidträdet och tillhandahåller ett gränssnitt för att skapa Taggade PDF (tillgängliga) dokument. Dessa tillägg utökar Document, Page och Form typerna med dokumenthanteringsfunktioner som går bortom grundläggande öppna/spara-flöden: omvandla en PDF till en självständig HTML sida, växla synligheten för lagerinnehåll, märka upp den logiska strukturen för PDF/UA efterlevnad, och utbyta AcroForm fältdata som JSON.
Biblioteket är en Go-modul, github.com/aspose-pdf-foss/aspose-pdf-foss-for-go, släppt under MIT-licensen utan några inhemska C- eller C++-beroenden.
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goDetta inlägg går igenom de nya HTML exportlägena, hantering av valfritt innehåll (lager), författande av taggat innehåll och formulär JSON export/import — alla baserade på den nuvarande API ytan.
Viktiga funktioner
Exportera PDF till HTML
Document.SaveHTML och Document.WriteHTML konverterar en inläst PDF till HTML, styrt av HTMLSaveOptions.Mode (HTMLModeText för ett synligt, markerbart textlager över en glyflös rasterbakgrund; HTMLModeNative för ett inline-SVG vektorlager; HTMLModeFlow för omflödesbar HTML). Interaktiva AcroForm fält kan konverteras till riktiga HTML formulärkontroller med InteractiveForms: true.
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})
Valfria innehållslager
Document.AddLayer skapar en ny Optional Content Group (OCG) och returnerar en *Layer; Document.Layers listar varje lager som redan finns i dokumentet. En sida markerar innehåll som tillhör ett lager med Page.BeginLayer / Page.EndLayer. Layer.SetVisible(false) döljer lagrets innehåll som standard.
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")
Taggad PDF och tillgänglighet
Document.TaggedContent returnerar *TaggedContent-fasaden som äger dokumentets logiska strukturs träd. TaggedContent.SetTitle / SetLanguage ställer in den katalognivåmetadata som PDF/UA kräver, och Page.TagContent omsluter ett ritningsanrop i markerat innehåll samtidigt som den lägger till en *StructElement-nod.
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
Exportera formulärdata som JSON
Form.ExportJSON serialiserar varje AcroForm fälts typ och värde till JSON; Form.ImportJSON applicerar en JSON-payload tillbaka på ett formulär och returnerar antalet fält som uppdaterades. JSONExportOptions.Indent pretty-printar utdata.
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)
Snabbstart
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")
}
Stödda format
| Format | Filändelse | Läs | Skriv |
|---|---|---|---|
| Ja | - | ||
| HTML | html | - | Ja |
| JSON | json | - | Ja |
Öppen källkod & licensiering
Aspose.PDF FOSS för Go släpps under MIT-licensen: inga användningsrestriktioner, inga körningsavgifter och inga registreringskrav för kommersiell eller personlig användning. Källkoden är hostad på github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.