Giter Club home page Giter Club logo

unipdf's Introduction

UniPDF - PDF for Go

UniDoc's unipdf is a powerful PDF library for Go (golang) with capabilities for creating and processing PDF files. The library is written and supported by the FoxyUtils.com website, where the library is used to power many of the PDF services offered.

Build Status License: AGPL v3 Go Report Card GoDoc

News

  • unidoc is being renamed to unipdf and will be maintained under https://github.com/unidoc/unipdf
  • The old repository will remain under https://github.com/unidoc/unidoc for backwards compatibility and will be read-only. All development will be under the unipdf repository.
  • The initial release of unipdf v3.0.0 will be compliant with Go modules from the start.

Features

unipdf has a powerful set of features both for reading, processing and writing PDF. The following list describes some key features:

  • Create PDF reports with easy interface
  • Invoice component for easy PDF invoice generation
  • Advanced table generation in the creator with subtable support
  • Composite fonts supported and font handling has and is being completely revamped, including unicode support.
  • Paragraph in creator handling multiple styles within the same paragraph
  • Table of contents automatically generated
  • PDF compression and optimization of outputs with several options 1) combining duplicates, 2) compressed object streams, 3) image points per inch threshold, 4) image quality.
  • Text extraction significantly improved in quality and foundation in place for vectorized (position-based) text extraction (XY)
  • Image extraction with coordinates
  • Merge PDF pages
  • Merge page contents
  • Split PDF pages and change page order
  • Rotate pages
  • Extract text from PDF files
  • Extract images
  • Add images to pages
  • Compress and optimize PDF output (v3)
  • Draw watermark on PDF files
  • Advanced page manipulation (blocks/templates)
  • Load PDF templates and modify
  • Flatten forms and generate appearance streams (v3)
  • Fill out forms and FDF merging (v3)
  • Unlock PDF files / remove password
  • Protect PDF files with a password
  • Digital signing validation and signing
  • Encryption support refactored and AESv3 support added
  • CCITTFaxDecode decoding and encoding support
  • FDF merge and form filling via JSON data
  • Form field filling and form flattening with appearance generation
  • Append mode
  • Getting form field values and listing

Installation

With modules:

go get github.com/unidoc/unipdf/v3

How can I convince myself and my boss to buy unipdf rather using a free alternative?

The choice is yours. There are multiple respectable efforts out there that can do many good things.

In UniDoc, we work hard to provide production quality builds taking every detail into consideration and providing excellent support to our customers. See our testimonials for example.

Security. We take security very seriously and we restrict access to github.com/unidoc/unipdf repository with protected branches and only the founders have access and every commit is reviewed prior to being accepted.

The profits are invested back into making unipdf better. We want to make the best possible product and in order to do that we need the best people to contribute. A large fraction of the profits made goes back into developing unipdf. That way we have been able to get many excellent people to work and contribute to unipdf that would not be able to contribute their work for free.

Examples

Multiple examples are provided in our example repository https://github.com/unidoc/unidoc-examples as well as documented examples on our website.

Contact us if you need any specific examples.

Contributing

CLA assistant

All contributors must sign a contributor license agreement before their code will be reviewed and merged.

Support and consulting

Please email us at [email protected] for any queries.

If you have any specific tasks that need to be done, we offer consulting in certain cases. Please contact us with a brief summary of what you need and we will get back to you with a quote, if appropriate.

Licensing Information

This library (unipdf) has a dual license, a commercial one suitable for closed source projects and an AGPL license that can be used in open source software.

Depending on your needs, you must choose one of them and follow its policies. A detail of the policies and agreements for each license type are available in the LICENSE.COMMERCIAL and LICENSE.AGPL files.

In brief, purchasing a license is mandatory as soon as you develop activities distributing the unipdf software inside your product or deploying it on a network without disclosing the source code of your own applications under the AGPL license. These activities include:

  • offering services as an application service provider or over-network application programming interface (API)
  • creating/manipulating documents for users in a web/server/cloud application
  • shipping unipdf with a closed source product

Please see pricing to purchase a commercial license or contact sales at [email protected] for more info.

Getting Rid of the Watermark - Get a License

Out of the box - unipdf is unlicensed and outputs a watermark on all pages, perfect for prototyping. To use unipdf in your projects, you need to get a license.

Get your license on https://unidoc.io.

To load your license, simply do:

unidocLicenseKey := "... your license here ..."
err := license.SetLicenseKey(unidocLicenseKey)
if err != nil {
    fmt.Printf("Error loading license: %v\n", err)
    os.Exit(1)
}

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.