Git Product home page Git Product logo

dox2go's Introduction

dox2go

Dox2Go is a Go library for generating documents in a variety of formats.

Currently PDF is the only supported output format.

Some Features

Path Drawing

  • Lines
  • Bezier Curves
  • Rectangles
  • Arcs
  • Different line styles, joins and caps.

Transformations

  • Rotation
  • Skew
  • Translate
  • Scale

Image drawing, including transparency.

Example

package main

import (
	"bytes"
	"dox2go"
	"dox2go/pdf"
	"fmt"
	"os"
)

func main() {

	// Write the document to this buffer.
	var b bytes.Buffer

	// Create a Pdf Document instance.
	doc := pdf.NewPdfDoc(&b)

	// Add a page
	pWidth, pHeight := dox2go.StandardSize(dox2go.PS_A4, dox2go.U_MM) // A4 Page
	page := doc.CreatePage(dox2go.U_MM, // Work in millimeters
	pWidth, pHeight,
	dox2go.PO_Portrait)                             // Portrait orientation

	// Get the drawing surface of the page.
	s := page.Surface()

	// The document object manages font instances.
	font := doc.CreateFont(pdf.FONT_Helvetica, dox2go.FS_Bold, 20)
	s.Bg(dox2go.RGB(0, 0, 0)) // Text is drawn using the background colour.
	s.Text(font, 50, 100, "Hello World!")

	// We're finished so flush the document to the buffer.
	doc.Close()

	// Write it to a file.
	f, err := os.Create("tmp.pdf")
	if err != nil {
		fmt.Println("Could not create tmp.pdf")
		return
	}
	n, err := b.WriteTo(f)
	fmt.Printf("Wrote %d bytes\n", n)
}

dox2go's People

Contributors

adkennan avatar dangduc avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.