Μεταβείτε στη Βιβλιοθήκη για να δημιουργήσετε και να επεξεργαστείτε έγγραφα MS Word

Open Source Go Library για διαχείριση και αυτοματοποίηση κοινών εργασιών επεξεργασίας κειμένου, όπως η εισαγωγή κεφαλίδας και υποσέλιδου, πίνακες και εικόνες σε αρχεία Word DOCX και άλλα.

Το unioffice είναι μια πανίσχυρη ανοιχτού κώδικα βιβλιοθήκη καθαρού Go που επιτρέπει στους προγραμματιστές λογισμικού να διαχειρίζονται έγγραφα word και να αυτοματοποιούν κοινές εργασίες επεξεργασίας κειμένου με ευκολία μέσα στις δικές τους εφαρμογές χωρίς να απαιτείται Microsoft Word. Η βιβλιοθήκη είναι αρκετά καλά βελτιστοποιημένη και σας επιτρέπει να επεξεργαστείτε εύκολα τον κώδικα για να καλύψετε τις απαιτήσεις σας.

Η βιβλιοθήκη unioffice είναι μια ισχυρή βιβλιοθήκη που βασίζεται στο Go και μπορεί να χρησιμοποιηθεί για τη δημιουργία, την επεξεργασία, τη μορφοποίηση και την επεξεργασία εγγράφων Office Open XML. Η βιβλιοθήκη υποστηρίζει πολλές σημαντικές λειτουργίες επεξεργασίας κειμένου, όπως ανάγνωση, γραφή και τροποποίηση εγγράφων του Word, υποστήριξη μορφοποίησης κειμένου, πίνακας περιεχομένων που δημιουργείται αυτόματα, τοποθέτηση σε σελίδα εγγράφου, εισαγωγή κεφαλίδων και υποσέλιδων, προσθήκη πινάκων, άνοιγμα εγγράφου ως πρότυπο , υποστήριξη πεδίων φόρμας και πολλά άλλα.

Previous Next

Ξεκινώντας με το unioffice

Ο προτεινόμενος τρόπος για να εγκαταστήσετε το unioffice στο έργο σας είναι χρησιμοποιώντας το GitHub. Χρησιμοποιήστε την ακόλουθη εντολή για ομαλή εγκατάσταση.

Εγκαταστήστε το unioffice μέσω GitHub

go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...   

Δημιουργήστε έγγραφο Word DOCX μέσω Go API

Το unioffice βιβλιοθήκης ανοιχτού κώδικα παρείχε τη δυνατότητα για τη δημιουργία ενός νέου εγγράφου Word DOCX με ευκολία. Μπορείτε επίσης να ανοίξετε και να τροποποιήσετε εύκολα ένα υπάρχον Έγγραφο του Microsoft Word μέσα στις δικές σας εφαρμογές. Η βιβλιοθήκη περιλάμβανε επίσης δυνατότητες για την προσθήκη νέων παραγράφων κειμένου, την εισαγωγή εικόνων σε μια σελίδα, τη στοίχιση κειμένου, την προσθήκη κεφαλίδων και υποσέλιδων, την προσθήκη πινάκων και πολλά άλλα.

Πρόσβαση σε Ιδιότητες εγγράφου μέσω του Go API

func main() {
	doc, err := document.Open("document.docx")
	if err != nil {
		log.Fatalf("error opening document: %s", err)
	}
	defer doc.Close()
	cp := doc.GetOrCreateCustomProperties()
	// You can read properties from the document
	fmt.Println("AppVersion", *cp.GetPropertyByName("AppVersion").X().Lpwstr)
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	fmt.Println("DocSecurity", *cp.GetPropertyByName("DocSecurity").X().I4)
	fmt.Println("LinksUpToDate", *cp.GetPropertyByName("LinksUpToDate").X().Bool)
	fmt.Println("Non-existent", cp.GetPropertyByName("nonexistentproperty"))
	// And change them as well
	cp.SetPropertyAsLpwstr("Company", "Another company") // text, existing property
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	// Adding new properties
	cp.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cp.SetPropertyAsI4("Another integer number property", 42)        // int32
	cp.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cp.SetPropertyAsDate("Another date property", time.Now())        // date
	doc.SaveToFile("document_customized.docx")
	// For new documents all is the same
	docNew := document.New()
	defer docNew.Close()
	cpNew := docNew.GetOrCreateCustomProperties()
	cpNew.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cpNew.SetPropertyAsI4("Another integer number property", 42)        // int23
	cpNew.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cpNew.SetPropertyAsDate("Another date property", time.Now())        // date
	docNew.SaveToFile("document_new.docx")
}
  

 Εισαγωγή εικόνων σε αρχεία Word DOCX

Η βιβλιοθήκη ανοιχτού κώδικα unioffice παρέχει στους προγραμματιστές λογισμικού τη δυνατότητα να χρησιμοποιούν εικόνες μέσα σε έγγραφα του Microsoft Word. Υποστηρίζει λειτουργίες όπως η εισαγωγή εικόνων στο μέρος της επιλογής σας, η τροποποίηση μιας υπάρχουσας εικόνας, η αναδίπλωση κειμένου γύρω από την εικόνα, η διαγραφή της εικόνας και πολλά άλλα. Για την προσθήκη μιας εικόνας είναι απαραίτητο να δώσετε το όνομα και τη θέση της εικόνας.

