PoDoFo  0.9.4
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PoDoFo::PdfWriter Class Reference

#include <PdfWriter.h>

Inheritance diagram for PoDoFo::PdfWriter:

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
void PODOFO_LOCAL WriteLinearized (PdfOutputDevice *pDevice)
PdfObjectCreateLinearizationDictionary () PODOFO_LOCAL

Protected Attributes

 If not NULL encrypt all strings and streams and create an encryption dictionary in the trailer.
 Used to temporarly store the encryption dictionary.

Detailed Description

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.

Constructor & Destructor Documentation

PoDoFo::PdfWriter::PdfWriter ( PdfParser pParser)

Create a PdfWriter object from a PdfParser object

pParsera pdf parser object
PoDoFo::PdfWriter::PdfWriter ( PdfVecObjects pVecObjects,
const PdfObject pTrailer 

Create a new pdf file, from an vector of PdfObjects and a trailer object.

pVecObjectsthe vector of objects
pTrailera valid trailer object
PoDoFo::PdfWriter::PdfWriter ( PdfVecObjects pVecObjects)

Create a PdfWriter from a PdfVecObjects

Member Function Documentation

void PoDoFo::PdfWriter::CreateFileIdentifier ( PdfString identifier,
const PdfObject pTrailer 
) const

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.

identifierwrite the identifier to this string
pTrailertrailer object
PdfObject* PoDoFo::PdfWriter::CreateLinearizationDictionary ( )

Create a linearization dictionary for the current document and return a pointer to it after inserting it into the vector of PdfObjects

a pointer to the linearization dictionary
void PoDoFo::PdfWriter::FillTrailerObject ( PdfObject pTrailer,
pdf_long  lSize,
bool  bPrevEntry,
bool  bOnlySizeKey 
) const

Add required keys to a trailer object

pTraileradd keys to this object
lSizenumber of objects in the PDF file
bPrevEntryif true a prev entry is added to the trailer object with a value of 0
bOnlySizeKeywrite 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!

pObjectobject to calculate the byte offset (has to be a child of this PdfWriter)
pulOffsetpointer to an unsigned long to save the offset
bool PoDoFo::PdfWriter::GetEncrypted ( ) const
true if this PdfWriter creates an encrypted PDF file
bool PoDoFo::PdfWriter::GetLinearized ( ) const
true if this PDF file is web optimized.
EPdfVersion PoDoFo::PdfWriter::GetPdfVersion ( ) const

Get the PDF version of the document

EPdfVersion version of the pdf document
const char* PoDoFo::PdfWriter::GetPdfVersionString ( ) const

Get the file format version of the pdf

the file format version as string
bool PoDoFo::PdfWriter::GetUseXRefStream ( ) const
wether a XRef stream is used or not
EPdfWriteMode PoDoFo::PdfWriter::GetWriteMode ( ) const

Get the write mode used for wirting the PDF

the write mode
void PoDoFo::PdfWriter::SetEncrypted ( const PdfEncrypt rEncrypt)

Set the written document to be encrypted using a PdfEncrypt object

rEncryptan encryption object which is used to encrypt the written PDF file
void PoDoFo::PdfWriter::SetLinearized ( bool  bLinearize)

Enabled linearization for this document. I.e. optimize it for web usage. Default is false.

bLinearizeif true create a web optimized PDF file
void PoDoFo::PdfWriter::SetPdfVersion ( EPdfVersion  eVersion)

Set the PDF Version of the document. Has to be called before Write() to have an effect.

eVersionversion of the pdf document
void PoDoFo::PdfWriter::SetUseXRefStream ( bool  bStream)

Create a XRef stream which is in some case more compact but requires at least PDF 1.5 Default is false.

bStreamif true a XRef stream object will be created
void PoDoFo::PdfWriter::SetWriteMode ( EPdfWriteMode  eWriteMode)

Set the write mode to use when writing the PDF.

eWriteModewrite mode
void PoDoFo::PdfWriter::Write ( const char *  pszFilename)

Writes the complete document to a PDF file.

pszFilenamefilename of a PDF file.
void PoDoFo::PdfWriter::Write ( PdfOutputDevice pDevice)

Writes the complete document to a PdfOutputDevice

pDevicewrite to the specified device
void PoDoFo::PdfWriter::WriteLinearized ( PdfOutputDevice pDevice)

Writes a linearized PDF file

pDevicewrite to this output device
void PoDoFo::PdfWriter::WritePdfHeader ( PdfOutputDevice pDevice)

Writes the pdf header to the current file.

pDevicewrite to this output device
void PoDoFo::PdfWriter::WritePdfObjects ( PdfOutputDevice pDevice,
const PdfVecObjects vecObjects,
PdfXRef pXref 

Write pdf objects to file

pDevicewrite to this output device
vecObjectswrite all objects in this vector to the file
pXrefadd 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.

ppBufferwhere this points the address of the buffer will be written after that being malloc()'d and the document will be written to that buffer.
pulLenthe buffer length will be returned in this parameter
See also

Member Data Documentation

PdfVecObjects* PoDoFo::PdfWriter::m_vecObjects

Reorder and renumber all object as required for linearized PDF files. This function is very slow.

pLinearizelinearization dictionary
pHintprimary hint stream dictionary
pPagefirst page to display in the document
ppLastthe 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
pLinearizea linearization dictionary
pHintthe hint stream
pPagethe first page in the linerarized PDF file
pLastpointer of the last object belonging to the first page
pVecXRefOffsetxref table entries for previous entry