
* Prepared skeleton and basic component implementations for the jbig2 encoding. * Added Bitset. Implemented Bitmap. * Decoder with old Arithmetic Decoder * Partly working arithmetic * Working arithmetic decoder. * MMR patched. * rebuild to apache. * Working generic * Working generic * Decoded full document * Update Jenkinsfile go version [master] (#398) * Update Jenkinsfile go version * Decoded AnnexH document * Minor issues fixed. * Update README.md * Fixed generic region errors. Added benchmark. Added bitmap unpadder. Added Bitmap toImage method. * Fixed endofpage error * Added integration test. * Decoded all test files without errors. Implemented JBIG2Global. * Merged with v3 version * Fixed the EOF in the globals issue * Fixed the JBIG2 ChocolateData Decode * JBIG2 Added license information * Minor fix in jbig2 encoding. * Applied the logging convention * Cleaned unnecessary imports * Go modules clear unused imports * checked out the README.md * Moved trace to Debug. Fixed the build integrate tag in the document_decode_test.go * Initial encoder skeleton * Applied UniPDF Developer Guide. Fixed lint issues. * Cleared documentation, fixed style issues. * Added jbig2 doc.go files. Applied unipdf guide style. * Minor code style changes. * Minor naming and style issues fixes. * Minor naming changes. Style issues fixed. * Review r11 fixes. * Added JBIG2 Encoder skeleton. * Moved Document and Page to jbig2/document package. Created decoder package responsible for decoding jbig2 stream. * Implemented raster functions. * Added raster uni low test funcitons. * Added raster low test functions * untracked files on jbig2-encoder: c869089 Added raster low test functions * index on jbig2-encoder: c869089 Added raster low test functions * Added morph files. * implemented jbig2 encoder basics * JBIG2 Encoder - Generic method * Added jbig2 image encode ttests, black/white image tests * cleaned and tested jbig2 package * unfinished jbig2 classified encoder * jbig2 minor style changes * minor jbig2 encoder changes * prepared JBIG2 Encoder * Style and lint fixes * Minor changes and lints * Fixed shift unsinged value build errors * Minor naming change * Added jbig2 encode, image gondels. Fixed jbig2 decode bug. * Provided jbig2 core.DecodeGlobals function. * Fixed JBIG2Encoder `r6` revision issues. * Removed public JBIG2Encoder document. * Minor style changes * added NewJBIG2Encoder function. * fixed JBIG2Encoder 'r9' revision issues. * Cleared 'r9' commented code. * Updated ACKNOWLEDGEMENETS. Fixed JBIG2Encoder 'r10' revision issues. Co-authored-by: Gunnsteinn Hall <gunnsteinn.hall@gmail.com>
UniPDF - PDF for Go
UniDoc's UniPDF (formerly unidoc) is a PDF library for Go (golang) with capabilities for creating and reading, processing PDF files. The library is written and supported by FoxyUtils.com, where the library is used to power many of its services.
Features
- Create PDF reports. Example output: unidoc-report.pdf.
- Table PDF reports. Example output: unipdf-tables.pdf.
- Invoice creation
- Paragraph in creator handling multiple styles within the same paragraph
- Merge PDF pages
- Split PDF pages and change page order
- Rotate pages
- Extract text from PDF files
- Text extraction support with size, position and formatting info
- PDF to CSV illustrates extracting tabular data from PDF.
- Extract images with coordinates
- Images to PDF
- Add images to pages
- Compress and optimize PDF
- Watermark PDF files
- Advanced page manipulation (blocks/templates)
- Load PDF templates and modify
- Form creation
- Fill and flatten forms
- Fill out forms and FDF merging
- Unlock PDF files / remove password
- Protect PDF files with a password
- Digital signing validation and signing
- CCITTFaxDecode decoding and encoding support
- JBIG2 decoding support
Multiple examples are provided in our example repository https://github.com/unidoc/unidoc-examples.
Contact us if you need any specific examples.
Installation
With modules:
go get github.com/unidoc/unipdf/v3
With GOPATH:
go get github.com/unidoc/unipdf/...
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.
Contributing
All contributors must sign a contributor license agreement before their code will be reviewed and merged.
Support and consulting
Please email us at support@unidoc.io 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 sales@unidoc.io 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.
The easiest way to load your license is through environment variables, for example:
export UNIPDF_CUSTOMER_NAME=UniDoc
export UNIPDF_LICENSE_PATH=/path/to/licenses/UniDoc.txt
Alternatively you can load the license in code, simply do:
licenseKey := "... your license here ..."
customerName := `name of license holder`
err := license.SetLicenseKey(licenseKey, customerName)
if err != nil {
fmt.Printf("Error loading license: %v\n", err)
os.Exit(1)
}