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.
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.