Coder Social home page Coder Social logo

deepanprabhu / worksheets-open-pdf-sign Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-pdf-sign/open-pdf-sign

0.0 2.0 0.0 123 KB

Digitally sign PDF files from your commandline

Home Page: https://openpdfsign.org

License: Apache License 2.0

Java 100.00%

worksheets-open-pdf-sign's Introduction

open-pdf-sign

The open-pdf-sign CLI application allows to easily sign PDF files from the commandline. Signatures can be invisible or visible, and visible signatures can be customized.

Features

  • Visible PDF signature in PDF (multi language support)
  • Invoke via CLI or via starting a server
  • Supported Signature type: PAdES
  • Supported Signature profiles:
    • BASELINE-B
    • BASELINE-T
    • To be evaluated: BASELINE-LT, BASELINE-LTA

Get Started

Download the latest jar archive from the GitHub releases page or in your terminal:

curl -L https://github.com/open-pdf-sign/open-pdf-sign/releases/latest/download/open-pdf-sign.jar -o open-pdf-sign.jar

Make sure that Java is installed in at least version 8.

Run

java -jar open-pdf-sign.jar -i input.pdf -o output.pdf -c certificate.crt -k keyfile.pem -p key_passphrase --page -1 --locale de-AT

Usage:

  Options:
    -b, --binary
      binary output of PDF
      Default: false
    -c, --certificate
      certificate (chain) to be used
    --config
      use a configuration file
    --hint
      text to be displayed in signature field
    --host
      run as server with the given hostname
    --image
      Image to be placed in signature block
    -i, --input
      input pdf file
    -k, --key
      signature key file or keystore
    --left
      X coordinate of the signature block in cm
      Default: 1.0
    -l, --locale
      Locale, e.g. de-AT
    -o, --output
      output pdf file
    --page
      Page where the signature block should be placed. [-1] for last page
    -p, --passphrase
      passphrase for the signature key or keystore
    --port
      run as server with the given port
      Default: 8090
    --timestamp
      include signed timestamp
      Default: false
    --timezone
      use specific timezone for time info, e.g. Europe/Vienna
    --top
      Y coordinate of the signature block in cm
      Default: 1.0
    --tsa
      use specific time stamping authority as source (if multiple given, will 
      be used in given order as fallback)
      Default: []
    --width
      width of the signature block in cm
      Default: 10.0

Usage with Let's Encrypt certificates

PDFs can also be signed using your existing Let's Encrypt certificate.

java -jar open-pdf-sign.jar -i input.pdf -o output.pdf \
  -c /etc/letsencrypt/live/openpdfsign.org/fullchain.pem \
  -k /etc/letsencrypt/live/openpdfsign.org/privkey.pem

Visible signatures

If the page parameter is specified, a visible signature will be placed on the specified page. For example, running

java -jar open-pdf-sign.jar -i input.pdf -o output.pdf \
     -c certificate.crt \
     -k key.pem \
     --page -1 --logo mylogo.png \
     --hint "You can check the validity at signaturpruefung.gv.at"

will place a visible signature looking similar to the image below on the last page (-1) of the PDF document.

signature image

Usage in server mode

You can also run open-pdf-sign as a server application in order to only load certificates once and easily integrate it in applications where CLI invocations are not possible. Simply add the --port or --hostname parameters, e.g.

java -jar open-pdf-sign.jar -i input.pdf -o output.pdf \
  -c /etc/letsencrypt/live/openpdfsign.org/fullchain.pem \
  -k /etc/letsencrypt/live/openpdfsign.org/privkey.pem
  --port 8090 --hostname 127.0.0.1

Then, PDFs can be signed via the specified /pdf endpoint:

curl --location --request POST 'http://localhost:8090/' \
--header 'Content-Type: application/json' \
--data-raw '{
  "input": "/path/to/pdf.pdf"
}'

Using a config file

Instead of CLI parameters, you can also submit a configuration file with the same parameters and the possibility to lead multiple keys, as shown in this example

java -jar open-pdf-sign.jar --config /path/to/config.yaml

Development

Requirements

Build

mvn package

License

This project is licensed under the Apache 2.0-License.
The code contained in the org/openpdfsign/dss subfolder extends and modifies code from the dss project which is licensed under the LGPL-2.1 license.

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.