Package com.pdftools.pdfa.conversion
Class Converter
- java.lang.Object
-
- com.pdftools.internal.NativeBase
-
- com.pdftools.internal.NativeObject
-
- com.pdftools.pdfa.conversion.Converter
-
public class Converter extends NativeObject
The class to convert PDF documents to PDF/A
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classConverter.ConversionEventThe event for errors, warnings, and informational messages that occur during conversionstatic interfaceConverter.ConversionEventListenerListener interface for theConverter.ConversionEventevent.
-
Constructor Summary
Constructors Constructor Description Converter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAssociatedFile(Stream embeddedFile, java.lang.String name)Prepares the associated file for embedding.voidaddAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate)Prepares the associated file for embedding.voidaddAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship)Prepares the associated file for embedding.voidaddAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType)Prepares the associated file for embedding.voidaddAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType, java.lang.String description)Prepares the associated file for embedding.voidaddAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType, java.lang.String description, java.time.OffsetDateTime modificationDate)Prepares the associated file for embedding.voidaddConversionEventListener(Converter.ConversionEventListener listener)Add a listener for theConverter.ConversionEventevent.voidaddInvoiceXml(InvoiceType invoiceType, Stream invoice)Prepares the invoice XML file (ZUGFeRD or Factur-X) for embedding.voidaddInvoiceXml(InvoiceType invoiceType, Stream invoice, AFRelationship afRelationship)Prepares the invoice XML file (ZUGFeRD or Factur-X) for embedding.Documentconvert(AnalysisResult analysis, Document document, Stream outStream)Convert a document to PDF/A.Documentconvert(AnalysisResult analysis, Document document, Stream outStream, ConversionOptions options)Convert a document to PDF/A.Documentconvert(AnalysisResult analysis, Document document, Stream outStream, ConversionOptions options, OutputOptions outOptions)Convert a document to PDF/A.voidremoveConversionEventListener(Converter.ConversionEventListener listener)Remove registered listener for theConverter.ConversionEventevent.-
Methods inherited from class com.pdftools.internal.NativeObject
equals, hashCode
-
-
-
-
Method Detail
-
addConversionEventListener
public void addConversionEventListener(Converter.ConversionEventListener listener)
Add a listener for theConverter.ConversionEventevent.- Parameters:
listener- Listener for theConverter.ConversionEventevent. If a listener is added that is already registered, it is ignored.
-
removeConversionEventListener
public void removeConversionEventListener(Converter.ConversionEventListener listener)
Remove registered listener for theConverter.ConversionEventevent.- Parameters:
listener- Listener for theConverter.ConversionEventevent that should be removed. If the listener is not registered, it is ignored.
-
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- ifinvoiceTypeisnulljava.lang.IllegalArgumentException- ifinvoiceisnull
-
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- ifinvoiceTypeisnulljava.lang.IllegalArgumentException- ifinvoiceisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.associate- The object to associate the embedded file with,-1for none,0for document, number greater than 0 for respective page. Ifnull, the default value is0for PDF/A-3 and-1otherwise.- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.associate- The object to associate the embedded file with,-1for none,0for document, number greater than 0 for respective page. Ifnull, the default value is0for PDF/A-3 and-1otherwise.afRelationship- The relationship of the embedded file to the object associate. (Ignored, ifassociateis-1.) Ifnull, the default value isAFRelationship.UNSPECIFIED.- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.associate- The object to associate the embedded file with,-1for none,0for document, number greater than 0 for respective page. Ifnull, the default value is0for PDF/A-3 and-1otherwise.afRelationship- The relationship of the embedded file to the object associate. (Ignored, ifassociateis-1.) Ifnull, the default value isAFRelationship.UNSPECIFIED.mimeType- MIME Type of the embedded file. Common values other than the default are"application/pdf","application/xml"or"application/msword". Ifnull, the default value is"application/octet-stream".- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType, java.lang.String description) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.associate- The object to associate the embedded file with,-1for none,0for document, number greater than 0 for respective page. Ifnull, the default value is0for PDF/A-3 and-1otherwise.afRelationship- The relationship of the embedded file to the object associate. (Ignored, ifassociateis-1.) Ifnull, the default value isAFRelationship.UNSPECIFIED.mimeType- MIME Type of the embedded file. Common values other than the default are"application/pdf","application/xml"or"application/msword". Ifnull, the default value is"application/octet-stream".description- A description of the embedded file. This is presented to the user when viewing the list of embedded files. Ifnull, the default value is"".- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
addAssociatedFile
public void addAssociatedFile(Stream embeddedFile, java.lang.String name, java.lang.Integer associate, AFRelationship afRelationship, java.lang.String mimeType, java.lang.String description, java.time.OffsetDateTime modificationDate) throws java.io.IOException
Prepares the associated file for embedding.
Add a file to the document’s embedded files. For PDF/A-3, the embedded file is associated with an object of the document, i.e. it is an associated file. The file is embedded as-is. Embedding files is not allowed for PDF/A-1 and restricted to PDF/A conforming files for PDF/A-2.- Parameters:
embeddedFile- The stream of the embedded file.name- The name used for the embedded file. This name is presented to the user when viewing the list of embedded files.associate- The object to associate the embedded file with,-1for none,0for document, number greater than 0 for respective page. Ifnull, the default value is0for PDF/A-3 and-1otherwise.afRelationship- The relationship of the embedded file to the object associate. (Ignored, ifassociateis-1.) Ifnull, the default value isAFRelationship.UNSPECIFIED.mimeType- MIME Type of the embedded file. Common values other than the default are"application/pdf","application/xml"or"application/msword". Ifnull, the default value is"application/octet-stream".description- A description of the embedded file. This is presented to the user when viewing the list of embedded files. Ifnull, the default value is"".modificationDate- The modify date of the file. Ifnull, the default value is modification date of the file on the file system or current time, if not available.- Throws:
java.lang.IllegalArgumentException- The associated file stream could not be opened for reading.java.lang.IllegalArgumentException- Theassociateargument is invalid.java.io.IOException- Error reading fromembeddedFile.java.lang.IllegalArgumentException- ifembeddedFileisnulljava.lang.IllegalArgumentException- ifnameisnull
-
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 useConverter.ConversionEventListenerto detect critical conversion events.- Parameters:
analysis- The result of the document's analysis usingpdftools.pdfa.validation.Validator.analyze.document- The document to convertoutStream- The stream where the converted document is written- Returns:
- The result of the conversion
- Throws:
LicenseException- The license check has failed.java.lang.IllegalArgumentException- TheoutOptionsargument is invalid.java.lang.IllegalArgumentException- The output stream could not be opened for writing.java.lang.IllegalStateException- Thedocumenthas already been closed.java.lang.IllegalArgumentException- Theanalysishas 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- Theanalysisis not the analysis result ofdocument.java.io.IOException- Error reading from or writing to theoutStream.ConformanceException- The conformance required byoptionscannot 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 ofanalysisandoptionsdiffer. The same PDF/A version must be used for the analysis and conversion.java.lang.IllegalArgumentException- TheoutOptionsspecifies 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. Seepdftools.pdf.Document.getXfafor more information on how to detect and handle XFA documents.NotFoundException- A required font is missing from the installed font directories.java.lang.IllegalStateException- Invalid associate value for an embedded file.java.lang.IllegalArgumentException- ifanalysisisnulljava.lang.IllegalArgumentException- ifdocumentisnulljava.lang.IllegalArgumentException- ifoutStreamisnull
-
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 useConverter.ConversionEventListenerto detect critical conversion events.- Parameters:
analysis- The result of the document's analysis usingpdftools.pdfa.validation.Validator.analyze.document- The document to convertoutStream- The stream where the converted document is writtenoptions- The conversion options- Returns:
- The result of the conversion
- Throws:
LicenseException- The license check has failed.java.lang.IllegalArgumentException- TheoutOptionsargument is invalid.java.lang.IllegalArgumentException- The output stream could not be opened for writing.java.lang.IllegalStateException- Thedocumenthas already been closed.java.lang.IllegalArgumentException- Theanalysishas 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- Theanalysisis not the analysis result ofdocument.java.io.IOException- Error reading from or writing to theoutStream.ConformanceException- The conformance required byoptionscannot 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 ofanalysisandoptionsdiffer. The same PDF/A version must be used for the analysis and conversion.java.lang.IllegalArgumentException- TheoutOptionsspecifies 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. Seepdftools.pdf.Document.getXfafor more information on how to detect and handle XFA documents.NotFoundException- A required font is missing from the installed font directories.java.lang.IllegalStateException- Invalid associate value for an embedded file.java.lang.IllegalArgumentException- ifanalysisisnulljava.lang.IllegalArgumentException- ifdocumentisnulljava.lang.IllegalArgumentException- ifoutStreamisnull
-
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 useConverter.ConversionEventListenerto detect critical conversion events.- Parameters:
analysis- The result of the document's analysis usingpdftools.pdfa.validation.Validator.analyze.document- The document to convertoutStream- The stream where the converted document is writtenoptions- The conversion optionsoutOptions- The output options object- Returns:
- The result of the conversion
- Throws:
LicenseException- The license check has failed.java.lang.IllegalArgumentException- TheoutOptionsargument is invalid.java.lang.IllegalArgumentException- The output stream could not be opened for writing.java.lang.IllegalStateException- Thedocumenthas already been closed.java.lang.IllegalArgumentException- Theanalysishas 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- Theanalysisis not the analysis result ofdocument.java.io.IOException- Error reading from or writing to theoutStream.ConformanceException- The conformance required byoptionscannot 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 ofanalysisandoptionsdiffer. The same PDF/A version must be used for the analysis and conversion.java.lang.IllegalArgumentException- TheoutOptionsspecifies 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. Seepdftools.pdf.Document.getXfafor more information on how to detect and handle XFA documents.NotFoundException- A required font is missing from the installed font directories.java.lang.IllegalStateException- Invalid associate value for an embedded file.java.lang.IllegalArgumentException- ifanalysisisnulljava.lang.IllegalArgumentException- ifdocumentisnulljava.lang.IllegalArgumentException- ifoutStreamisnull
-
-