MS Word Belgelerini Oluşturmak ve Düzenlemek için Kitaplık'a gidin
Üstbilgi ve Altbilgi, Tablolar ve Resimlerin Word DOCX dosyalarına ve daha fazlasına eklenmesi gibi yaygın Kelime İşleme görevlerini Yönetmek ve Otomatikleştirmek için Açık Kaynak Go Kitaplığı.
unioffice, yazılım geliştiricilerin Microsoft Word gerektirmeden sözcük belgelerini yönetmelerine ve ortak sözcük işleme görevlerini kendi uygulamaları içinde kolaylıkla otomatikleştirmelerine olanak tanıyan güçlü bir açık kaynak kodlu Go kitaplığıdır. Kitaplık oldukça iyi optimize edilmiştir ve gereksinimlerinizi karşılamak için kodu kolayca düzenlemenize olanak tanır.
Unioffice kitaplığı, Office Open XML belgelerinin oluşturulması, düzenlenmesi, biçimlendirilmesi ve işlenmesi için kullanılabilecek güçlü bir Go tabanlı kitaplıktır. Kitaplık, Word belgelerini okuma, yazma ve değiştirme, Metin Biçimlendirme desteği, Otomatik oluşturulan içindekiler tablosu, Belge sayfasına yerleştirme, üstbilgi ve altbilgi ekleme, tablo ekleme, Bir belgeyi şablon olarak açma gibi birçok önemli kelime işlem özelliğini destekler. , form alanları desteği ve çok daha fazlası.
unioffice'e Başlarken
Unioffice'i projenize yüklemenin önerilen yolu GitHub'ı kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
Unioffice'i GitHub aracılığıyla kurun
go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...
Go API ile Word DOCX Belgesi Oluşturun
Açık kaynak kitaplığı unioffice, kolaylıkla yeni bir Word DOCX Belgesi oluşturma olanağı sağlamıştır. Ayrıca mevcut bir Microsoft Word Belgesini kendi uygulamalarınızın içinde kolayca açıp değiştirebilirsiniz. Kitaplık ayrıca yeni metin paragrafları ekleme, bir sayfaya resim ekleme, metin hizalama, üstbilgi ve altbilgi ekleme, tablo ekleme ve daha pek çok özellik içeriyordu.
Access Word Document Properties via 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 Dosyalarına Resim Ekleme
Açık kaynak kitaplığı unioffice, yazılım geliştiricilere Microsoft Word belgelerindeki görüntüleri kullanma yeteneği sağlar. Seçtiğiniz yere resim ekleme, mevcut bir resmi değiştirme, resmin etrafına metin sarma, resmi silme ve daha pek çok işlevi destekler. Bir resim eklemek için resmin adını ve yerini belirtmek gerekir.
Go API aracılığıyla Word Belgelerini Yönetin
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 Belgesine Üstbilgi ve Altbilgi Ekleme
Üstbilgiler ve altbilgiler, yazar adı, belge başlığı veya sayfa numaraları gibi kullanıcıların bir belgenin her sayfasında görünmesini istedikleri bilgileri eklemek için kullanılabilir. Unioffice kitaplığı, yazılım geliştiricilerin sözcük belgelerine kolaylıkla üstbilgi ve altbilgi eklemesine olanak tanır. Ayrıca, belge bölümüne bağlı olarak farklı üstbilgi ve altbilgilere sahip olmanızı sağlar. Ayrıca çift, tek ve ilk işlevler için destek içeriyordu.
Add Header & Footer to Word Document via 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'te Tablolarla Çalışmak
Açık kaynak kitaplık unioffice, bilgisayar programcılarının kelime belgelerine tablolar eklemesine ve değiştirmesine olanak tanır. Tablolar çok kullanışlıdır ve verileri daha iyi bir şekilde düzenlemek ve sunmak için kullanılabilir. Kenarlıklı ve kenarlıksız tablo eklemeyi destekler ve kolaylıkla bir tablo stili oluşturmaya izin verir. İçeriği kolayca bir tabloya yerleştirebilir ve boyutunu ihtiyaçlarınıza göre ayarlayabilirsiniz.