מבוא

Aspose.PDF FOSS עבור 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 עבור שכבה טקסט ניתנת לצפייה ובחירה על רקע רסטר ללא גליפים; HTMLModeNative עבור שכבת וקטור inline-SVG; HTMLModeFlow עבור HTML מתחלף). שדות אינטראקטיביים AcroForm ניתן להמיר לבקרי טופס HTML אמיתיים עם 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})

שכבות תוכן אופציונליות

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

פורמטים נתמכים

פורמטהרחבהקריאהכתיבה
PDFpdfכן-
HTMLhtml-כן
JSONjson-כן

קוד פתוח ורישוי

Aspose.PDF FOSS for Go משוחרר תחת רישיון MIT: אין הגבלות שימוש, אין דמי זמן ריצה, ואין דרישות רישום לשימוש מסחרי או אישי. הקוד המקור מאוחסן ב-github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.


התחלה

משאבים קשורים