askfind / odf

Open Document Format (ODF) generator library for Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ODF

Open Document Format (ODF) producer library for Go (golang).

Build Status

Описание

Формирование документа в формате Open Document (ODF) для языка Go (golang).

Формирование документа заключается в последовательном вызове инструкций Форматтера, который выполняет модификацию одной или нескольких частей модели документа. Затем вызывается процедура генерации файла-архива .odf

Клиентский код изолируется от особенностей структуры документа ODF.

Необходимость форматтера обсуловлена тем, что стандарт ODF предполагает изменение видимого содержимого документа посредством изменений в нескольких местах модели документа (стили, встроенные файлы, и т.д.)

Пример

go get github.com/kpmy/odf

В пакете demo есть пример использования ODF для формирования отчета.

Description

This library is for generation of ODF document with Go.

You can produce a document with content by calling the Formatter methods. Then you can save this document to zip-file .odf

No need for your code to handle with ODF XML content. More examples in demo/report.go

Example

package main

import (
	"odf/generators"
	"odf/mappers"
	"odf/model"
	_ "odf/model/stub" //don't forget pimpl
	"odf/xmlns"
	"os"
)

func main() {
	if output, err := os.Create("demo2.odf"); err == nil {
		//we need an empty model
		m := model.ModelFactory()
		//standard formatter
		fm := &mappers.Formatter{}
		//couple them
		fm.ConnectTo(m)
		//we want text
		fm.MimeType = xmlns.MimeText
		//yes we can
		fm.Init()
		//pretty simple
		fm.WriteString("Hello, World!")
		//store file
		generators.GeneratePackage(m, nil, output, fm.MimeType)
		//cleanup
		defer output.Close()
	}
}

Moar

It works in browser now. Got Demo3, GopherJS + Dart.

http://kpmy.github.io/odf/

About

Open Document Format (ODF) generator library for Go.

License:Do What The F*ck You Want To Public License


Languages

Language:Go 87.9%Language:JavaScript 8.5%Language:Dart 1.7%Language:HTML 1.5%Language:CSS 0.3%Language:Batchfile 0.2%