Class PdfWriter

    • Field Detail

      • isUserWarnedAboutAcroFormCopying

        protected boolean isUserWarnedAboutAcroFormCopying
    • Constructor Detail

      • PdfWriter

        public PdfWriter​(File file)
                  throws FileNotFoundException
        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
      • 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​(String filename)
                  throws FileNotFoundException
        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
      • PdfWriter

        public PdfWriter​(String filename,
                         WriterProperties properties)
                  throws FileNotFoundException
        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
    • Method Detail

      • 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
      • 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)
      • 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.