PoDoFo
0.9.1
|
#include <PdfWriter.h>
Inherited by PoDoFo::PdfImmediateWriter [private]
.
Public Member Functions | |
PdfWriter (PdfParser *pParser) | |
PdfWriter (PdfVecObjects *pVecObjects, const PdfObject *pTrailer) | |
void | Write (const char *pszFilename) |
void | Write (PdfOutputDevice *pDevice) |
void | SetWriteMode (EPdfWriteMode eWriteMode) |
EPdfWriteMode | GetWriteMode () const |
void | SetPdfVersion (EPdfVersion eVersion) |
EPdfVersion | GetPdfVersion () const |
void | SetLinearized (bool bLinearize) |
bool | GetLinearized () const |
void | SetUseXRefStream (bool bStream) |
bool | GetUseXRefStream () const |
const char * | GetPdfVersionString () const |
void | SetEncrypted (const PdfEncrypt &rEncrypt) |
bool | GetEncrypted () const |
void | GetByteOffset (PdfObject *pObject, pdf_long *pulOffset) |
void | WriteToBuffer (char **ppBuffer, pdf_long *pulLen) |
void | FillTrailerObject (PdfObject *pTrailer, pdf_long lSize, bool bPrevEntry, bool bOnlySizeKey) const |
Protected Member Functions | |
PdfWriter (PdfVecObjects *pVecObjects) | |
void PODOFO_LOCAL | WritePdfHeader (PdfOutputDevice *pDevice) |
void | WritePdfObjects (PdfOutputDevice *pDevice, const PdfVecObjects &vecObjects, PdfXRef *pXref) PODOFO_LOCAL |
void | CreateFileIdentifier (PdfString &identifier, const PdfObject *pTrailer) const PODOFO_LOCAL |
Protected Attributes | |
PdfVecObjects * | m_vecObjects |
PdfEncrypt * | m_pEncrypt |
If not NULL encrypt all strings and streams and create an encryption dictionary in the trailer. | |
PdfObject * | m_pEncryptObj |
Used to temporarly store the encryption dictionary. | |
The PdfWriter class writes a list of PdfObjects as PDF file. The XRef section (which is the required table of contents for any PDF file) is created automatically.
It does not know about pages but only about PdfObjects.
Most users will want to use PdfDocument.
PoDoFo::PdfWriter::PdfWriter | ( | PdfParser * | pParser | ) |
PoDoFo::PdfWriter::PdfWriter | ( | PdfVecObjects * | pVecObjects, |
const PdfObject * | pTrailer | ||
) |
Create a new pdf file, from an vector of PdfObjects and a trailer object.
pVecObjects | the vector of objects |
pTrailer | a valid trailer object |
|
protected |
Create a PdfWriter from a PdfVecObjects
|
protected |
Creates a file identifier which is required in several PDF workflows. All values from the files document information dictionary are used to create a unique MD5 key which is added to the trailer dictionary.
identifier | write the identifier to this string |
pTrailer | trailer object |
void PoDoFo::PdfWriter::FillTrailerObject | ( | PdfObject * | pTrailer, |
pdf_long | lSize, | ||
bool | bPrevEntry, | ||
bool | bOnlySizeKey | ||
) | const |
Add required keys to a trailer object
pTrailer | add keys to this object |
lSize | number of objects in the PDF file |
bPrevEntry | if true a prev entry is added to the trailer object with a value of 0 |
bOnlySizeKey | write only the size key |
void PoDoFo::PdfWriter::GetByteOffset | ( | PdfObject * | pObject, |
pdf_long * | pulOffset | ||
) |
Calculate the byte offset of the object pObject in the PDF file if the file was written to disk at the moment of calling this function.
This function is very calculation intensive!
pObject | object to calculate the byte offset (has to be a child of this PdfWriter) |
pulOffset | pointer to an unsigned long to save the offset |
|
inline |
|
inline |
|
inline |
Get the PDF version of the document
|
inline |
Get the file format version of the pdf
|
inline |
|
inline |
Get the write mode used for wirting the PDF
void PoDoFo::PdfWriter::SetEncrypted | ( | const PdfEncrypt & | rEncrypt | ) |
Set the written document to be encrypted using a PdfEncrypt object
rEncrypt | an encryption object which is used to encrypt the written PDF file |
|
inline |
Enabled linearization for this document. I.e. optimize it for web usage. Default is false.
bLinearize | if true create a web optimized PDF file |
|
inline |
Set the PDF Version of the document. Has to be called before Write() to have an effect.
eVersion | version of the pdf document |
|
inline |
Create a XRef stream which is in some case more compact but requires at least PDF 1.5 Default is false.
bStream | if true a XRef stream object will be created |
|
inline |
Set the write mode to use when writing the PDF.
eWriteMode | write mode |
void PoDoFo::PdfWriter::Write | ( | const char * | pszFilename | ) |
Writes the complete document to a PDF file.
pszFilename | filename of a PDF file. |
void PoDoFo::PdfWriter::Write | ( | PdfOutputDevice * | pDevice | ) |
Writes the complete document to a PdfOutputDevice
pDevice | write to the specified device |
|
protected |
Writes the pdf header to the current file.
pDevice | write to this output device |
|
protected |
Write pdf objects to file
pDevice | write to this output device |
vecObjects | write all objects in this vector to the file |
pXref | add all written objects to this XRefTable |
void PoDoFo::PdfWriter::WriteToBuffer | ( | char ** | ppBuffer, |
pdf_long * | pulLen | ||
) |
Write the whole document to a buffer in memory.
Better use a PdfOutputDevice that writes to a PdfRefCountedBuffer.
ppBuffer | will be malloc'ed and the document will be written to this buffer. |
pulLen | the length of the buffer will be returned in this parameter |
|
protected |
Reorder and renumber all object as required for linearized PDF files. This function is very slow.
pLinearize | linearization dictionary |
pHint | primary hint stream dictionary |
pPage | first page to display in the document |
ppLast | the pointer will be initialized to the last object belonging to the first pageInitialize m_pPagesTree with its correct value Always call this function befre accessing the pages tree.Find dependencies required for creating a linearized PDF of the catalog dictionary.Fill all keys in the linearization dictionary with their values |
pLinearize | a linearization dictionary |
pHint | the hint stream |
pPage | the first page in the linerarized PDF file |
pLast | pointer of the last object belonging to the first page |
pVecXRefOffset | xref table entries for previous entry |