All Versions
16
Latest Version
Avg Release Cycle
35 days
Latest Release
4 days ago

Changelog History
Page 1

  • v0.3.3

    May 25, 2020

    πŸš€ This is a maintenance release featuring a couple of extensions for text based watermarking/stamping.
    Have a look at some examples.
    πŸ“š The documentation of said features will be available on pdfcpu.io shortly.

    🍱 Happy coding & Thank you for using pdfcpu πŸ’š

    πŸ”„ Changelog

    195cc73 Add Carlos Eduardo Witte as contributor
    9184889 Extend watermarking
    πŸ‘ 2396969 Fix #149, Add cmd prefix support to help
    6d5c8c0 Fix #153
    3ccfa0f Fix #155
    f3a25d9 Fix #156
    4a9adac Fix #157, bump version
    760a5aa Fix #159
    b2e52e8 Fix #160
    215fc52 Fix #164
    4c0473c Fix #166
    a7901a1 Fix #170,#173,#175
    6220ebf Fix #181,#182
    abe118f Fix #183, #184
    4b5cc24 Fix #188
    33e7eff Fix add keywords
    ba4e619 Fix coverage.sh
    πŸ›  cc558fe Fixed ToMillimetres() (#162)
    πŸ›  198349c Fixed a bug in paperSize.go toMillimetres, which was returning d.Height twice instead of d.Width and d.Height; and fixed ToMillimeters and ToCentimeters spelling errors.
    πŸ›  bfe4c05 Fixed func toMillimetres() which was returning d.Height twice instead of d.Width and d.Height
    βͺ 1ff4f53 Revert "Fixed a bug in paperSize.go toMillimetres, which was returning d.Height twice instead of d.Width and d.Height; and fixed ToMillimeters and ToCentimeters spelling errors."

  • v0.3.2

    January 04, 2020

    Hello!

    πŸš€ This release is packed with a couple of new features:

    Multi-Stamping

    This is an enhancement to pdfcpu's PDF stamp command.
    From now on when adding a PDF stamp and no specific stamp page is defined pdfcpu will apply each page of the stamp.pdf one-by-one to the input file and after that it repeatedly uses the last page of stamp.pdf if the input file has more pages. This will allow you to apply corporate designs to your PDFs in one simple step like so:
    pdfcpu stamp add -mode pdf stamp.pdf 'rot:0, pos:bl, scale: 1.0 rel' in.pdf out.pdf

    If you want to stamp with a specific page of stamp.pdf you need to define this like in stamp.pdf:3
    πŸ‘€ See also #146.

    πŸš€ The first release of 2020 also introduces four new commands:

    • keywords
    • properties
    • portfolio
    • collect

    Manage search keywords

    🚚 List, add, remove document keywords.
    Keywords are also part of pdfcpu info.
    Please also refer to pdfcpu help keywords.

    usage: pdfcpu keywords list [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile
           pdfcpu keywords add [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile keyword...
           pdfcpu keywords remove [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile [keyword...]
    

    Manage document properties

    🚚 List, add, remove document properties.
    Properties are also part of pdfcpu info.
    Please also refer to pdfcpu help properties.

    usage: pdfcpu properties list [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile
           pdfcpu properties add [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile keyValuePair...
           pdfcpu properties remove [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile [key...]
    

    Portfolio

    🚚 List, add, remove, extract portfolio entries.
    pdfcpu attachment remains the command for managing plain attachments, whereas pdfcpu portfolio manages portfolio entries that will presented as such by Adobe Reader.
    In a nutshell the behavior of this command reflects the old attachment command.
    Please also refer to pdfcpu help portfolio.
    πŸ‘€ See also #112.

    usage: pdfcpu portfolio list [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile
           pdfcpu portfolio add [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile file[,desc]...
           pdfcpu portfolio remove [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile [file...]
           pdfcpu portfolio extract [-v(erbose)|vv] [-q(uiet)] [-upw userpw] [-opw ownerpw] inFile outDir [file...]
    

    Collect

    Create a custom PDF page sequence.
    Pages may appear multiple times in any way you prefer:
    pdfcpu collect -pages 5,1-3,1-3 in.pdf out.pdf
    Please also refer to pdfcpu help collect.

    usage: pdfcpu collect [-v(erbose)|vv] [-q(uiet)] -pages selectedPages [-upw userpw] [-opw ownerpw] inFile [outFile]
    

    There is also an important change to the insert page command:

    ✨ Enhanced insert page command

    0️⃣ pdfcpu pages insert now features mode before|after. mode defaults to before.
    This will allow you to insert pages at the end of your document:
    βœ… pdfcpu pages insert -mode after -pages l test.pdf
    πŸ‘€ l ... last page. See also #140,#148

    πŸ›  Like always there are also a couple of bug fixes.
    Thank you so much for using pdfcpu!
    🍱 Have fun! πŸ’š

    πŸ”„ Changelog

    055056b Add collect cmd
    683591d Add new cmds: keywords, properties
    789c1fd Fix #112
    990136b Fix #140
    71c52af Fix #143
    9f62b17 Fix #144
    eb8f480 Fix #146
    df75777 Fix #148
    623e0df Fix #152
    ⚑️ 3a5e89f Update README.md

  • v0.3.1

    December 09, 2019

    πŸš€ This release introduces TrueType font support for stamps/watermarks.

    • πŸ‘‰ Use pdfcpu fonts install to install a list of ttf fonts. (pdfcpu f i also works)
    • πŸ–¨ Use pdfcpu fonts list to print the list of supported/installed fonts. (pdfcpu f lalso works)
    • βœ… Run TestCreateFontSamples in api_test.go anytime to produce sample pages for all installed fonts.

    πŸš€ We are also introducing a pdfcpu config dir with this release using the os.UserConfigDir introduced with go 1.13. hence we also had to bump the required minimum version for building to go1.13.

    🐳 We finally also have a docker file and a couple of bugs have been fixed.

    πŸš€ Thanks to everybody contributing to this release be it by submitting issues or PRs! πŸ’š

    πŸ”„ Changelog

    ⚑️ 6440804 Update min go version to 1.13
    23dcd69 Add Sam Giffney as contributor
    πŸ‘ c4192ba Add TrueType font support
    🐳 9927baa Merge pull request #139 from s01ipsist/dockerize
    🐳 06aa5e8 Add Dockerfile and usage instructions
    c20cd91 Fix #137
    7519e68 Fix #138
    8d41ed1 Fix #133
    41b9a79 Add ryarnyah as contributor
    πŸ”€ 9f4f093 Merge pull request #131 from ryarnyah/fix/go-fuzz-read
    f99a631 Add Invalid filter to NewFilter to fix crash found with go-fuzz
    e7fdde8 Fix #126

  • v0.3

    November 15, 2019

    πŸš€ Another watermark focused release comes with full support for the Adobe standard/core fontset.
    πŸ–¨ The new pdfcpu fonts command prints the fontnames of all supported fonts:

    Go-> pdfcpu fonts
    Courier
    Courier-Bold
    Courier-BoldOblique
    Courier-Oblique
    Helvetica
    Helvetica-Bold
    Helvetica-BoldOblique
    Helvetica-Oblique
    Symbol
    Times-Bold
    Times-BoldItalic
    Times-Italic
    Times-Roman
    ZapfDingbats
    

    βœ… pkg/testdata/fontsamples contains single page PDF files - each stamped with the full character set of one of the supported fonts for your reference. The corresponding test for producing these files is located here:
    βœ… pkg/api/api_test.go: TestCreateFontSamples

    πŸ‘ All characters regular or special are supported like € or eg. the german Γ€ΓΆΓΌΓ„Γ–ΓœΓŸ

    πŸ‘ In order to fully support creating watermarks/stamps containing any character a cli change was necessary:

    pdfcpu stamp add [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] -mode text|image|pdf string|file description inFile [outFile]
    pdfcpu stamp remove [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] inFile [outFile]
    pdfcpu stamp update [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] -mode text|image|pdf string|file description inFile [outFile]
    
    pdfcpu watermark add [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] -mode text|image|pdf string|file description inFile [outFile]
    pdfcpu watermark remove [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] inFile [outFile]
    pdfcpu watermark update [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] -mode text|image|pdf string|file description inFile [outFile]
    

    πŸ‘ The mode flag is now required to set one of three supported watermark types: text|image|pdf
    πŸš€ A corresponding new argument holds a string or an image or pdf file name. As of this release description is a required configuration string for options only.

    ⚑️ Please update your scripts accordingly!

    The api was improved for PDF Context manipulation during backend processing. The recommended pattern is:

    1. Get a pdf.Context: func ReadContextFile(inFile string) (*pdf.Context, error)
    2. Manipulate the context
    3. Write the pdf.Context: func WriteContextFile(ctx *pdf.Context, outFile string) error

    πŸ”„ Changelog

    ⚑️ 1e3294b Update README.md, travis & bump version
    d1e947c Fix #117
    d1472e1 Add cmd: pdfcpu fonts
    862d9ee Fix #113
    ee90fab Fix #114
    c961839 Fix #119
    9575f75 Add Dmitry Harnitski as contributor
    ac888fe Fix Color Lookup for Flat encoded image (#130)
    dc388b8 Add Mateusz Burniak as contributor
    8519366 feat: Introduce function PageCountFile (#123)
    6a45354 Add minenok-tutu as contributor
    πŸ”€ 110892a Merge in PR
    edeb2bd constant export (#121)
    c97ac72 Fix relaxed Outline dict validation
    ⚑️ ccc83ac Update README.md
    27d554f Fix usage of parms in watermark examples .
    8c9e503 Fix examples.

  • v0.2.5

    September 23, 2019

    πŸ”„ Changelog

    πŸš€ Focus of this release is enhanced stamping & watermarking.
    ⚑️ Finally pdfcpu is able to add, update and remove stamps & watermarks for selected pages.
    Go to here and scroll all the way down for examples of a typical stamp lifecycle.

    Stamps and watermarks are conceptually the same with the distinction that
    watermarks are rendered before the page content whereas stamps get rendered after the page content.

    What applies to stamping applies to watermarking as well.
    πŸš€ Starting with this release in the realm of pdfcpu:

    • βž• A page stamp is the result of repeatedly Adding stamps to an individual page.
    • ⚑️ Updating the stamp for a selected page will replace this page stamp.
    • Removing a stamp for an individual page removes the page stamp.

    Unfortunately there have been changes to the CLI for the sake of consistency:

    pdfcpu stamp add [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] description inFile [outFile]
    pdfcpu stamp remove [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] inFile [outFile]
    pdfcpu stamp update [-v(erbose)|vv] [-q(uiet)] [-pages selectedPages] [-upw userpw] [-opw ownerpw] description inFile [outFile]
    

    ⚑️ Please update your scripts for adding stamps & watermarks accordingly and as a reminder:
    pdfcpu is still Alpha!

    πŸ“œ The command config parameter parser supports prefixes now,
    Just make sure you supply enough characters to for a unique prefix that can be identified.
    Eg. o: .5 is ambiguous because there is opacity and offset but op: 0.5or off: 0 15will work.

    You can also now position individual stamps which enables more complex page stamps/watermarks.
    ⚑️ Until pdfcpu.io is updated please refer to pdfcpu help stamp and pdfcpu help watermark.

    πŸ‘ pdfcpu import is now optionally supporting a desired destination resolution via the dpi command description string parameter. Please refer to pdfcpu help import for more.

    98e24ae Add api.PageDims
    5b4caaf Ensure correct PDF version before writing.
    4d4296a Fix #101, #103, #104, #107, #108, #109
    954206e Make LastModified optional rather than required in validatePieceDict (#106)
    ⚑️ 87915e4 Update contributors in README.md

  • v0.2.4

    August 27, 2019
    • pdfcpu info also displays pagesize(s) in points now . Use -u to set units to inch, cm or mm.
    • api.PageDims(inFile string) returns a slice of page dimensions.
    • πŸ“¦ pdfcpu/ccitt is removed as pdfcpu starts using the new x/image/ccitt package.
    • pdfcpu/lzw and pdfcpu/tiff are outsourced to hhrutter/lzw and hhrutter/tiff

    πŸ”„ Changelog

    73a6312 Fix #100
    2943473 Fix #104
    πŸ›  f49dee9 Minor fixes.
    🚚 fc3b384 Move lzw and tiff into separate repos

  • v0.2.3

    August 11, 2019

    πŸ”„ Changelog

    3cf4e2c Transfer repo to org

  • v0.2.2

    August 01, 2019

    πŸ”„ Changelog

    πŸš€ db7898a Add goreleaser.yml
    246a999 Change logo.
    18994fd Fix #94
    5a95142 Fix #95
    242ca98 Fix #96
    51f0a03 Fix #97
    1a3890a Fix usage info
    ⚑️ 3b47039 Update README.md

  • v0.2.1

    July 15, 2019

    πŸš€ The focus of this release is pdfcpu's API.

    1. The API was redesigned. There are 2 layers:
    • Interface based layer
    • File based layer

    The file based layer is used by pdfcpu's CLI.
    πŸ‘€ The interface layer (based on io.ReadSeeker/io.Writer) is for backend integration.

    All CLI commands call into the interface layer and if you go to GoDoc there are examples included for most of the API calls .

    πŸ–¨ The new pdfcpu info command prints out all known info about a PDF file.

    πŸ’» The pdfcpu command line features a new quiet mode flag (-quietor -q)which suppresses output to the stdOut. This feature is aimed at batch processing.

    πŸ›  Bugfixes: #87,#89-#93

    🍱 Thanks for all bug reports and for using pdfcpu! πŸ’š

  • v0.2

    July 14, 2019

    πŸš€ The focus of this release is pdfcpu's API.

    1. The API was redesigned. There are 2 layers:
    • Interface based layer
    • File based layer

    The file based layer is used by pdfcpu's CLI.
    πŸ‘€ The interface layer (based on io.ReadSeeker/io.Writer) is for backend integration.

    All CLI commands call into the interface layer and if you go to GoDoc there are examples included for most of the API calls .

    πŸ–¨ The new pdfcpu info command prints out all known info about a PDF file.

    πŸ’» The pdfcpu command line features a new quiet mode flag (-quietor -q)which suppresses output to the stdOut. This feature is aimed at batch processing.

    πŸ›  Bugfixes: #87,#89-#91

    🍱 Thanks for all bug reports and for using pdfcpu! πŸ’š