Package com.itextpdf.kernel.pdf
Class PdfWriter
- java.lang.Object
-
- java.io.OutputStream
-
- com.itextpdf.io.source.OutputStream<PdfOutputStream>
-
- com.itextpdf.kernel.pdf.PdfOutputStream
-
- com.itextpdf.kernel.pdf.PdfWriter
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,AutoCloseable
public class PdfWriter extends PdfOutputStream
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
isUserWarnedAboutAcroFormCopying
protected WriterProperties
properties
-
Fields inherited from class com.itextpdf.kernel.pdf.PdfOutputStream
crypto, document
-
Fields inherited from class com.itextpdf.io.source.OutputStream
closeStream, currentPos, outputStream
-
-
Constructor Summary
Constructors Constructor Description PdfWriter(File file)
Create a PdfWriter writing to the passed File and with default writer properties.PdfWriter(OutputStream os)
Create a PdfWriter writing to the passed outputstream and with default writer properties.PdfWriter(OutputStream os, WriterProperties properties)
PdfWriter(String filename)
Create a PdfWriter writing to the passed filename and with default writer properties.PdfWriter(String filename, WriterProperties properties)
Create a PdfWriter writing to the passed filename and using the passed writer properties.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PdfObject
copyObject(PdfObject obj, PdfDocument documentTo, boolean allowDuplicating)
Copies a PdfObject either stand alone or as part of the PdfDocument passed as documentTo.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.protected void
flushModifiedWaitingObjects(Set<PdfIndirectReference> forbiddenToFlush)
Flushes all modified objects which have not been flushed yet.protected void
flushObject(PdfObject pdfObject, boolean canBeInObjStm)
Flushes the object.protected void
flushWaitingObjects(Set<PdfIndirectReference> forbiddenToFlush)
Flushes all objects which have not been flushed yet.int
getCompressionLevel()
Gets default compression level for @see PdfStream.protected void
initCryptoIfSpecified(PdfVersion version)
boolean
isFullCompression()
Indicates if to use full compression mode.PdfWriter
setCompressionLevel(int compressionLevel)
Sets default compression level for @see PdfStream.PdfWriter
setSmartMode(boolean smartMode)
Sets the smart mode.protected void
writeHeader()
Writes PDF header.protected void
writeToBody(PdfObject pdfObj)
Writes object to body of PDF document.-
Methods inherited from class com.itextpdf.kernel.pdf.PdfOutputStream
checkEncryption, containsFlateFilter, decodeFlateBytes, updateCompressionFilter, write
-
Methods inherited from class com.itextpdf.io.source.OutputStream
assignBytes, close, flush, getCurrentPos, getHighPrecision, getLocalHighPrecision, getOutputStream, isCloseStream, reset, setCloseStream, setHighPrecision, setLocalHighPrecision, write, write, write, writeByte, writeByte, writeBytes, writeBytes, writeDouble, writeDouble, writeFloat, writeFloat, writeFloats, writeInteger, writeLong, writeNewLine, writeSpace, writeString
-
Methods inherited from class java.io.OutputStream
nullOutputStream
-
-
-
-
Field Detail
-
properties
protected WriterProperties properties
-
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(OutputStream os, WriterProperties properties)
-
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 @seeDeflaterOutputStream
.- Returns:
- compression level.
-
setCompressionLevel
public PdfWriter setCompressionLevel(int compressionLevel)
Sets default compression level for @see PdfStream. For more details @seeDeflaterOutputStream
.- 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 * UseNullCopyFilter
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
- aSet
ofreferences
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
- aSet
ofreferences
that are forbidden to be flushed automatically.
-
-