Class PdfAWriter

All Implemented Interfaces:
DocListener, ElementListener, PdfAnnotations, PdfDocumentActions, PdfEncryptionSettings, PdfPageActions, PdfRunDirection, PdfVersion, PdfViewerPreferences, EventListener

public class PdfAWriter extends PdfWriter
Extension of PdfWriter that will attempt to create a PDF/A file instead of an ordinary PDF file.
See Also:
  • Field Details

    • MimeTypePdf

      public static String MimeTypePdf
    • MimeTypeOctetStream

      public static String MimeTypeOctetStream
    • COUNTER

      protected Counter COUNTER
  • Constructor Details

    • PdfAWriter

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

      protected PdfAWriter(PdfDocument document, 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 Details

    • getInstance

      public static PdfAWriter getInstance(Document document, 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, 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(String outputConditionIdentifier, String outputCondition, String registryName, String info, ICC_Profile colorProfile) throws 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:
      IOException - on error
      See Also:
    • setOutputIntents

      public boolean setOutputIntents(PdfReader reader, boolean checkExistence) throws 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:
      IOException - on error
    • setPDFXConformance

      public void setPDFXConformance(int pdfx)
      Always throws an exception since PDF/X conformance level cannot be set for PDF/A conformant documents.
      Overrides:
      setPDFXConformance in class PdfWriter
      Parameters:
      pdfx -
      See Also:
    • getTtfUnicodeWriter

      protected TtfUnicodeWriter getTtfUnicodeWriter()
      Overrides:
      getTtfUnicodeWriter in class PdfWriter
      See Also:
    • createXmpWriter

      protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, PdfDictionary info) throws IOException
      Overrides:
      createXmpWriter in class PdfWriter
      Throws:
      IOException
      See Also:
    • createXmpWriter

      protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, HashMap<String,String> info) throws IOException
      Overrides:
      createXmpWriter in class PdfWriter
      Throws:
      IOException
    • initPdfIsoConformance

      protected PdfIsoConformance initPdfIsoConformance()
      Overrides:
      initPdfIsoConformance in class PdfWriter
      See Also:
    • getCounter

      protected Counter getCounter()
      Overrides:
      getCounter in class PdfWriter
    • cacheObject

      protected void cacheObject(PdfIndirectObject iobj)
      Description copied from class: PdfWriter
      Use this method for caching objects.
      Overrides:
      cacheObject in class PdfWriter
      See Also:
    • getPdfAChecker

      private PdfAChecker getPdfAChecker()
    • addFileAttachment

      public PdfFileSpecification addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue, PdfDictionary fileParameter) throws 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:
      IOException - on error
    • addFileAttachment

      public PdfFileSpecification addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue) throws 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:
      IOException - on error
    • addFileAttachment

      public void addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) throws 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:
      IOException - on error
    • addFileAttachment

      public void addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay) throws 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:
      IOException - on error
    • addPdfAttachment

      public void addPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay) throws 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:
      IOException - on error
    • addPdfAttachment

      public void addPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) throws 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:
      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:
    • 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)