Skip to content

Creating PDF using existing PDF as template for GO (golang).

License

Notifications You must be signed in to change notification settings

ariefaprilianto/pdft-gen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDFT

PDFT is a GO library for creating PDF documents using existing PDFs as template. This library depend on gopdf.

Tested with PDF template files created from Libre office, Google Docs, Microsoft Word.

SAMPLE

var pt pdft.PDFt
err := pt.Open(pdfsource)
if err != nil {
	panic("Couldn't open pdf.")
}


err = pt.AddFont("arial", "./arial.ttf")
if err != nil {
    t.Error(err)
    return
}

err = pt.SetFont("arial", "", 14)
if err != nil {
    panic(err) 
}

//insert text to pdf
err = pt.Insert("Hi", 1, 10, 10, 100, 100, gopdf.Center|gopdf.Bottom)
if err != nil {
    panic(err) 
}

// measure text width
var textWidth float64
textWidth, err = pt.MeasureTextWidth("Hi")

// read image file
pic, err := ioutil.ReadFile(picPath)
if err != nil {
	panic("Couldn't read pic.")
}

 
// insert image to pdf
err = pt.InsertImg(pic, 1, 182.0, 165.0, 172.0, 49.0)
if err != nil {
	panic("Couldn't insert image")
}

// insert image to pdf with cache, avoiding redundant data when inserting same images many times
err = pt.InsertImgWithCache(pic, 1, 182.0, 165.0, 172.0, 49.0)
if err != nil {
	panic("Couldn't insert image")
}

// Duplicate first page to last page
err = pt.DuplicatePageAfter(1, -1)
if err != nil {
	panic("Couldn't duplicate first page")
}

// Remove second page
err = pt.RemovePage(2)
if err != nil {
	panic("Couldn't remove targetPage")
}

err = pt.Save(target)
if err != nil {
	panic("Couldn't save pdf.")
}

About

Creating PDF using existing PDF as template for GO (golang).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%