www.pdf-tools.com Open in urlscan Pro
54.220.164.7  Public Scan

Submitted URL: http://www.pdf-tools.com/
Effective URL: https://www.pdf-tools.com/
Submission: On October 20 via api from GB — Scanned from GB

Form analysis 0 forms found in the DOM

Text Content

 * Products
   
   
   CONVERSION SERVICE
   
   Automation server
   Conversion Service
   
   
   SDKS
   
   SDK & Shell tools
   PDF Tools SDK
   PDF Printer
   PDF Analysis & Repair
   
   
   VIEWING SOLUTIONS
   
   Document reader and annotator
   PDF Web Viewer
 * Solutions
   
   
   BY INDUSTRY
   
   GovernmentSimplify public services
   Financial servicesAutomate standardization & compliance
   Tech & SoftwareAccelerate time-to-market
   HealthcareRelieve digital headaches
 * Resources
   
   
   PRODUCT HELP
   
   DocumentationLearn how Pdftools products work
   GlossaryConsult common PDF terms
   PDF knowledgeLearn more about PDF standards, methods...
   
   
   LEARN MORE
   
   BlogWe want to empower you to become PDF experts yourself.
   Customer storiesGet to know leading companies and organizations and their
   projects
 * Pricing
 * About us
 * Contact us

 * Log in
 * Get started
   What do I need?

 * Get started
 * 

By developers for developers




THE LEADING PDF SDK

Build in minutes, scale without limits. Sign up for free to get full access to
any of our products.
Start building now
By signing up, you agree to our License agreement and Privacy policy


6,000+ COMPANIES ALREADY LOVE PDFTOOLS


Need a no-code PDF tool without implementation? Try Smallpdf.
See Smallpdf


ALL YOUR PDF NEEDS MET

From conversions to compression, we have everything you need to integrate PDF
documents into your product and your customers.
PDF Tools SDKConversion ServicePDF Web Viewer


THE PDF SDK BUILT FOR YOUR PDF WORKFLOWS

 * Archiving PDFs (PDF/A format)

 * Converting files to and from PDF PDFs and PDF/As

 * Dividing or combining PDFs

 * Extracting data and content of PDFs

 * Reducing the size of PDF files

 * Signing and encrypting PDFs

 * Validating PDFs and PDF/As

Windows Client
MacOS
Linux
See product



AUTOMATE DOCUMENT PROCESSING

 * Archiving PDFs (PDF/A format)

 * Converting files to and from PDF PDFs and PDF/As

 * Reducing the size of PDF files

 * Signing and encrypting PDFs

 * Validating PDFs and PDF/As

Windows Client
MacOS
Linux
See product



HIGH-PERFORMANCE ONLINE RENDERING

 * Viewing and annotating PDFs online

Windows Client
MacOS
Linux
See product



BUILD FASTER, BUILD BETTER

Made by developers for developers. Test our versatile PDF SDK and see it for
yourself.
Convert PDF to PDF/ASign PDFOptimize PDFEncrypt PDFValidate PDF conformance
JavaC#

1// Create a converter object
2Converter converter = new Converter();
3
4// Add handler for conversion events
5class EventListener implements ConversionEventListener
6{
7    private EventSeverity eventsSeverity = EventSeverity.INFORMATION;
8
9    public EventSeverity getEventsSeverity() {
10        return eventsSeverity;
11    }
12
13    @Override
14    public void conversionEvent(ConversionEvent event) {
15        // Get the event's suggested severity
16        EventSeverity severity = event.getSeverity();
17
18        // Optionally, the suggested severity can be changed according to
19        // the requirements of your conversion process and, for example,
20        // the event's category (e.Category).
21
22        if (severity.ordinal() > eventsSeverity.ordinal())
23            eventsSeverity = severity;
24
25        // Report conversion event
26        System.out.format("- %c %s: %s (%s%s)%n", severity.toString().charAt(0), event.getCategory(), event.getMessage(), event.getContext(), event.getPageNo() > 0 ? " on page " + event.getPageNo() : "");
27    }
28}
29EventListener el = new EventListener();
30
31converter.addConversionEventListener(el);
32

1try (
2    // Create a session to the built-in cryptographic provider
3    Provider session = new Provider();
4
5    // Open certificate file
6    FileStream pfxStr = new FileStream(certificateFile, FileStream.Mode.READ_ONLY))
7{
8    // Create signature configuration from PFX (or P12) file
9    SignatureConfiguration signature = session.createSignatureFromCertificate(pfxStr, password);
10
11    // Embed validation information to enable the long-term validation (LTV) of the signature (default)
12    signature.setValidationInformation(com.pdftools.crypto.ValidationInformation.EMBED_IN_DOCUMENT);
13
14    // Create the Signer object
15    Signer signer = new Signer();
16
17    // (optional) create an event listener to listen for warning events that are raised and write them to console
18    signer.addWarningListener((e) -> { System.out.format("Warning - %s: %s: %s", e.getCategory(), e.getContext(), e.getMessage()); });
19
20    try (
21        // Open input document
22        FileStream inStr = new FileStream(inPath, FileStream.Mode.READ_ONLY);
23        Document inDoc = Document.open(inStr);
24
25        // Create a stream for the output file
26        FileStream outStr = new FileStream(outPath, FileStream.Mode.READ_WRITE_NEW);
27
28        // Sign the input document
29        Document outDoc = signer.sign(inDoc, signature, outStr))
30    {
31    }
32}
33        

