Отидете на LIbrary, за да генерирате и редактирате документи на MS Word

Библиотека Go с отворен код за управление и автоматизиране на обичайни задачи за текстообработка като вмъкване на горен и долен колонтитул, таблици и изображения към DOCX файлове на Word и др.

unioffice е мощна чиста Go библиотека с отворен код, която позволява на разработчиците на софтуер да управляват текстови документи и да автоматизират често срещани задачи за текстообработка с лекота в собствените си приложения, без да изискват Microsoft Word. Библиотеката е доста добре оптимизирана и ви позволява лесно да редактирате кода, за да отговаря на вашите изисквания.

Библиотеката unioffice е силна базирана на Go библиотека, която може да се използва за генериране, редактиране, форматиране и обработка на Office Open XML документи. Библиотеката поддържа няколко важни функции за текстообработка, като четене, писане и модифициране на документи на Word, поддръжка за форматиране на текст, автоматично генерирано съдържание, поставяне на страница на документ, вмъкване на горни и долни колонтитули, добавяне на таблици, отваряне на документ като шаблон , поддръжка на полета на формуляри и много повече.

Previous Next

Първи стъпки с unioffice

Препоръчителният начин за инсталиране на unioffice във вашия проект е чрез GitHub. Моля, използвайте следната команда за гладка инсталация.

Инсталирайте unioffice чрез GitHub

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

Създайте Word DOCX документ чрез Go API

Библиотеката с отворен код unioffice предостави възможността за лесно създаване на нов Word DOCX документ. Можете също така лесно да отваряте и модифицирате съществуващ документ на Microsoft Word във вашите собствени приложения. Библиотеката също включва функции за добавяне на нови текстови абзаци, вмъкване на изображения в страница, подравняване на текст, добавяне на горни и долни колонтитули, добавяне на таблици и много други.

Свойства на документи на Word чрез 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")
}
  

 Вмъкване на изображения в Word DOCX файлове

Библиотеката с отворен код unioffice предоставя на разработчиците на софтуер възможността да използват изображения в документи на Microsoft Word. Той поддържа функции като вмъкване на изображения на избраното от вас място, модифициране на съществуващо изображение, обвиване на текст около изображението, изтриване на изображението и много други. За добавяне на изображение е необходимо да посочите името и местоположението на изображението.

Управление на изображения в Word документи чрез 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")
}
  

Добавете горен и долен колонтитул към Word документ

Горните и долните колонтитули могат да се използват за включване на информацията, която потребителите искат да се показва на всяка страница от документ, като име на автор, заглавие на документ или номера на страници. Библиотеката unioffice позволява на разработчиците на софтуер лесно да добавят горни и долни колонтитули към Word документи. Освен това позволява да имате различни горни и долни колонтитули в зависимост от раздела на документа. Той също така включва поддръжка за четни, нечетни и първи функции.

Добавяне на Header Footer към Word документ чрез 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")
}
  

Работа с таблици в Word DOCX

Библиотеката с отворен код unioffice позволява на компютърните програмисти да добавят и променят таблици в Word документи. Таблиците са много полезни и могат да се използват за организиране и представяне на данни по по-добър начин. Той поддържа добавяне на таблица с и без граници, както и позволява лесно конструиране на стил на таблица. Можете лесно да поставите съдържание в таблица и да регулирате размера според вашите нужди.

 Български