Class PdfAWriter

    • Field Detail

      • MimeTypePdf

        public static java.lang.String MimeTypePdf
      • MimeTypeOctetStream

        public static java.lang.String MimeTypeOctetStream
      • COUNTER

        protected Counter COUNTER
    • Constructor Detail

      • PdfAWriter

        protected PdfAWriter​(PdfAConformanceLevel conformanceLevel)
        Parameters:
        conformanceLevel - PDF/A conformance level of a new PDF document
      • PdfAWriter

        protected PdfAWriter​(PdfDocument document,
                             java.io.OutputStream os,
                             PdfAConformanceLevel conformanceLevel)
        Constructs a PdfAWriter.

        Remark: a PdfAWriter can only be constructed by calling the method getInstance(Document document, OutputStream os, PdfAconformanceLevel conformanceLevel).

        Parameters:
        document - the PdfDocument that has to be written
        os - the OutputStream the writer has to write to
        conformanceLevel - PDF/A conformance level of a new PDF document
    • Method Detail

      • getInstance

        public static PdfAWriter getInstance​(Document document,
                                             java.io.OutputStream os,
                                             PdfAConformanceLevel conformanceLevel)
                                      throws DocumentException
        Use this method to get an instance of the PdfWriter.
        Parameters:
        document - The Document that has to be written
        os - The OutputStream the writer has to write to.
        conformanceLevel - PDF/A conformance level of a new PDF document
        Returns:
        a new PdfWriter
        Throws:
        DocumentException - on error
      • getInstance

        public static PdfAWriter getInstance​(Document document,
                                             java.io.OutputStream os,
                                             DocListener listener,
                                             PdfAConformanceLevel conformanceLevel)
                                      throws DocumentException
        Use this method to get an instance of the PdfWriter.
        Parameters:
        document - The Document that has to be written
        os - The OutputStream the writer has to write to.
        listener - A DocListener to pass to the PdfDocument.
        conformanceLevel - PDF/A conformance level of a new PDF document
        Returns:
        a new PdfWriter
        Throws:
        DocumentException - on error
      • setPdfVersion

        public static void setPdfVersion​(PdfWriter writer,
                                         PdfAConformanceLevel conformanceLevel)
        Sets the Confomance level.
        Parameters:
        writer -
        conformanceLevel -
      • setOutputIntents

        public void setOutputIntents​(java.lang.String outputConditionIdentifier,
                                     java.lang.String outputCondition,
                                     java.lang.String registryName,
                                     java.lang.String info,
                                     ICC_Profile colorProfile)
                              throws java.io.IOException
        Description copied from class: PdfWriter
        Sets the values of the output intent dictionary. Null values are allowed to suppress any key.
        Overrides:
        setOutputIntents in class PdfWriter
        Parameters:
        outputConditionIdentifier - a value
        outputCondition - a value
        registryName - a value
        info - a value
        colorProfile - a value
        Throws:
        java.io.IOException - on error
        See Also:
        PdfWriter.setOutputIntents(String, String, String, String, ICC_Profile)
      • setOutputIntents

        public boolean setOutputIntents​(PdfReader reader,
                                        boolean checkExistence)
                                 throws java.io.IOException
        Copies the output intent dictionary from other document to this one.
        Overrides:
        setOutputIntents in class PdfWriter
        Parameters:
        reader - the other document
        checkExistence - true to just check for the existence of a valid output intent dictionary, false to insert the dictionary if it exists
        Returns:
        true if the output intent dictionary exists, false otherwise
        Throws:
        java.io.IOException - on error
      • createXmpWriter

        protected XmpWriter createXmpWriter​(java.io.ByteArrayOutputStream baos,
                                            java.util.HashMap<java.lang.String,​java.lang.String> info)
                                     throws java.io.IOException
        Overrides:
        createXmpWriter in class PdfWriter
        Throws:
        java.io.IOException
      • getPdfAChecker

        private PdfAChecker getPdfAChecker()
      • addFileAttachment

        public PdfFileSpecification addFileAttachment​(java.lang.String description,
                                                      byte[] fileStore,
                                                      java.lang.String file,
                                                      java.lang.String fileDisplay,
                                                      java.lang.String mimeType,
                                                      PdfName afRelationshipValue,
                                                      PdfDictionary fileParameter)
                                               throws java.io.IOException
        Use this method to add a file attachment at the document level.
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        mimeType - mime type of the file
        afRelationshipValue - AFRelationship key value, @see AFRelationshipValue. If null, @see AFRelationshipValue.Unspecified will be added.
        fileParameter - the optional extra file parameters such as the creation or modification date
        Returns:
        the file specification
        Throws:
        java.io.IOException - on error
      • addFileAttachment

        public PdfFileSpecification addFileAttachment​(java.lang.String description,
                                                      byte[] fileStore,
                                                      java.lang.String file,
                                                      java.lang.String fileDisplay,
                                                      java.lang.String mimeType,
                                                      PdfName afRelationshipValue)
                                               throws java.io.IOException
        Use this method to add a file attachment at the document level.
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        mimeType - mime type of the file
        afRelationshipValue - AFRelationship key value, @see AFRelationshipValue. If null, @see AFRelationshipValue.Unspecified will be added.
        Returns:
        the file specification
        Throws:
        java.io.IOException - on error
      • addFileAttachment

        public void addFileAttachment​(java.lang.String description,
                                      byte[] fileStore,
                                      java.lang.String file,
                                      java.lang.String fileDisplay,
                                      PdfName afRelationshipValue)
                               throws java.io.IOException
        Use this method to add a file attachment at the document level. Adds @see MimeTypeOctetStream as mime type.
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        afRelationshipValue - AFRelationship key value, @see AFRelationshipValue. If null, @see AFRelationshipValue.Unspecified will be added.
        Throws:
        java.io.IOException - on error
      • addFileAttachment

        public void addFileAttachment​(java.lang.String description,
                                      byte[] fileStore,
                                      java.lang.String file,
                                      java.lang.String fileDisplay)
                               throws java.io.IOException
        Use this method to add a file attachment at the document level. Adds @see MimeTypeOctetStream as mime type and @see AFRelationshipValue.Unspecified as AFRelationship.
        Overrides:
        addFileAttachment in class PdfWriter
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        Throws:
        java.io.IOException - on error
      • addPdfAttachment

        public void addPdfAttachment​(java.lang.String description,
                                     byte[] fileStore,
                                     java.lang.String file,
                                     java.lang.String fileDisplay)
                              throws java.io.IOException
        Use this method to add a file attachment at the document level. Adds @see MimeTypePdf as mime type and @see AFRelationshipValue.Unspecified as AFRelationship.
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        Throws:
        java.io.IOException - on error
      • addPdfAttachment

        public void addPdfAttachment​(java.lang.String description,
                                     byte[] fileStore,
                                     java.lang.String file,
                                     java.lang.String fileDisplay,
                                     PdfName afRelationshipValue)
                              throws java.io.IOException
        Use this method to add a file attachment at the document level. Adds @see MimeTypePdf as mime type.
        Parameters:
        description - the file description
        fileStore - an array with the file. If it's null the file will be read from the disk
        file - the path to the file. It will only be used if fileStore is not null
        fileDisplay - the actual file name stored in the pdf
        afRelationshipValue - AFRelationship key value, AFRelationshipValue. If null, @see AFRelationshipValue.Unspecified will be added.
        Throws:
        java.io.IOException - on error
      • close

        public void close()
        Description copied from class: PdfWriter
        Signals that the Document was closed and that no other Elements will be added.

        The pages-tree is built and written to the outputstream. A Catalog is constructed, as well as an Info-object, the reference table is composed and everything is written to the outputstream embedded in a Trailer.

        Specified by:
        close in interface DocListener
        Overrides:
        close in class PdfWriter
        See Also:
        DocWriter.close()
      • createAnnotation

        public PdfAnnotation createAnnotation​(Rectangle rect,
                                              PdfName subtype)
        Description copied from class: PdfWriter
        A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.
        Overrides:
        createAnnotation in class PdfWriter
        Returns:
      • createAnnotation

        public PdfAnnotation createAnnotation​(float llx,
                                              float lly,
                                              float urx,
                                              float ury,
                                              PdfString title,
                                              PdfString content,
                                              PdfName subtype)
        Description copied from class: PdfWriter
        A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.
        Overrides:
        createAnnotation in class PdfWriter
        Returns:
      • createAnnotation

        public PdfAnnotation createAnnotation​(float llx,
                                              float lly,
                                              float urx,
                                              float ury,
                                              PdfAction action,
                                              PdfName subtype)
        Description copied from class: PdfWriter
        A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.
        Overrides:
        createAnnotation in class PdfWriter
        Returns:
      • useExternalCacheForPdfA

        public void useExternalCacheForPdfA​(TempFileCache fileCache)