Class PdfWriter

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public class PdfWriter extends PdfOutputStream
  • Field Details

    • properties

      protected WriterProperties properties
    • isUserWarnedAboutAcroFormCopying

      protected boolean isUserWarnedAboutAcroFormCopying
  • Constructor Details

    • PdfWriter

      public PdfWriter (File file) throws IOException
      Create a PdfWriter writing to the passed File and with default writer properties.
      Parameters:
      file - File to write to.
      Throws:
      FileNotFoundException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
      IOException
    • PdfWriter

      public PdfWriter (OutputStream os)
      Create a PdfWriter writing to the passed outputstream and with default writer properties.
      Parameters:
      os - Outputstream to write to.
    • PdfWriter

      public PdfWriter (OutputStream os, WriterProperties properties)
      Creates PdfWriter instance, which writes to the passed OutputStream, using provided WriterProperties.
      Parameters:
      os - OutputStream in which writing should happen
      properties - WriterProperties to be used during the writing
    • PdfWriter

      public PdfWriter (String filename) throws IOException
      Create a PdfWriter writing to the passed filename and with default writer properties.
      Parameters:
      filename - filename of the resulting pdf.
      Throws:
      FileNotFoundException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
      IOException
    • PdfWriter

      public PdfWriter (String filename, WriterProperties properties) throws IOException
      Create a PdfWriter writing to the passed filename and using the passed writer properties.
      Parameters:
      filename - filename of the resulting pdf.
      properties - writerproperties to use.
      Throws:
      FileNotFoundException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
      IOException
  • Method Details

    • isFullCompression

      public boolean isFullCompression()
      Indicates if to use full compression mode.
      Returns:
      true if to use full compression, false otherwise.
    • getCompressionLevel

      public int getCompressionLevel()
      Gets default compression level for @see PdfStream. For more details @see DeflaterOutputStream.
      Returns:
      compression level.
    • setCompressionLevel

      public PdfWriter setCompressionLevel (int compressionLevel)
      Sets default compression level for @see PdfStream. For more details @see DeflaterOutputStream.
      Parameters:
      compressionLevel - compression level.
      Returns:
      this PdfWriter instance
    • getPdfVersion

      public PdfVersion getPdfVersion()
      Gets defined pdf version for the document.
      Returns:
      version for the document
    • getProperties

      public WriterProperties getProperties()
      Gets the writer properties.
      Returns:
      The WriterProperties of the current PdfWriter.
    • setSmartMode

      public PdfWriter setSmartMode (boolean smartMode)
      Sets the smart mode.
      In smart mode when resources (such as fonts, images,...) are encountered, a reference to these resources is saved in a cache, so that they can be reused. This requires more memory, but reduces the file size of the resulting PDF document.
      Parameters:
      smartMode - True for enabling smart mode.
      Returns:
      this PdfWriter instance
    • initCryptoIfSpecified

      protected void initCryptoIfSpecified (PdfVersion version)
      Initializes PdfEncryption object if any encryption is specified in WriterProperties.
      Parameters:
      version - PdfVersion version of the document in question
    • flushObject

      protected void flushObject (PdfObject pdfObject, boolean canBeInObjStm)
      Flushes the object. Override this method if you want to define custom behaviour for object flushing.
      Parameters:
      pdfObject - object to flush.
      canBeInObjStm - indicates whether object can be placed into object stream.
    • copyObject

      protected PdfObject copyObject (PdfObject obj, PdfDocument documentTo, boolean allowDuplicating)
      Copies a PdfObject either stand alone or as part of the PdfDocument passed as documentTo.
      Parameters:
      obj - object to copy
      documentTo - optional target document
      allowDuplicating - allow that some objects will become duplicated by this action
      Returns:
      the copies object
    • copyObject

      protected PdfObject copyObject (PdfObject obj, PdfDocument documentTo, boolean allowDuplicating, ICopyFilter copyFilter)
      Copies a PdfObject either stand alone or as part of the PdfDocument passed as documentTo.
      Parameters:
      obj - object to copy
      documentTo - optional target document
      allowDuplicating - allow that some objects will become duplicated by this action
      copyFilter - ICopyFilter a filter to apply while copying arrays and dictionaries * Use NullCopyFilter for no filtering
      Returns:
      the copies object
    • writeToBody

      protected void writeToBody (PdfObject pdfObj)
      Writes object to body of PDF document.
      Parameters:
      pdfObj - object to write.
    • writeHeader

      protected void writeHeader()
      Writes PDF header.
    • flushWaitingObjects

      protected void flushWaitingObjects (Set<PdfIndirectReference> forbiddenToFlush)
      Flushes all objects which have not been flushed yet.
      Parameters:
      forbiddenToFlush - a Set of references that are forbidden to be flushed automatically.
    • flushModifiedWaitingObjects

      protected void flushModifiedWaitingObjects (Set<PdfIndirectReference> forbiddenToFlush)
      Flushes all modified objects which have not been flushed yet. Used in case incremental updates.
      Parameters:
      forbiddenToFlush - a Set of references that are forbidden to be flushed automatically.