Nyissa meg a Könyvtárat az MS Word-dokumentumok generálásához és szerkesztéséhez

Nyílt forráskódú Go Library a gyakori szövegfeldolgozási feladatok kezeléséhez és automatizálásához, például fejléc és lábléc, táblázatok és képek beszúrása Word DOCX-fájlokba stb.

Az unioffice egy nagy teljesítményű, nyílt forráskódú, tiszta Go könyvtár, amely lehetővé teszi a szoftverfejlesztők számára, hogy a Word dokumentumokat kezeljék és a gyakori szövegszerkesztési feladatokat saját alkalmazásaikon belül, Microsoft Word használata nélkül, könnyedén kezeljék. A könyvtár meglehetősen jól optimalizált, és lehetővé teszi a kód egyszerű szerkesztését az igényeinek megfelelően.

Az unioffice könyvtár egy erős Go-alapú könyvtár, amely Office Open XML dokumentumok generálására, szerkesztésére, formázására és feldolgozására használható. A könyvtár számos fontos szövegszerkesztő funkciót támogat, mint például Word dokumentumok olvasása, írása és módosítása, Szövegformázás támogatása, Automatikusan generált tartalomjegyzék, Elhelyezés a dokumentum oldalára, fejlécek és láblécek beszúrása, táblázatok hozzáadása, Dokumentum megnyitása sablonként , űrlapmezők támogatása és még sok más.

Previous Next

Az unioffice első lépései

Az unioffice projektbe való telepítésének javasolt módja a GitHub használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.

Telepítse az unioffice-t a GitHubon keresztül

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

Hozzon létre Word DOCX-dokumentumot a Go API-n keresztül

A nyílt forráskódú könyvtári unioffice lehetőséget biztosított egy új Word DOCX dokumentum egyszerű létrehozására. Könnyedén megnyithat és módosíthat egy meglévő Microsoft Word-dokumentumot saját alkalmazásaiban. A könyvtár új szövegbekezdések hozzáadására, képek oldalra történő beillesztésére, szövegigazításra, fejlécek és láblécek hozzáadására, táblázatok hozzáadására és még sok más funkciót is tartalmazott.

Hozzáférés Word Document Properties keresztül 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")
}
  

 Képek beszúrása a Word DOCX fájljaiba

A nyílt forráskódú unioffice könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy képeket használjanak a Microsoft Word dokumentumokon belül. Támogatja az olyan funkciókat, mint a képek beszúrása a választott helyre, egy meglévő kép módosítása, a kép körüli szöveg körbefűzése, a kép törlése és még sok más. Kép hozzáadásához meg kell adni a kép nevét és helyét.

Képek kezelése a Word Documentsen keresztül 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")
}
  

Adjon hozzá fejlécet és láblécet a Word dokumentumhoz

A fejlécek és láblécek felhasználhatók azon információk feltüntetésére, amelyeket a felhasználók a dokumentum minden oldalán meg szeretnének jeleníteni, például a szerző nevét, a dokumentum címét vagy az oldalszámokat. Az unioffice könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy könnyedén fejlécet és láblécet adjanak a Word dokumentumokhoz. Azt is lehetővé teszi, hogy a dokumentumrésztől függően különböző fejlécek és láblécek legyenek. Támogatta a páros, páratlan és első funkciókat is.

Header & Footer for Word Document keresztül 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")
}
  

Táblázatok használata a Word DOCX-ben

A nyílt forráskódú unioffice könyvtár lehetővé teszi a számítógépes programozók számára, hogy táblázatokat adjanak hozzá és módosítsanak a Word dokumentumokon belül. A táblázatok nagyon hasznosak, és felhasználhatók az adatok jobb rendezésére és megjelenítésére. Támogatja a táblázat hozzáadását szegéllyel és anélkül, valamint lehetővé teszi az asztalstílus egyszerű felépítését. Könnyedén elhelyezheti a tartalmat egy táblázatban, és igényei szerint állíthatja be a méretet.

 Magyar