public class COSWriter extends Object implements ICOSVisitor, Closeable
| Modifier and Type | Field and Description |
|---|---|
static byte[] |
ARRAY_CLOSE
The array close token.
|
static byte[] |
ARRAY_OPEN
The array open token.
|
static byte[] |
COMMENT
The start to a PDF comment.
|
static byte[] |
DICT_CLOSE
The dictionary close token.
|
static byte[] |
DICT_OPEN
The dictionary open token.
|
static byte[] |
ENDOBJ
The end object token.
|
static byte[] |
ENDSTREAM
The close stream token.
|
static byte[] |
EOF
The EOF constant.
|
static byte[] |
GARBAGE
Garbage bytes used to create the PDF header.
|
static byte[] |
OBJ
The starting object token.
|
static byte[] |
REFERENCE
The reference token.
|
static byte[] |
SPACE
space character.
|
static byte[] |
STARTXREF
The start xref token.
|
static byte[] |
STREAM
The open stream token.
|
static byte[] |
TRAILER
The trailer token.
|
static byte[] |
VERSION
The output version of the PDF.
|
static byte[] |
XREF
The XREF token.
|
static byte[] |
XREF_FREE
The xref free token.
|
static byte[] |
XREF_USED
The xref used token.
|
| Constructor and Description |
|---|
COSWriter(OutputStream os)
COSWriter constructor comment.
|
COSWriter(OutputStream outputStream,
RandomAccessRead inputData)
COSWriter constructor for incremental updates.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addXRefEntry(COSWriterXRefEntry entry)
add an entry in the x ref table for later dump.
|
void |
close()
This will close the stream.
|
protected void |
doWriteBody(COSDocument doc)
This will write the body of the document.
|
protected void |
doWriteHeader(COSDocument doc)
This will write the header to the PDF document.
|
void |
doWriteObject(COSBase obj)
This will write a COS object.
|
protected void |
doWriteTrailer(COSDocument doc)
This will write the trailer to the PDF document.
|
InputStream |
getDataToSign()
Return the stream of PDF data to be signed.
|
protected long |
getNumber()
This will get the current object number.
|
Map<COSBase,COSObjectKey> |
getObjectKeys()
This will get all available object keys.
|
protected OutputStream |
getOutput()
This will get the output stream.
|
protected COSStandardOutputStream |
getStandardOutput()
This will get the standard output stream.
|
protected long |
getStartxref()
This will get the current start xref.
|
protected List<COSWriterXRefEntry> |
getXRefEntries()
This will get the xref entries.
|
protected Long[] |
getXRefRanges(List<COSWriterXRefEntry> xRefEntriesList)
check the xref entries and write out the ranges.
|
protected void |
setNumber(long newNumber)
This will set the current object number.
|
protected void |
setStartxref(long newStartxref)
This will set the start xref.
|
Object |
visitFromArray(COSArray obj)
Notification of visit to Array object.
|
Object |
visitFromBoolean(COSBoolean obj)
Notification of visit to boolean object.
|
Object |
visitFromDictionary(COSDictionary obj)
Notification of visit to dictionary object.
|
Object |
visitFromDocument(COSDocument doc)
Notification of visit to document object.
|
Object |
visitFromFloat(COSFloat obj)
Notification of visit to float object.
|
Object |
visitFromInt(COSInteger obj)
Notification of visit to integer object.
|
Object |
visitFromName(COSName obj)
Notification of visit to name object.
|
Object |
visitFromNull(COSNull obj)
Notification of visit to null object.
|
Object |
visitFromStream(COSStream obj)
Notification of visit to stream object.
|
Object |
visitFromString(COSString obj)
Notification of visit to string object.
|
void |
write(COSDocument doc)
This will write the pdf document.
|
void |
write(FDFDocument doc)
This will write the fdf document.
|
void |
write(PDDocument doc)
This will write the pdf document.
|
void |
write(PDDocument doc,
SignatureInterface signInterface)
This will write the pdf document.
|
void |
writeExternalSignature(byte[] cmsSignature)
Write externally created signature of PDF data obtained via
getDataToSign() method. |
void |
writeReference(COSBase obj)
visitFromObjRef method comment.
|
static void |
writeString(byte[] bytes,
OutputStream output)
This will output the given text/byte getString as a PDF object.
|
static void |
writeString(COSString string,
OutputStream output)
This will output the given byte getString as a PDF object.
|
public static final byte[] DICT_OPEN
public static final byte[] DICT_CLOSE
public static final byte[] SPACE
public static final byte[] COMMENT
public static final byte[] VERSION
public static final byte[] GARBAGE
public static final byte[] EOF
public static final byte[] REFERENCE
public static final byte[] XREF
public static final byte[] XREF_FREE
public static final byte[] XREF_USED
public static final byte[] TRAILER
public static final byte[] STARTXREF
public static final byte[] OBJ
public static final byte[] ENDOBJ
public static final byte[] ARRAY_OPEN
public static final byte[] ARRAY_CLOSE
public static final byte[] STREAM
public static final byte[] ENDSTREAM
public COSWriter(OutputStream os)
os - The wrapped output stream.public COSWriter(OutputStream outputStream, RandomAccessRead inputData) throws IOException
outputStream - output stream where the new PDF data will be writteninputData - random access read containing source PDF dataIOException - if something went wrongprotected void addXRefEntry(COSWriterXRefEntry entry)
entry - The new entry to add.public void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOException - If the underlying stream throws an exception.protected long getNumber()
public Map<COSBase,COSObjectKey> getObjectKeys()
protected OutputStream getOutput()
protected COSStandardOutputStream getStandardOutput()
protected long getStartxref()
protected List<COSWriterXRefEntry> getXRefEntries()
protected void setNumber(long newNumber)
newNumber - The new object number.protected void setStartxref(long newStartxref)
newStartxref - The new start xref attribute.protected void doWriteBody(COSDocument doc) throws IOException
doc - The document to write the body for.IOException - If there is an error writing the data.public void doWriteObject(COSBase obj) throws IOException
obj - The object to write.IOException - if the output cannot be writtenprotected void doWriteHeader(COSDocument doc) throws IOException
doc - The document to get the data from.IOException - If there is an error writing to the stream.protected void doWriteTrailer(COSDocument doc) throws IOException
doc - The document to create the trailer for.IOException - If there is an IOError while writing the document.public InputStream getDataToSign() throws IOException
write(PDDocument) method should have been called prior.
The created signature should be set using writeExternalSignature(byte[]).
When SignatureInterface instance is used, COSWriter obtains and writes the signature itself.
IllegalStateException - if PDF is not prepared for external signingIOException - if input data is closedpublic void writeExternalSignature(byte[] cmsSignature)
throws IOException
getDataToSign() method.cmsSignature - CMS signature byte arrayIllegalStateException - if PDF is not prepared for external signingIOException - if source data stream is closedprotected Long[] getXRefRanges(List<COSWriterXRefEntry> xRefEntriesList)
example: 0 1 2 5 6 7 8 10
will create a array with follow ranges
0 3 5 4 10 1
this mean that the element 0 is followed by two other related numbers that represent a cluster of the size 3. 5 is follow by three other related numbers and create a cluster of size 4. etc.
xRefEntriesList - list with the xRef entries that was writtenpublic Object visitFromArray(COSArray obj) throws IOException
ICOSVisitorvisitFromArray in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromBoolean(COSBoolean obj) throws IOException
ICOSVisitorvisitFromBoolean in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromDictionary(COSDictionary obj) throws IOException
ICOSVisitorvisitFromDictionary in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromDocument(COSDocument doc) throws IOException
ICOSVisitorvisitFromDocument in interface ICOSVisitordoc - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromFloat(COSFloat obj) throws IOException
ICOSVisitorvisitFromFloat in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromInt(COSInteger obj) throws IOException
ICOSVisitorvisitFromInt in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromName(COSName obj) throws IOException
ICOSVisitorvisitFromName in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromNull(COSNull obj) throws IOException
ICOSVisitorvisitFromNull in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public void writeReference(COSBase obj) throws IOException
obj - The object that is being visited.IOException - If there is an exception while visiting this object.public Object visitFromStream(COSStream obj) throws IOException
ICOSVisitorvisitFromStream in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public Object visitFromString(COSString obj) throws IOException
ICOSVisitorvisitFromString in interface ICOSVisitorobj - The Object that is being visited.IOException - If there is an error while visiting this object.public void write(COSDocument doc) throws IOException
doc - The document to write.IOException - If an error occurs while generating the data.public void write(PDDocument doc) throws IOException
writeExternalSignature(byte[]) should be invoked to set signature after calling this
method.doc - The document to write.IOException - If an error occurs while generating the data.public void write(PDDocument doc, SignatureInterface signInterface) throws IOException
writeExternalSignature(byte[]) should be invoked to set signature after calling this
method.doc - The document to write.signInterface - class to be used for signing; null if external signing would be
performed or there will be no signing at allIOException - If an error occurs while generating the data.IllegalStateException - If the document has an encryption dictionary but no protection
policy.public void write(FDFDocument doc) throws IOException
doc - The document to write.IOException - If an error occurs while generating the data.public static void writeString(COSString string, OutputStream output) throws IOException
string - COSString to be writtenoutput - The stream to write to.IOException - If there is an error writing to the stream.public static void writeString(byte[] bytes,
OutputStream output)
throws IOException
bytes - byte array representation of a string to be writtenoutput - The stream to write to.IOException - If there is an error writing to the stream.Copyright © 2002–2017 The Apache Software Foundation. All rights reserved.