1// Create the Optimizer object.
2Optimizer optimizer = new Optimizer();
3
4// Create the profile that defines the optimization parameters.
5// The Web profile is used to optimize documents for electronic document exchange.
6Web profile = new Web();
7
8// Optionally, the profile's parameters can be changed according to the
9// requirements of your optimization process.
10
11try (
12    // Open input document
13    FileStream inStr = new FileStream(inPath, FileStream.Mode.READ_ONLY);
14    Document inDoc = Document.open(inStr);
15
16    // Create output stream
17    FileStream outStr = new FileStream(outPath, FileStream.Mode.READ_WRITE_NEW);
18
19    // Optimize the document
20    Document outDoc = optimizer.optimizeDocument(inDoc, outStr, profile))
21{
22}
23

1// Open an encrypted input document
2// The password parameter is optional, and only required to open an encrypted PDF document
3FileStream inStr = new FileStream(inPath, FileStream.Mode.READ_ONLY);
4com.pdftools.pdf.Document inDoc = com.pdftools.pdf.Document.open(inStr, password)
5
6// Create output stream
7FileStream outStr = new FileStream(outPath, FileStream.Mode.READ_WRITE_NEW);
8
9// Create output options and specify encryption parameters
10// In this example, a 'User' is only granted permission to fill forms and print the document
11OutputOptions outOpt = new OutputOptions();
12
13// Set a user password that is required to open the document.
14// Note that this removes PDF/A conformance of input files (see warning category WarningCategory.PDF_A_REMOVED)
15outOpt.setEncryption(new Encryption(strUserPassword, strOwnerPassword, EnumSet.of(Permission.FILL_FORMS, Permission.PRINT)));
16
17// Optimize the input PDF document and save it to a file, applying the specified output encryption
18Document outDoc = new Optimizer().optimizeDocument(inDoc, outStr, profile, outOpt));
19
20// Create output options and remove encryption by setting it to null
21OutputOptions outOpt = new OutputOptions();
22outOpt.setEncryption(null);
23

1// Open the PDF document to validate
2try (FileStream inStr = new FileStream(inPath, FileStream.Mode.READ_ONLY);
3    com.pdftools.pdf.Document inDoc = com.pdftools.pdf.Document.open(inStr))
4{
5    // Create a conformance object that specifies the PDF/A standard and level against which the document is validated.
6    // Here we choose the PDF/A-2 Standard, with conformance Level B.
7    Conformance conformance = new Conformance(new Conformance.PdfAVersion(2, Conformance.PdfAVersion.Level.B));
8
9    // Create a Validator object and attach an Error event handler that simply writes the validation error messages to the console.
10    Validator validator = new Validator();
11    validator.addErrorListener(
12        (Validator.Error error) ->
13        System.out.format("- %s: %s (%s%s)%n", error.getCategory(), error.getMessage(), error.getContext(), error.getPageNo() > 0 ? String.format(" on page %d", error.getPageNo()) : "")
14    );
15
16    // Validate the PDF/A standard and level of the document against the defined Conformance level.
17    ValidationOptions options = new ValidationOptions();
18    options.setConformance(conformance);
19    ValidationResult result = validator.validate(inDoc, options);
20
21    // Write the result of the Validate method to the console.
22    System.out.println("Document conforms to " + result.getConformance().toString() + ": " + result.getIsConforming​());
23}
24

See all Pdf Tools SDK code samples


TRY PDFTOOLS AND SEE FOR YOURSELF

Sign up for a free 30-day trial and join the 6,000+ customers already using
Pdftools to manage their documents.
Get startedContact us


WHAT CUSTOMERS ARE SAYING

Customer stories

BAYER CROPSCIENCE RELIES ON THE ISO LONG-TERM ARCHIVING FORMAT PDF/A



Products used

Conversion service / PDF Optimizer / PDF to PDF/A Converter / + 4 more

View case study

Customer stories

CREATING SWISS ADOPTIONS OF EUROPEAN AND INTERNATIONAL STANDARDS IN RECORD TIME



Products used

PDF Toolbox SDK

View case study

Customer stories

EFFICIENT MOBILE ACCESS TO INFORMATION FOR ON-BOARD STAFF AT DEUTSCHE LUFTHANSA
AG



Products used

PDF Web Viewer

View case study


SUPPORT

DOCUMENTATION

Learn how Pdftools products work.

See documentation

PDF GLOSSARY

Consult common PDF terms.

See glossary

PDF KNOWLEDGE

Learn more about PDF standards.

See PDF knowledge


STRESS LESS ABOUT YOUR PDF WORKFLOW

Test drive Pdftools for yourself with a free trial.
Get startedContact us

Try it for 30 days, no credit card required

Install the tools yourself, with support from our team

Watch your document processing time plummet

EXPLORE

 * Conversion Service
 * PDF Tools SDK
 * PDF Printer
 * PDF Analysis & Repair
 * PDF Web Viewer

LEARN

 * Documentation
 * PDF glossary
 * PDF knowledge
 * Blog
 * Customer stories

COMPANY

 * About us
 * Careers

GET STARTED

 * Sign up
 * Log in
 * Contact us

 * Copyright © 2023 PDF Tools AG
 * Imprint
 * Privacy policy
 * License agreement
 * Cookie Settings
   

 * 
 * 
 *