wxPdfDocument  1.4.0
Library for generating PDF documents from wxWidgets applications
Loading...
Searching...
No Matches
wxPdfParser Class Reference

Class representing a PDF parser. (For internal use only). More...

#include <pdfparser.h>

Public Member Functions

 wxPdfParser (const wxString &filename, const wxString &password=wxEmptyString)
 Constructor.
virtual ~wxPdfParser ()
 Destructor.
bool IsOk () const
 Check whether the PDF document to be parsed is valid.
wxString GetPdfVersion () const
 Get PDF version of parsed document.
unsigned int GetPageCount () const
 Get number of pages in the parsed document.
bool GetSourceInfo (wxPdfInfo &info)
 Get the document information dictionary.
wxPdfObjectQueueGetObjectQueue ()
 Get the queue of referenced objects.
wxPdfObjectMap * GetObjectMap ()
 Get the map of referenced objects.
void AppendObject (int originalObjectId, int actualObjectId, wxPdfObject *obj)
 Append a referenced object to the queue.
wxPdfObjectGetPageResources (unsigned int pageno)
 Get the resources of a specific page.
void GetContent (unsigned int pageno, wxArrayPtrVoid &contents)
 Get the content stream collection of a specific page.
wxPdfArrayDoubleGetPageMediaBox (unsigned int pageno)
 Get the media box of a specific page.
wxPdfArrayDoubleGetPageCropBox (unsigned int pageno)
 Get the crop box of a specific page.
wxPdfArrayDoubleGetPageBleedBox (unsigned int pageno)
 Get the bleed box of a specific page.
wxPdfArrayDoubleGetPageTrimBox (unsigned int pageno)
 Get the trim box of a specific page.
wxPdfArrayDoubleGetPageArtBox (unsigned int pageno)
 Get the art box of a specific page.
int GetPageRotation (unsigned int pageno)
 Get the rotation of a specific page.
wxPdfObjectResolveObject (wxPdfObject *obj)
 Resolve an object.
void SetUseRawStream (bool useRawStream)
 Set flag whether a stream should be decoded or not.
bool GetUseRawStream () const
 Get flag whether a stream should be decoded or not.

Protected Member Functions

wxPdfObjectGetPageResources (wxPdfObject *page)
 Get the resources of a specific page identified by a page object.
void GetPageContent (wxPdfObject *contentRef, wxArrayPtrVoid &contents)
 Get the content stream collection of a specific page.
wxPdfArrayDoubleGetPageBox (wxPdfDictionary *page, const wxString &boxIndex)
 Get a page box.
int GetPageRotation (wxPdfDictionary *page)
 Get a page rotation.
bool ParseDocument ()
 Parse PDF document.
bool SetupDecryptor ()
 Setup a decryptor.
bool ParseXRef ()
 Parse the cross reference.
bool ParsePageTree (wxPdfDictionary *pages)
 Parse the page tree of the PDF document.
wxPdfDictionaryParseXRefSection ()
 Parse a cross reference section.
bool ParseXRefStream (int ptr, bool setTrailer)
 Parse a cross reference stream.
wxPdfObjectParseObject ()
 Parse an object.
wxPdfDictionaryParseDictionary ()
 Parse a dictionary.
wxPdfArrayParseArray ()
 Parse an array.
wxPdfObjectParseSpecificObject (int idx)
 Parse a specific object.
wxPdfObjectParseDirectObject (int k)
 Parse a direct object.
wxPdfObjectParseObjectStream (wxPdfStream *stream, int idx)
 Parse an object from an object stream.
void GetStreamBytes (wxPdfStream *stream)
 Parse the content of a stream object.
void GetStreamBytesRaw (wxPdfStream *stream)
 Parse the raw content of a stream object.
wxMemoryOutputStream * DecodePredictor (wxMemoryOutputStream *in, wxPdfObject *dicPar)
 Decode a stream predictor.
wxMemoryOutputStream * FlateDecode (wxMemoryOutputStream *osIn)
 Decode a stream that has the FlateDecode filter.
wxMemoryOutputStream * ASCIIHexDecode (wxMemoryOutputStream *osIn)
 Decode a stream that has the ASCIIHexDecode filter.
wxMemoryOutputStream * ASCII85Decode (wxMemoryOutputStream *osIn)
 Decode a stream that has the ASCII85Decode filter.
