1. Tuotteet
  2.   Tekstinkäsittely
  3.   GO
  4.   unioffice
 
  

Siirry kirjastoon luodaksesi ja muokataksesi MS Word -asiakirjoja

Avoimen lähdekoodin Go Library yleisten tekstinkäsittelytehtävien hallintaan ja automatisointiin, kuten ylä- ja alatunnisteen, taulukoiden ja kuvien lisääminen Wordin DOCX-tiedostoihin ja paljon muuta.

unioffice on tehokas avoimen lähdekoodin puhdas Go-kirjasto, jonka avulla ohjelmistokehittäjät voivat hallita Word-asiakirjoja ja automatisoida yleisiä tekstinkäsittelytehtäviä helposti omissa sovelluksissaan ilman Microsoft Wordia. Kirjasto on melko hyvin optimoitu ja sen avulla voit helposti muokata koodia tarpeidesi mukaan.

Unioffice-kirjasto on vahva Go-pohjainen kirjasto, jota voidaan käyttää Office Open XML -dokumenttien luomiseen, muokkaamiseen, muotoiluun ja käsittelyyn. Kirjasto tukee useita tärkeitä tekstinkäsittelyominaisuuksia, kuten Word-dokumenttien lukemista, kirjoittamista ja muokkaamista, tekstin muotoilun tuki, automaattisesti luotu sisällysluettelo, sijoittaminen asiakirjan sivulle, ylä- ja alatunnisteiden lisäys, taulukoiden lisääminen, asiakirjan avaaminen mallina , lomakekenttien tuki ja paljon muuta.

Previous Next

Unioffcen käytön aloittaminen

Suositeltu tapa asentaa unioffice projektiisi on käyttää GitHubia. Käytä seuraavaa komentoa sujuvaan asennukseen.

Asenna unioffice GitHubin kautta

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

Luo Word DOCX -asiakirja Go API:n kautta

Avoimen lähdekoodin kirjaston unioffice on tarjonnut mahdollisuuden luoda uusi Word DOCX -asiakirja helposti. Voit myös helposti avata ja muokata olemassa olevaa Microsoft Word -asiakirjaa omissa sovelluksissasi. Kirjastossa oli myös ominaisuuksia uusien tekstikappaleiden lisäämiseen, kuvien lisäämiseen sivulle, tekstin tasaamiseen, ylä- ja alatunnisteiden lisäämiseen, taulukoiden lisäämiseen ja paljon muuta.

Käytä Word-asiakirjan ominaisuuksia Go API:n kautta

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

 Lisää kuvia Wordin DOCX-tiedostoihin

Avoimen lähdekoodin kirjasto unioffice tarjoaa ohjelmistokehittäjille mahdollisuuden käyttää kuvia Microsoft Word -asiakirjoissa. Se tukee toimintoja, kuten kuvien lisäämistä haluamaasi paikkaan, olemassa olevan kuvan muokkaamista, tekstin kiertämistä kuvan ympärille, kuvan poistamista ja monia muita. Kuvan lisäämistä varten on annettava kuvan nimi ja sijainti.

Hallitse kuvia Word-asiakirjoissa Go API:n kautta

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

Lisää ylä- ja alatunniste Word-asiakirjaan

Ylä- ja alatunnisteisiin voidaan sisällyttää tiedot, jotka käyttäjät haluavat näkyvän asiakirjan jokaisella sivulla, kuten tekijän nimi, asiakirjan otsikko tai sivunumerot. Unioffice-kirjaston avulla ohjelmistokehittäjät voivat lisätä ylä- ja alatunnisteita Word-asiakirjoihin helposti. Se mahdollistaa myös erilaisten ylä- ja alatunnisteiden käyttämisen asiakirjan osasta riippuen. Se sisälsi myös tuen parillisille, parittomille ja ensimmäisille toiminnoille.

Lisää ylä- ja alatunniste Word-asiakirjaan Go API:n kautta

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

Työskentely taulukoiden kanssa Word DOCX:ssä

Avoimen lähdekoodin kirjasto unioffice mahdollistaa ohjelmoijat voivat lisätä ja muokata taulukoita Word-asiakirjojen sisällä. Taulukot ovat erittäin hyödyllisiä, ja niitä voidaan käyttää tietojen järjestämiseen ja esittämiseen paremmin. Se tukee taulukon lisäämistä reunoilla ja ilman sekä mahdollistaa pöytätyylin rakentamisen helposti. Voit helposti sijoittaa sisältöä taulukkoon ja säätää kokoa tarpeidesi mukaan.

 Suomen