Class Converter


  • public class Converter
    extends NativeObject

    The class to convert PDF documents to PDF/A

    • Constructor Detail

      • Converter

        public Converter()
    • Method Detail

      • addInvoiceXml

        public void addInvoiceXml​(InvoiceType invoiceType,
                                  Stream invoice)

        Prepares the invoice XML file (ZUGFeRD or Factur-X) for embedding.

        Note: This requires the compliance to be set to PDF/A-3.
        Parameters:
        invoiceType - The type of invoice.
        invoice - The XML invoice stream.
        Throws:
        java.lang.IllegalArgumentException - The invoice stream could not be opened for reading.
        java.lang.IllegalArgumentException - if invoiceType is null
        java.lang.IllegalArgumentException - if invoice is null
      • addInvoiceXml

        public void addInvoiceXml​(InvoiceType invoiceType,
                                  Stream invoice,
                                  AFRelationship afRelationship)

        Prepares the invoice XML file (ZUGFeRD or Factur-X) for embedding.

        Note: This requires the compliance to be set to PDF/A-3.
        Parameters:
        invoiceType - The type of invoice.
        invoice - The XML invoice stream.
        afRelationship - If no value is provided, a sensible default value is chosen based on the invoice type and version.
        Throws:
        java.lang.IllegalArgumentException - The invoice stream could not be opened for reading.
        java.lang.IllegalArgumentException - if invoiceType is null
        java.lang.IllegalArgumentException - if invoice is null
      • convert

        public Document convert​(AnalysisResult analysis,
                                Document document,
                                Stream outStream)
                         throws java.io.IOException,
                                NotFoundException,
                                GenericException,
                                LicenseException,
                                CorruptException,
                                ConformanceException,
                                UnsupportedFeatureException,
                                ProcessingException

        Convert a document to PDF/A.

        Note that it is highly recommended to use Converter.ConversionEventListener to detect critical conversion events.
        Parameters:
        analysis - The result of the document's analysis using pdftools.pdfa.validation.Validator.analyze.
        document - The document to convert
        outStream - The stream where the converted document is written
        Returns:
        The result of the conversion
        Throws:
        LicenseException - The license check has failed.
        java.lang.IllegalArgumentException - The outOptions argument is invalid.
        java.lang.IllegalArgumentException - The output stream could not be opened for writing.
        java.lang.IllegalStateException - The document has already been closed.
        java.lang.IllegalArgumentException - The analysis has already been closed, e.g. due to a previous conversion.
        java.lang.IllegalArgumentException - The PDF/A version of the analysis and the conversion options do not match.
        java.lang.IllegalArgumentException - The analysis is not the analysis result of document.
        java.io.IOException - Error reading from or writing to the outStream.
        ConformanceException - The conformance required by options cannot be achieved.
        • PDF/A level U: All text of the input document must be extractable.
        • PDF/A level A: In addition to the requirements of level U, the input document must be tagged.
        ConformanceException - The PDF/A version of the conformances of analysis and options differ. The same PDF/A version must be used for the analysis and conversion.
        java.lang.IllegalArgumentException - The outOptions specifies document encryption, which is not allowed in PDF/A documents.
        GenericException - The document cannot be converted to PDF/A.
        CorruptException - The analysis has been stopped.
        ProcessingException - Failed to add the invoice file. Possible reasons include an invalid XML format, or that the invoice type conflicts with the content of the XML file.
        UnsupportedFeatureException - The document is not a PDF, but an XFA document. See pdftools.pdf.Document.getXfa for more information on how to detect and handle XFA documents.
        NotFoundException - A required font is missing from the installed font directories.
        java.lang.IllegalArgumentException - if analysis is null
        java.lang.IllegalArgumentException - if document is null
        java.lang.IllegalArgumentException - if outStream is null
      • convert

        public Document convert​(AnalysisResult analysis,
                                Document document,
                                Stream outStream,
                                ConversionOptions options)
                         throws java.io.IOException,
                                NotFoundException,
                                GenericException,
                                LicenseException,
                                CorruptException,
                                ConformanceException,
                                UnsupportedFeatureException,
                                ProcessingException

        Convert a document to PDF/A.

        Note that it is highly recommended to use Converter.ConversionEventListener to detect critical conversion events.
        Parameters:
        analysis - The result of the document's analysis using pdftools.pdfa.validation.Validator.analyze.
        document - The document to convert
        outStream - The stream where the converted document is written
        options - The conversion options
        Returns:
        The result of the conversion
        Throws:
        LicenseException - The license check has failed.
        java.lang.IllegalArgumentException - The outOptions argument is invalid.
        java.lang.IllegalArgumentException - The output stream could not be opened for writing.
        java.lang.IllegalStateException - The document has already been closed.
        java.lang.IllegalArgumentException - The analysis has already been closed, e.g. due to a previous conversion.
        java.lang.IllegalArgumentException - The PDF/A version of the analysis and the conversion options do not match.
        java.lang.IllegalArgumentException - The analysis is not the analysis result of document.
        java.io.IOException - Error reading from or writing to the outStream.
        ConformanceException - The conformance required by options cannot be achieved.
        • PDF/A level U: All text of the input document must be extractable.
        • PDF/A level A: In addition to the requirements of level U, the input document must be tagged.
        ConformanceException - The PDF/A version of the conformances of analysis and options differ. The same PDF/A version must be used for the analysis and conversion.
        java.lang.IllegalArgumentException - The outOptions specifies document encryption, which is not allowed in PDF/A documents.
        GenericException - The document cannot be converted to PDF/A.
        CorruptException - The analysis has been stopped.
        ProcessingException - Failed to add the invoice file. Possible reasons include an invalid XML format, or that the invoice type conflicts with the content of the XML file.
        UnsupportedFeatureException - The document is not a PDF, but an XFA document. See pdftools.pdf.Document.getXfa for more information on how to detect and handle XFA documents.
        NotFoundException - A required font is missing from the installed font directories.
        java.lang.IllegalArgumentException - if analysis is null
        java.lang.IllegalArgumentException - if document is null
        java.lang.IllegalArgumentException - if outStream is null
      • convert

        public Document convert​(AnalysisResult analysis,
                                Document document,
                                Stream outStream,
                                ConversionOptions options,
                                OutputOptions outOptions)
                         throws java.io.IOException,
                                NotFoundException,
                                GenericException,
                                LicenseException,
                                CorruptException,
                                ConformanceException,
                                UnsupportedFeatureException,
                                ProcessingException

        Convert a document to PDF/A.

        Note that it is highly recommended to use Converter.ConversionEventListener to detect critical conversion events.
        Parameters:
        analysis - The result of the document's analysis using pdftools.pdfa.validation.Validator.analyze.
        document - The document to convert
        outStream - The stream where the converted document is written
        options - The conversion options
        outOptions - The output options object
        Returns:
        The result of the conversion
        Throws:
        LicenseException - The license check has failed.
        java.lang.IllegalArgumentException - The outOptions argument is invalid.
        java.lang.IllegalArgumentException - The output stream could not be opened for writing.
        java.lang.IllegalStateException - The document has already been closed.
        java.lang.IllegalArgumentException - The analysis has already been closed, e.g. due to a previous conversion.
        java.lang.IllegalArgumentException - The PDF/A version of the analysis and the conversion options do not match.
        java.lang.IllegalArgumentException - The analysis is not the analysis result of document.
        java.io.IOException - Error reading from or writing to the outStream.
        ConformanceException - The conformance required by options cannot be achieved.
        • PDF/A level U: All text of the input document must be extractable.
        • PDF/A level A: In addition to the requirements of level U, the input document must be tagged.
        ConformanceException - The PDF/A version of the conformances of analysis and options differ. The same PDF/A version must be used for the analysis and conversion.
        java.lang.IllegalArgumentException - The outOptions specifies document encryption, which is not allowed in PDF/A documents.
        GenericException - The document cannot be converted to PDF/A.
        CorruptException - The analysis has been stopped.
        ProcessingException - Failed to add the invoice file. Possible reasons include an invalid XML format, or that the invoice type conflicts with the content of the XML file.
        UnsupportedFeatureException - The document is not a PDF, but an XFA document. See pdftools.pdf.Document.getXfa for more information on how to detect and handle XFA documents.
        NotFoundException - A required font is missing from the installed font directories.
        java.lang.IllegalArgumentException - if analysis is null
        java.lang.IllegalArgumentException - if document is null
        java.lang.IllegalArgumentException - if outStream is null