Bevezetés

Aspose.PDF FOSS for Go most már exportál PDF dokumentumokat HTML formátumba, kitetti az opcionális tartalmi rétegeket az oldalfában, és felületet biztosít a Címkézett PDF (hozzáférhető) dokumentumok szerkesztéséhez. Ezek a kiegészítések kibővítik a Document, Page és Form típusokat dokumentumkezelési képességekkel, amelyek túlmutatnak az alap nyitás/mentés munkafolyamatokon: a PDF-et egy önálló HTML oldallá alakítják, a réteges tartalom láthatóságát kapcsolgatják, a logikai struktúrát megjelölik a PDF/UA megfelelés érdekében, és a AcroForm mezőadatokat JSON formátumban cserélik.

A könyvtár egy Go modul, github.com/aspose-pdf-foss/aspose-pdf-foss-for-go, amely MIT licenc alatt kerül kiadásra, natív C vagy C++ függőségek nélkül.

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

Ez a bejegyzés végigvezet az új HTML export módokon, az opcionális tartalom (réteg) kezelésén, a címkézett tartalom szerkesztésén, valamint az űrlap JSON export/import folyamatán — mindegyik az aktuális API felületen alapul.


Főbb jellemzők

PDF exportálása HTML formátumba

Document.SaveHTML és Document.WriteHTML egy betöltött PDF-et HTML-ra konvertálják, a HTMLSaveOptions.Mode által vezérelve (HTMLModeText egy látható, kiválasztható szövegréteghez egy glif nélküli raszter háttér felett; HTMLModeNative egy inline-SVG vektorgépre; HTMLModeFlow áramoltatott HTML esetén). Az interaktív AcroForm mezők valós HTML űrlapvezérlőkké alakíthatók a InteractiveForms: true segítségével.

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})

Opcionális tartalomrétegek

Document.AddLayer létrehoz egy új Opcionális Tartalomcsoportot (OCG) és visszaad egy *Layer-t; Document.Layers felsorolja a dokumentumban már létező összes réteget. Egy oldal a tartalmat a Page.BeginLayer / Page.EndLayer segítségével jelöli meg, hogy egy réteghez tartozik. Layer.SetVisible(false) alapértelmezés szerint elrejti a réteg tartalmát.

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")

Tagelt PDF és akadálymentesség

Document.TaggedContent visszaadja a *TaggedContent felületet, amely a dokumentum logikai struktúrafáját birtokolja. TaggedContent.SetTitle / SetLanguage beállítják a katalógusszintű metaadatokat, amelyeket a PDF/UA megkövetel, és a Page.TagContent egy rajzolási hívást zár be a megjelölt tartalomban, miközben hozzáad egy *StructElement csomópontot.

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

Űrlapadatok exportálása JSON formátumban

Form.ExportJSON sorosítja minden AcroForm mező típusát és értékét JSON-ba; Form.ImportJSON visszahelyezi a JSON terhet egy űrlapra, és visszaadja a frissített mezők számát. JSONExportOptions.Indent szépíti a kimenetet.

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)

Gyors kezdés

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go
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)
	}

	err = doc.SaveHTML("out.html", pdf.HTMLSaveOptions{Mode: pdf.HTMLModeText})
	if err != nil {
		panic(err)
	}
	fmt.Println("HTML export complete")
}

Támogatott formátumok

FormátumKiterjesztésOlvasásÍrás
PDFpdfIgen-
HTMLhtml-Igen
JSONjson-Igen

Nyílt forráskód és licencelés

Aspose.PDF FOSS a Go-hoz MIT licenc alatt kerül kiadásra: nincs felhasználási korlátozás, nincs futtatási díj, és nincs regisztrációs követelmény kereskedelmi vagy személyes használathoz. A forráskód a github.com/aspose-pdf-foss/aspose-pdf-foss-for-go címen érhető el.


Első lépések

Kapcsolódó erőforrások