1. Produkti
  2.   Tekstapstrāde
  3.   GO
  4.   unioffice
 
  

Atveriet bibliotēku, lai ģenerētu un rediģētu MS Word dokumentus

Atvērtā pirmkoda Go bibliotēka, lai pārvaldītu un automatizētu tādus izplatītus tekstapstrādes uzdevumus kā galvenes un kājenes, tabulu un attēlu ievietošana Word DOCX failos un citi.

unioffice ir jaudīga atvērtā pirmkoda tīrā Go bibliotēka, kas ļauj programmatūras izstrādātājiem pārvaldīt Word dokumentus un viegli automatizēt parastos tekstapstrādes uzdevumus savās lietojumprogrammās, neizmantojot Microsoft Word. Bibliotēka ir diezgan labi optimizēta un ļauj viegli rediģēt kodu, lai tas atbilstu jūsu prasībām.

Unioffice bibliotēka ir spēcīga uz Go balstīta bibliotēka, ko var izmantot Office Open XML dokumentu ģenerēšanai, rediģēšanai, formatēšanai un apstrādei. Bibliotēka atbalsta vairākas svarīgas tekstapstrādes funkcijas, piemēram, Word dokumentu lasīšanu, rakstīšanu un modificēšanu, teksta formatēšanas atbalstu, automātiski ģenerētu satura rādītāju, ievietošanu dokumenta lapā, galvenes un kājenes ievietošanu, tabulu pievienošanu, dokumenta atvēršanu kā veidni. , veidlapu lauku atbalsts un daudz kas cits.

Previous Next

Darba sākšana ar unioffice

Ieteicamais veids, kā projektā instalēt unioffice, ir izmantot GitHub. Lūdzu, izmantojiet šo komandu vienmērīgai instalēšanai.

Instalējiet unioffice, izmantojot GitHub

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

Izveidojiet Word DOCX dokumentu, izmantojot Go API

Atvērtā koda bibliotēku unioffice ir nodrošinājusi iespēju viegli izveidot jaunu Word DOCX dokumentu. Varat arī viegli atvērt un modificēt esošu Microsoft Word dokumentu savās lietojumprogrammās. Bibliotēkā bija arī līdzekļi jaunu teksta rindkopu pievienošanai, attēlu ievietošanai lapā, teksta līdzināšanai, galvenes un kājenes pievienošanai, tabulu pievienošanai un daudz ko citu.

Piekļūstiet Word dokumenta rekvizītiem, izmantojot 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")
}
  

 Ievietojiet attēlus Word DOCX failos

Atvērtā pirmkoda bibliotēkas unioffice nodrošina programmatūras izstrādātājiem iespēju izmantot attēlus Microsoft Word dokumentos. Tā atbalsta tādas funkcijas kā attēlu ievietošana jūsu izvēlētajā vietā, esoša attēla modificēšana, teksta aptīšana ap attēlu, attēla dzēšana un daudzas citas. Lai pievienotu attēlu, ir jānorāda attēla nosaukums un atrašanās vieta.

Pārvaldiet attēlus Word dokumentos, izmantojot 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")
}
  

Pievienojiet Word dokumentam galveni un kājeni

Galvenes un kājenes var izmantot, lai iekļautu informāciju, ko lietotāji vēlas parādīt katrā dokumenta lapā, piemēram, autora vārdu, dokumenta nosaukumu vai lappušu numurus. Unioffice bibliotēka ļauj programmatūras izstrādātājiem viegli pievienot galvenes un kājenes Word dokumentiem. Tas arī ļauj izmantot dažādas galvenes un kājenes atkarībā no dokumenta sadaļas. Tas ietvēra arī pāra, nepāra un pirmās funkcijas atbalstu.

Pievienojiet Word dokumentam galveni un kājeni, izmantojot 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")
}
  

Darbs ar tabulām programmā Word DOCX

Atvērtā pirmkoda bibliotēkas unioffice ļauj datorprogrammētājiem pievienot un modificēt tabulas Word dokumentos. Tabulas ir ļoti noderīgas, un tās var izmantot, lai labāk sakārtotu un parādītu datus. Tas atbalsta galda pievienošanu ar un bez apmalēm, kā arī ļauj viegli izveidot galda stilu. Jūs varat ērti ievietot saturu tabulā un pielāgot izmēru atbilstoši savām vajadzībām.

 Latviski