wxMemoryOutputStream * LZWDecode (wxMemoryOutputStream *osIn)
 Decode a stream that has the ASCII85Decode filter.

Static Protected Member Functions

static wxFileSystem * GetFileSystem ()
 Get wxWidgets file system.

Detailed Description

Class representing a PDF parser. (For internal use only).

The parser uses a tokenizer to read the PDF file, identifies all indirect objects via the cross-reference (XRef) table, and provides methods to access page-specific resources and content streams.

Constructor & Destructor Documentation

◆ wxPdfParser()

wxPdfParser::wxPdfParser ( const wxString & filename,
const wxString & password = wxEmptyString )

Constructor.

Parameters
filenameThe name of the PDF file to parse
passwordThe password for encrypted documents

◆ ~wxPdfParser()

virtual wxPdfParser::~wxPdfParser ( )
virtual

Destructor.

Member Function Documentation

◆ AppendObject()

void wxPdfParser::AppendObject ( int originalObjectId,
int actualObjectId,
wxPdfObject * obj )

Append a referenced object to the queue.

Parameters
originalObjectIdThe original ID in the source file
actualObjectIdThe new ID in the destination document
objThe PDF object

◆ ASCII85Decode()

wxMemoryOutputStream * wxPdfParser::ASCII85Decode ( wxMemoryOutputStream * osIn)
protected

Decode a stream that has the ASCII85Decode filter.

Parameters
osInthe input data
Returns
the decoded data

◆ ASCIIHexDecode()

wxMemoryOutputStream * wxPdfParser::ASCIIHexDecode ( wxMemoryOutputStream * osIn)
protected

Decode a stream that has the ASCIIHexDecode filter.

Parameters
osInthe input data
Returns
the decoded data

◆ DecodePredictor()

wxMemoryOutputStream * wxPdfParser::DecodePredictor ( wxMemoryOutputStream * in,
wxPdfObject * dicPar )
protected

Decode a stream predictor.

◆ FlateDecode()

wxMemoryOutputStream * wxPdfParser::FlateDecode ( wxMemoryOutputStream * osIn)
protected

Decode a stream that has the FlateDecode filter.

Parameters
osInthe input data
Returns
the decoded data

◆ GetContent()

void wxPdfParser::GetContent ( unsigned int pageno,
wxArrayPtrVoid & contents )

Get the content stream collection of a specific page.

Parameters
pagenoThe page number (1-based)
[out]contentsArray to be filled with content stream objects

◆ GetFileSystem()

wxFileSystem * wxPdfParser::GetFileSystem ( )
staticprotected

Get wxWidgets file system.

◆ GetObjectMap()

wxPdfObjectMap * wxPdfParser::GetObjectMap ( )
inline

Get the map of referenced objects.

Returns
The object map

◆ GetObjectQueue()

wxPdfObjectQueue * wxPdfParser::GetObjectQueue ( )
inline

Get the queue of referenced objects.

Returns
The object queue

◆ GetPageArtBox()

wxPdfArrayDouble * wxPdfParser::GetPageArtBox ( unsigned int pageno)

Get the art box of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The art box array

◆ GetPageBleedBox()

wxPdfArrayDouble * wxPdfParser::GetPageBleedBox ( unsigned int pageno)

Get the bleed box of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The bleed box array

◆ GetPageBox()

wxPdfArrayDouble * wxPdfParser::GetPageBox ( wxPdfDictionary * page,
const wxString & boxIndex )
protected

Get a page box.

◆ GetPageContent()

void wxPdfParser::GetPageContent ( wxPdfObject * contentRef,
wxArrayPtrVoid & contents )
protected

Get the content stream collection of a specific page.

◆ GetPageCount()

unsigned int wxPdfParser::GetPageCount ( ) const

Get number of pages in the parsed document.

Returns
The number of pages

◆ GetPageCropBox()

wxPdfArrayDouble * wxPdfParser::GetPageCropBox ( unsigned int pageno)

Get the crop box of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The crop box array

◆ GetPageMediaBox()

wxPdfArrayDouble * wxPdfParser::GetPageMediaBox ( unsigned int pageno)

Get the media box of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The media box array

◆ GetPageResources() [1/2]

wxPdfObject * wxPdfParser::GetPageResources ( unsigned int pageno)