Διαχείριση εικόνων σε έγγραφα κειμένου μέσω Go API

func main() {
	doc := document.New()
	defer doc.Close()
	img1, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img2data, err := ioutil.ReadFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to read file: %s", err)
	}
	img2, err := common.ImageFromBytes(img2data)
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img1ref, err := doc.AddImage(img1)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	img2ref, err := doc.AddImage(img2)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	para := doc.AddParagraph()
	anchored, err := para.AddRun().AddDrawingAnchored(img1ref)
	if err != nil {
		log.Fatalf("unable to add anchored image: %s", err)
	}
	anchored.SetName("Gopher")
	anchored.SetSize(2*measurement.Inch, 2*measurement.Inch)
	anchored.SetOrigin(wml.WdST_RelFromHPage, wml.WdST_RelFromVTopMargin)
	anchored.SetHAlignment(wml.WdST_AlignHCenter)
	anchored.SetYOffset(3 * measurement.Inch)
	anchored.SetTextWrapSquare(wml.WdST_WrapTextBothSides)
	run := para.AddRun()
	for i := 0; i < 16; i++ {
		run.AddText(lorem)
		// drop an inline image in
		if i == 13 {
			inl, err := run.AddDrawingInline(img1ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
		if i == 15 {
			inl, err := run.AddDrawingInline(img2ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
	}
	doc.SaveToFile("image.docx")
}
  

Προσθήκη κεφαλίδας και υποσέλιδου στο έγγραφο του Word

Οι κεφαλίδες και τα υποσέλιδα μπορούν να χρησιμοποιηθούν για να συμπεριλάβουν τις πληροφορίες που θέλουν να εμφανίζονται οι χρήστες σε κάθε σελίδα ενός εγγράφου, όπως όνομα συντάκτη, τίτλος εγγράφου ή αριθμούς σελίδων. Η βιβλιοθήκη unioffice επιτρέπει στους προγραμματιστές λογισμικού να προσθέτουν κεφαλίδες και υποσέλιδα σε έγγραφα word με ευκολία. Επιτρέπει επίσης να έχετε διαφορετικές κεφαλίδες και υποσέλιδα ανάλογα με την ενότητα του εγγράφου. Περιλάμβανε επίσης υποστήριξη για ζυγές, μονές και πρώτες λειτουργίες.

Προσθέστε Header & Footer σε Έγγραφο Word μέσω Go API

func main() {
	doc := document.New()
	defer doc.Close()
	img, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	hdr := doc.AddHeader()
	// We need to add a reference of the image to the header instead of to the
	// document
	iref, err := hdr.AddImage(img)
	if err != nil {
		log.Fatalf("unable to to add image to document: %s", err)
	}
	para := hdr.AddParagraph()
	para.Properties().AddTabStop(2.5*measurement.Inch, wml.ST_TabJcCenter, wml.ST_TabTlcNone)
	run := para.AddRun()
	run.AddTab()
	run.AddText("My Document Title")
	imgInl, _ := para.AddRun().AddDrawingInline(iref)
	imgInl.SetSize(1*measurement.Inch, 1*measurement.Inch)
	// Headers and footers are not immediately associated with a document as a
	// document can have multiple headers and footers for different sections.
	doc.BodySection().SetHeader(hdr, wml.ST_HdrFtrDefault)
	ftr := doc.AddFooter()
	para = ftr.AddParagraph()
	para.Properties().AddTabStop(6*measurement.Inch, wml.ST_TabJcRight, wml.ST_TabTlcNone)
	run = para.AddRun()
	run.AddText("Some subtitle goes here")
	run.AddTab()
	run.AddText("Pg ")
	run.AddField(document.FieldCurrentPage)
	run.AddText(" of ")
	run.AddField(document.FieldNumberOfPages)
	doc.BodySection().SetFooter(ftr, wml.ST_HdrFtrDefault)
	lorem := `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lobortis, lectus dictum feugiat tempus, sem neque finibus enim, sed eleifend sem nunc ac diam. Vestibulum tempus sagittis elementum`
	for i := 0; i < 5; i++ {
		para = doc.AddParagraph()
		run = para.AddRun()
		run.AddText(lorem)
	}
	doc.SaveToFile("header-footer.docx")
}
  

Εργασία με πίνακες στο Word DOCX

Το unioffice της βιβλιοθήκης ανοιχτού κώδικα επιτρέπει στους προγραμματιστές υπολογιστών να προσθέτουν και να τροποποιούν πίνακες μέσα στα έγγραφα του Word. Οι πίνακες είναι πολύ χρήσιμοι και μπορούν να χρησιμοποιηθούν για την καλύτερη οργάνωση και παρουσίαση δεδομένων. Υποστηρίζει την προσθήκη πίνακα με και χωρίς περιγράμματα, καθώς και επιτρέπει την εύκολη κατασκευή ενός στυλ πίνακα. Μπορείτε εύκολα να τοποθετήσετε περιεχόμενο σε έναν πίνακα και να προσαρμόσετε το μέγεθος ανάλογα με τις ανάγκες σας.

 Ελληνικά