1. Producten
  2.   Tekstverwerking
  3.   GO
  4.   unioffice
 
  

Ga naar bibliotheek om MS Word-documenten te genereren en te bewerken

Open Source Go-bibliotheek voor het beheren en automatiseren van algemene Word-verwerkingstaken zoals het invoegen van koptekst en voettekst, tabellen en afbeeldingen in Word DOCX-bestanden en meer.

unioffice is een krachtige open source pure Go-bibliotheek waarmee softwareontwikkelaars Word-documenten kunnen beheren en veelvoorkomende tekstverwerkingstaken gemakkelijk kunnen automatiseren in hun eigen applicaties zonder dat Microsoft Word nodig is. De bibliotheek is vrij goed geoptimaliseerd en stelt u in staat om de code eenvoudig aan uw vereisten aan te passen.

De unioffice-bibliotheek is een sterke op Go gebaseerde bibliotheek die kan worden gebruikt voor het genereren, bewerken, opmaken en verwerken van Office Open XML-documenten. De bibliotheek ondersteunt verschillende belangrijke tekstverwerkingsfuncties, zoals het lezen, schrijven en wijzigen van Word-documenten, ondersteuning voor tekstopmaak, automatisch gegenereerde inhoudsopgave, plaatsen op een documentpagina, invoegen van kop- en voetteksten, tabellen toevoegen, een document openen als sjabloon , ondersteuning voor formuliervelden en nog veel meer.

Previous Next

Aan de slag met unioffice

De aanbevolen manier om unioffice in uw project te installeren, is door GitHub te gebruiken. Gebruik de volgende opdracht voor een vlotte installatie.

Unioffice installeren via GitHub

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

Word DOCX-document maken via Go API

De open source-bibliotheek unioffice heeft de mogelijkheid geboden om met gemak een nieuw Word DOCX-document te maken. U kunt ook eenvoudig een bestaand Microsoft Word-document openen en wijzigen in uw eigen toepassingen. De bibliotheek bevatte ook functies voor het toevoegen van nieuwe tekstparagrafen, het invoegen van afbeeldingen op een pagina, het uitlijnen van tekst, het toevoegen van kop- en voetteksten, het toevoegen van tabellen en nog veel meer.

Vertaling:

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

 Afbeeldingen invoegen in Word DOCX-bestanden

De open source bibliotheek unioffice biedt softwareontwikkelaars de mogelijkheid om afbeeldingen in Microsoft Word-documenten te gebruiken. Het ondersteunt functies zoals het invoegen van afbeeldingen op de plaats van uw keuze, het wijzigen van een bestaande afbeelding, tekstomloop rond de afbeelding, het verwijderen van de afbeelding en nog veel meer. Voor het toevoegen van een afbeelding is het noodzakelijk om de naam en locatie van de afbeelding op te geven.

Manage Images in Woord Documenten via Go

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

Kop- en voettekst toevoegen aan Word-document

Kop- en voetteksten kunnen worden gebruikt om de informatie op te nemen die gebruikers op elke pagina van een document willen weergeven, zoals een auteursnaam, documenttitel of paginanummers. Met de unioffice-bibliotheek kunnen softwareontwikkelaars gemakkelijk kop- en voetteksten toevoegen aan Word-documenten. Het maakt het ook mogelijk om verschillende kop- en voetteksten te hebben, afhankelijk van de documentsectie. Het omvatte ook ondersteuning voor even, oneven en eerste functionaliteiten.

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

Werken met tabellen in Word DOCX

Met de open source-bibliotheek unioffice kunnen computerprogrammeurs tabellen toevoegen en wijzigen in Word-documenten. Tabellen zijn erg handig en kunnen worden gebruikt om gegevens op een betere manier te ordenen en te presenteren. Het ondersteunt het toevoegen van een tabel met en zonder randen en maakt het ook mogelijk om gemakkelijk een tabelstijl te construeren. U kunt eenvoudig inhoud in een tabel plaatsen en de grootte aanpassen aan uw behoeften.

 Dutch