Get the resources of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The resources dictionary object

◆ GetPageResources() [2/2]

wxPdfObject * wxPdfParser::GetPageResources ( wxPdfObject * page)
protected

Get the resources of a specific page identified by a page object.

◆ GetPageRotation() [1/2]

int wxPdfParser::GetPageRotation ( unsigned int pageno)

Get the rotation of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The page rotation in degrees

◆ GetPageRotation() [2/2]

int wxPdfParser::GetPageRotation ( wxPdfDictionary * page)
protected

Get a page rotation.

◆ GetPageTrimBox()

wxPdfArrayDouble * wxPdfParser::GetPageTrimBox ( unsigned int pageno)

Get the trim box of a specific page.

Parameters
pagenoThe page number (1-based)
Returns
The trim box array

◆ GetPdfVersion()

wxString wxPdfParser::GetPdfVersion ( ) const
inline

Get PDF version of parsed document.

Returns
The PDF version string

◆ GetSourceInfo()

bool wxPdfParser::GetSourceInfo ( wxPdfInfo & info)

Get the document information dictionary.

Parameters
[out]infoThe info object to populate
Returns
true if successful, false otherwise

◆ GetStreamBytes()

void wxPdfParser::GetStreamBytes ( wxPdfStream * stream)
protected

Parse the content of a stream object.

◆ GetStreamBytesRaw()

void wxPdfParser::GetStreamBytesRaw ( wxPdfStream * stream)
protected

Parse the raw content of a stream object.

◆ GetUseRawStream()

bool wxPdfParser::GetUseRawStream ( ) const
inline

Get flag whether a stream should be decoded or not.

Returns
true if skip decoding, false if decode

◆ IsOk()

bool wxPdfParser::IsOk ( ) const

Check whether the PDF document to be parsed is valid.

Returns
true if the document was parsed successfully, false otherwise

◆ LZWDecode()

wxMemoryOutputStream * wxPdfParser::LZWDecode ( wxMemoryOutputStream * osIn)
protected

Decode a stream that has the ASCII85Decode filter.

Parameters
osInthe input data
Returns
the decoded data

◆ ParseArray()

wxPdfArray * wxPdfParser::ParseArray ( )
protected

Parse an array.

◆ ParseDictionary()

wxPdfDictionary * wxPdfParser::ParseDictionary ( )
protected

Parse a dictionary.

◆ ParseDirectObject()

wxPdfObject * wxPdfParser::ParseDirectObject ( int k)
protected

Parse a direct object.

◆ ParseDocument()

bool wxPdfParser::ParseDocument ( )
protected

Parse PDF document.

◆ ParseObject()

wxPdfObject * wxPdfParser::ParseObject ( )
protected

Parse an object.

◆ ParseObjectStream()

wxPdfObject * wxPdfParser::ParseObjectStream ( wxPdfStream * stream,
int idx )
protected

Parse an object from an object stream.

◆ ParsePageTree()

bool wxPdfParser::ParsePageTree ( wxPdfDictionary * pages)
protected

Parse the page tree of the PDF document.

◆ ParseSpecificObject()

wxPdfObject * wxPdfParser::ParseSpecificObject ( int idx)
protected

Parse a specific object.

◆ ParseXRef()

bool wxPdfParser::ParseXRef ( )
protected

Parse the cross reference.

◆ ParseXRefSection()

wxPdfDictionary * wxPdfParser::ParseXRefSection ( )
protected

Parse a cross reference section.

◆ ParseXRefStream()

bool wxPdfParser::ParseXRefStream ( int ptr,
bool setTrailer )
protected

Parse a cross reference stream.

◆ ResolveObject()

wxPdfObject * wxPdfParser::ResolveObject ( wxPdfObject * obj)

Resolve an object.

If the object is a reference, it is resolved to the actual object.

Parameters
objThe object to resolve
Returns
The resolved PDF object

◆ SetupDecryptor()

bool wxPdfParser::SetupDecryptor ( )
protected

Setup a decryptor.

◆ SetUseRawStream()

void wxPdfParser::SetUseRawStream ( bool useRawStream)
inline

Set flag whether a stream should be decoded or not.

Parameters
useRawStreamtrue to skip decoding, false to decode

The documentation for this class was generated from the following file: