עבור לספרייה כדי ליצור ו לערוך מסמכי MS Word

ספריית קוד פתוחה Go לניהול ואוטומציה של משימות עיבוד תמלילים נפוצות כמו הוספת כותרת עליונה ותחתונה, טבלאות ותמונות לקובצי Word DOCX ועוד.

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 קיים בתוך היישומים שלך. הספרייה כללה גם תכונות להוספת פסקאות טקסט חדשות, הוספת תמונות לעמוד, יישור טקסט, הוספת כותרות עליונות ותחתונות, הוספת טבלאות ועוד רבים.

גישה לנכסים באמצעות 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 בקלות. זה גם מאפשר להחזיק כותרות עליונות ותחתונות שונות בהתאם לקטע המסמך. זה כלל גם תמיכה בפונקציות זוגיות, אי זוגיות וראשונות.

הוספת כותרת 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. טבלאות שימושיות מאוד וניתן להשתמש בהן כדי לארגן ולהציג נתונים בצורה טובה יותר. הוא תומך בהוספת שולחן עם ובלי גבולות וכן מאפשר בניית סגנון שולחן בקלות. אתה יכול בקלות למקם תוכן בטבלה ולהתאים את הגודל לפי הצרכים שלך.

 עִברִית