#include <PdfDocument.h>
Public Member Functions | |
virtual | ~PdfDocument () |
virtual EPdfWriteMode | GetWriteMode () const =0 |
virtual EPdfVersion | GetPdfVersion () const =0 |
virtual bool | IsLinearized () const =0 |
PdfInfo * | GetInfo () const |
PdfOutlines * | GetOutlines (bool bCreate=ePdfCreateObject) |
PdfNamesTree * | GetNamesTree (bool bCreate=ePdfCreateObject) |
PdfAcroForm * | GetAcroForm (bool bCreate=ePdfCreateObject, EPdfAcroFormDefaulAppearance eDefaultAppearance=ePdfAcroFormDefaultAppearance_BlackText12pt) |
PdfPagesTree * | GetPagesTree () const |
int | GetPageCount () const |
PdfPage * | GetPage (int nIndex) const |
PdfFont * | CreateFont (const char *pszFontName, bool bSymbolCharset=false, const PdfEncoding *const pEncoding=PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), PdfFontCache::EFontCreationFlags eFontCreationFlags=PdfFontCache::eFontCreationFlags_AutoSelectBase14, bool bEmbedd=true) |
PdfFont * | CreateFont (const char *pszFontName, bool bBold, bool bItalic, bool bSymbolCharset=false, const PdfEncoding *const pEncoding=PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), PdfFontCache::EFontCreationFlags eFontCreationFlags=PdfFontCache::eFontCreationFlags_AutoSelectBase14, bool bEmbedd=true, const char *pszFileName=NULL) |
PdfFont * | CreateFont (FT_Face face, bool bSymbolCharset=false, const PdfEncoding *const pEncoding=PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), bool bEmbedd=true) |
PdfFont * | CreateDuplicateFontType1 (PdfFont *pFont, const char *pszSuffix) |
PdfFont * | CreateFontSubset (const char *pszFontName, bool bBold, bool bItalic, bool bSymbolCharset=false, const PdfEncoding *const pEncoding=PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), const char *pszFileName=NULL) |
FT_Library | GetFontLibrary () const |
void | EmbedSubsetFonts () |
PdfPage * | CreatePage (const PdfRect &rSize) |
void | CreatePages (const std::vector< PdfRect > &vecSizes) |
PdfPage * | InsertPage (const PdfRect &rSize, int atIndex) |
const PdfDocument & | Append (const PdfMemDocument &rDoc, bool bAppendAll=true) |
const PdfDocument & | InsertExistingPageAt (const PdfMemDocument &rDoc, int nPageIndex, int nAtIndex) |
PdfRect | FillXObjectFromDocumentPage (PdfXObject *pXObj, const PdfMemDocument &rDoc, int nPage, bool bUseTrimBox) |
PdfRect | FillXObjectFromExistingPage (PdfXObject *pXObj, int nPage, bool bUseTrimBox) |
PdfRect | FillXObjectFromPage (PdfXObject *pXObj, const PdfPage *pPage, bool bUseTrimBox, unsigned int difference) |
void | AttachFile (const PdfFileSpec &rFileSpec) |
PdfFileSpec * | GetAttachment (const PdfString &rName) |
void | AddNamedDestination (const PdfDestination &rDest, const PdfString &rsName) |
void | SetPageMode (EPdfPageMode inMode) |
EPdfPageMode | GetPageMode (void) const |
void | SetUseFullScreen (void) |
void | SetPageLayout (EPdfPageLayout inLayout) |
void | SetHideToolbar (void) |
void | SetHideMenubar (void) |
void | SetHideWindowUI (void) |
void | SetFitWindow (void) |
void | SetCenterWindow (void) |
void | SetDisplayDocTitle (void) |
void | SetPrintScaling (PdfName &inScalingType) |
void | SetBaseURI (const std::string &inBaseURI) |
void | SetLanguage (const std::string &inLanguage) |
void | SetBindingDirection (PdfName &inDirection) |
virtual bool | IsPrintAllowed () const =0 |
virtual bool | IsEditAllowed () const =0 |
virtual bool | IsCopyAllowed () const =0 |
virtual bool | IsEditNotesAllowed () const =0 |
virtual bool | IsFillAndSignAllowed () const =0 |
virtual bool | IsAccessibilityAllowed () const =0 |
virtual bool | IsDocAssemblyAllowed () const =0 |
virtual bool | IsHighPrintAllowed () const =0 |
PdfVecObjects * | GetObjects () |
const PdfVecObjects * | GetObjects () const |
void | SetFontConfigWrapper (const PdfFontConfigWrapper &rFontConfig) |
Protected Member Functions | |
PdfDocument (bool bEmpty=false) | |
void | SetInfo (PdfInfo *pInfo) |
PdfObject * | GetCatalog () |
const PdfObject * | GetCatalog () const |
void | SetCatalog (PdfObject *pObject) |
PdfObject * | GetTrailer () |
const PdfObject * | GetTrailer () const |
void | SetTrailer (PdfObject *pObject) |
PdfObject * | GetNamedObjectFromCatalog (const char *pszName) const |
void | InitPagesTree () |
void | FixObjectReferences (PdfObject *pObject, int difference) |
void | SetViewerPreference (const PdfName &whichPref, const PdfObject &valueObj) |
void | SetViewerPreference (const PdfName &whichPref, bool inValue) |
void | Clear () |
PdfDocument provides easy access to the individual pages in the PDF file and to certain special dictionaries.
PdfDocument cannot be used directly. Use PdfMemDocument whenever you want to change the object structure of a PDF file.
When you are only creating PDF files, please use PdfStreamedDocument which is usually faster for creating PDFs.
PoDoFo::PdfDocument::~PdfDocument | ( | ) | [virtual] |
Close down/destruct the PdfDocument
PoDoFo::PdfDocument::PdfDocument | ( | bool | bEmpty = false |
) | [protected] |
Construct a new (empty) PdfDocument
bEmtpy | if true NO default objects (such as catalog) are created. |
virtual EPdfWriteMode PoDoFo::PdfDocument::GetWriteMode | ( | ) | const [pure virtual] |
Get the write mode used for wirting the PDF
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual EPdfVersion PoDoFo::PdfDocument::GetPdfVersion | ( | ) | const [pure virtual] |
Get the PDF version of the document
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsLinearized | ( | ) | const [pure virtual] |
Returns wether this PDF document is linearized, aka weboptimized
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
PdfInfo* PoDoFo::PdfDocument::GetInfo | ( | ) | const [inline] |
Get access to the internal Info dictionary You can set the author, title etc. of the document using the info dictionary.
PdfOutlines * PoDoFo::PdfDocument::GetOutlines | ( | bool | bCreate = ePdfCreateObject |
) |
Get access to the Outlines (Bookmarks) dictionary The returned outlines object is owned by the PdfDocument.
bCreate | create the object if it does not exist (ePdfCreateObject) or return NULL if it does not exist |
PdfNamesTree * PoDoFo::PdfDocument::GetNamesTree | ( | bool | bCreate = ePdfCreateObject |
) |
Get access to the Names dictionary (where all the named objects are stored) The returned PdfNamesTree object is owned by the PdfDocument.
bCreate | create the object if it does not exist (ePdfCreateObject) or return NULL if it does not exist |
PdfAcroForm * PoDoFo::PdfDocument::GetAcroForm | ( | bool | bCreate = ePdfCreateObject , |
|
EPdfAcroFormDefaulAppearance | eDefaultAppearance = ePdfAcroFormDefaultAppearance_BlackText12pt | |||
) |
Get access to the AcroForm dictionary
bCreate | create the object if it does not exist (ePdfCreateObject) or return NULL if it does not exist | |
eDefaultAppearance | specifies if a default appearence shall be created |
PdfPagesTree * PoDoFo::PdfDocument::GetPagesTree | ( | ) | const [inline] |
Get access to the pages tree. Better use GetPage and CreatePage methods.
int PoDoFo::PdfDocument::GetPageCount | ( | void | ) | const |
Get the total number of pages in a document
PdfPage * PoDoFo::PdfDocument::GetPage | ( | int | nIndex | ) | const |
Get the PdfPage for a specific page in a document The returned page is owned by the PdfDocument and will get deleted along with it!
nIndex | which page (0-based) |
PdfFont * PoDoFo::PdfDocument::CreateFont | ( | const char * | pszFontName, | |
bool | bSymbolCharset = false , |
|||
const PdfEncoding *const | pEncoding = PdfEncodingFactory::GlobalWinAnsiEncodingInstance() , |
|||
PdfFontCache::EFontCreationFlags | eFontCreationFlags = PdfFontCache::eFontCreationFlags_AutoSelectBase14 , |
|||
bool | bEmbedd = true | |||
) |
Creates a PdfFont object
pszFontName | name of the font as it is known to the system | |
bSymbolCharset | whether to use symbol charset, rather than unicode charset | |
pEncoding | the encoding of the font. The font will not take ownership of this object. | |
eFontCreationFlags | special flag to specify how fonts should be created | |
bEmbedd | specifies whether this font should be embedded in the PDF file. Embedding fonts is usually a good idea. |
PdfFont * PoDoFo::PdfDocument::CreateFont | ( | const char * | pszFontName, | |
bool | bBold, | |||
bool | bItalic, | |||
bool | bSymbolCharset = false , |
|||
const PdfEncoding *const | pEncoding = PdfEncodingFactory::GlobalWinAnsiEncodingInstance() , |
|||
PdfFontCache::EFontCreationFlags | eFontCreationFlags = PdfFontCache::eFontCreationFlags_AutoSelectBase14 , |
|||
bool | bEmbedd = true , |
|||
const char * | pszFileName = NULL | |||
) |
Creates a PdfFont object
pszFontName | name of the font as it is known to the system | |
bBold | if true search for a bold font | |
bItalic | if true search for an italic font | |
bSymbolCharset | whether to use symbol charset, rather than unicode charset | |
pEncoding | the encoding of the font. The font will not take ownership of this object. | |
eFontCreationFlags | special flag to specify how fonts should be created | |
bEmbedd | specifies whether this font should be embedded in the PDF file. Embedding fonts is usually a good idea. | |
pszFileName | path to a valid font file |
PdfFont * PoDoFo::PdfDocument::CreateFont | ( | FT_Face | face, | |
bool | bSymbolCharset = false , |
|||
const PdfEncoding *const | pEncoding = PdfEncodingFactory::GlobalWinAnsiEncodingInstance() , |
|||
bool | bEmbedd = true | |||
) |
Creates a PdfFont object
face | a valid freetype font handle (will be free'd by PoDoFo) | |
bSymbolCharset | whether to use symbol charset, rather than unicode charset | |
pEncoding | the encoding of the font. The font will not take ownership of this object. | |
bEmbedd | specifies whether this font should be embedded in the PDF file. Embedding fonts is usually a good idea. |
Creates a duplicate Type1-PdfFont with a new Id
pFont | is the existing font | |
pszSuffix | Suffix to add to font-id The returned object is owned by the PdfDocument. |
PdfFont * PoDoFo::PdfDocument::CreateFontSubset | ( | const char * | pszFontName, | |
bool | bBold, | |||
bool | bItalic, | |||
bool | bSymbolCharset = false , |
|||
const PdfEncoding *const | pEncoding = PdfEncodingFactory::GlobalWinAnsiEncodingInstance() , |
|||
const char * | pszFileName = NULL | |||
) |
Creates a font subset which contains only a few characters and is embedded.
THIS WORKS ONLY FOR TTF FONTS!
pszFontName | name of the font as it is known to the system | |
bBold | if true search for a bold font | |
bItalic | if true search for an italic font | |
bSymbolCharset | whether to use symbol charset, rather than unicode charset | |
pEncoding | the encoding of the font. The font will not take ownership of this object. | |
pszFileName | optional path of a fontfile which should be used |
FT_Library PoDoFo::PdfDocument::GetFontLibrary | ( | ) | const [inline] |
Returns the font library from font cache
void PoDoFo::PdfDocument::EmbedSubsetFonts | ( | ) |
Embeds all pending subset-fonts, is automatically done on Write(). Just call explicit in case PdfDocument is needed as XObject
Creates a new page object and inserts it into the internal page tree. The returned page is owned by the PdfDocument and will get deleted along with it!
rSize | a PdfRect spezifying the size of the page (i.e the /MediaBox key) in 1/1000th mm |
void PoDoFo::PdfDocument::CreatePages | ( | const std::vector< PdfRect > & | vecSizes | ) |
Creates several new page objects and inserts them into the internal page tree. The created pages are owned by the PdfDocument and will get deleted along with it!
vecSizes | a vector PdfRect's specifying the size of the pages (i.e the /MediaBox key) in PDF Units |
Creates a new page object and inserts it at index atIndex. The returned page is owned by the pages tree and will get deleted along with it!
rSize | a PdfRect specifying the size of the page (i.e the /MediaBox key) in PDF units | |
atIndex | index where to insert the new page (0-based) |
const PdfDocument & PoDoFo::PdfDocument::Append | ( | const PdfMemDocument & | rDoc, | |
bool | bAppendAll = true | |||
) |
Appends another PdfDocument to this document
rDoc | the document to append | |
bAppendAll | specifies whether pages and outlines are appended too |
const PdfDocument & PoDoFo::PdfDocument::InsertExistingPageAt | ( | const PdfMemDocument & | rDoc, | |
int | nPageIndex, | |||
int | nAtIndex | |||
) |
Inserts existing page from another PdfMemDocument to this document
rDoc | the document to append from | |
nPageIndex | Page index to append (0-based), from rDoc | |
nAtIndex | Index at which add the page in this document |
PdfRect PoDoFo::PdfDocument::FillXObjectFromDocumentPage | ( | PdfXObject * | pXObj, | |
const PdfMemDocument & | rDoc, | |||
int | nPage, | |||
bool | bUseTrimBox | |||
) |
Fill an existing empty XObject from a page of another document This will append the other document with this one
pXObj | pointer to the XOject | |
rDoc | the document to embedd into XObject | |
nPage | page-number to embedd into XObject | |
bUseTrimBox | if true try to use trimbox for size of xobject |
PdfRect PoDoFo::PdfDocument::FillXObjectFromExistingPage | ( | PdfXObject * | pXObj, | |
int | nPage, | |||
bool | bUseTrimBox | |||
) |
Fill an existing empty XObject from an existing page from the current document If you need a page from another document use FillXObjectFromDocumentPage, or append the documents manually
pXObj | pointer to the XOject | |
nPage | page-number to embedd into XObject | |
bUseTrimBox | if true try to use trimbox for size of xobject |
PdfRect PoDoFo::PdfDocument::FillXObjectFromPage | ( | PdfXObject * | pXObj, | |
const PdfPage * | pPage, | |||
bool | bUseTrimBox, | |||
unsigned int | difference | |||
) |
Fill an existing empty XObject from an existing page pointer from the current document This is the implementation for FillXObjectFromDocumentPage and FillXObjectFromExistingPage, you should use those directly instead of this
pXObj | pointer to the XOject | |
pPage | pointer to the page to embedd into XObject | |
bUseTrimBox | if true try to use trimbox for size of xobject |
void PoDoFo::PdfDocument::AttachFile | ( | const PdfFileSpec & | rFileSpec | ) |
Attach a file to the document.
rFileSpec | a file specification |
PdfFileSpec * PoDoFo::PdfDocument::GetAttachment | ( | const PdfString & | rName | ) |
Get an attached file's filespec
rName | the name of the attachment |
void PoDoFo::PdfDocument::AddNamedDestination | ( | const PdfDestination & | rDest, | |
const PdfString & | rsName | |||
) |
Adds a PdfDestination into the global Names tree with the specified name, optionally replacing one of the same name
rDest | the destination to be assigned | |
rsName | the name for the destination |
void PoDoFo::PdfDocument::SetPageMode | ( | EPdfPageMode | inMode | ) |
Sets the opening mode for a document
inMode | which mode to set |
EPdfPageMode PoDoFo::PdfDocument::GetPageMode | ( | void | ) | const |
Gets the opening mode for a document
void PoDoFo::PdfDocument::SetUseFullScreen | ( | void | ) |
Sets the opening mode for a document to be in full screen
void PoDoFo::PdfDocument::SetPageLayout | ( | EPdfPageLayout | inLayout | ) |
Sets the page layout for a document
void PoDoFo::PdfDocument::SetHideToolbar | ( | void | ) |
Set the document's Viewer Preferences: Hide the toolbar in the viewer
void PoDoFo::PdfDocument::SetHideMenubar | ( | void | ) |
Set the document's Viewer Preferences: Hide the menubar in the viewer
void PoDoFo::PdfDocument::SetHideWindowUI | ( | void | ) |
Set the document's Viewer Preferences: Show only the documents contents and no controll elements such as buttons and scrollbars in the viewer
void PoDoFo::PdfDocument::SetFitWindow | ( | void | ) |
Set the document's Viewer Preferences: Fit the document in the viewers window
void PoDoFo::PdfDocument::SetCenterWindow | ( | void | ) |
Set the document's Viewer Preferences: Center the document in the viewers window
void PoDoFo::PdfDocument::SetDisplayDocTitle | ( | void | ) |
Set the document's Viewer Preferences: Display the title from the document information in the title of the viewer.
void PoDoFo::PdfDocument::SetPrintScaling | ( | PdfName & | inScalingType | ) |
Set the document's Viewer Preferences: Set the default print scaling of the document
TODO: DS use an enum here!
void PoDoFo::PdfDocument::SetBaseURI | ( | const std::string & | inBaseURI | ) |
Set the document's Viewer Preferences: Set the base URI of the document
TODO: DS document value!
void PoDoFo::PdfDocument::SetLanguage | ( | const std::string & | inLanguage | ) |
Set the document's Viewer Preferences: Set the language of the document
void PoDoFo::PdfDocument::SetBindingDirection | ( | PdfName & | inDirection | ) |
Set the document's Viewer Preferences:
virtual bool PoDoFo::PdfDocument::IsPrintAllowed | ( | ) | const [pure virtual] |
Checks if printing this document is allowed. Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsEditAllowed | ( | ) | const [pure virtual] |
Checks if modifiying this document (besides annotations, form fields or changing pages) is allowed. Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsCopyAllowed | ( | ) | const [pure virtual] |
Checks if text and graphics extraction is allowed. Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsEditNotesAllowed | ( | ) | const [pure virtual] |
Checks if it is allowed to add or modify annotations or form fields Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsFillAndSignAllowed | ( | ) | const [pure virtual] |
Checks if it is allowed to fill in existing form or signature fields Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsAccessibilityAllowed | ( | ) | const [pure virtual] |
Checks if it is allowed to extract text and graphics to support users with disabillities Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsDocAssemblyAllowed | ( | ) | const [pure virtual] |
Checks if it is allowed to insert, create, rotate, delete pages or add bookmarks Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
virtual bool PoDoFo::PdfDocument::IsHighPrintAllowed | ( | ) | const [pure virtual] |
Checks if it is allowed to print a high quality version of this document Every PDF consuming applications has to adhere this value!
Implemented in PoDoFo::PdfMemDocument, and PoDoFo::PdfStreamedDocument.
PdfVecObjects * PoDoFo::PdfDocument::GetObjects | ( | ) | [inline] |
Get access to the internal vector of objects or root object.
Reimplemented in PoDoFo::PdfMemDocument.
const PdfVecObjects * PoDoFo::PdfDocument::GetObjects | ( | ) | const [inline] |
Get access to the internal vector of objects or root object.
Reimplemented in PoDoFo::PdfMemDocument.
void PoDoFo::PdfDocument::SetFontConfigWrapper | ( | const PdfFontConfigWrapper & | rFontConfig | ) | [inline] |
Set wrapper for the fontconfig library. Useful to avoid initializing Fontconfig multiple times.
This setter can be called until first use of Fontconfig as the library is initialized at first use.
void PoDoFo::PdfDocument::SetInfo | ( | PdfInfo * | pInfo | ) | [protected] |
Set the info object containing meta information. Deletes any old info object.
pInfo | the new info object (will be owned by PdfDocument) |
PdfObject * PoDoFo::PdfDocument::GetCatalog | ( | ) | [inline, protected] |
Get access to the internal Catalog dictionary or root object.
Reimplemented in PoDoFo::PdfMemDocument.
const PdfObject * PoDoFo::PdfDocument::GetCatalog | ( | ) | const [inline, protected] |
Get access to the internal Catalog dictionary or root object.
Reimplemented in PoDoFo::PdfMemDocument.
void PoDoFo::PdfDocument::SetCatalog | ( | PdfObject * | pObject | ) | [inline, protected] |
Set the catalog of this PdfDocument deleting the old one.
pObject | the new catalog object It will be owned by PdfDocument. |
PdfObject * PoDoFo::PdfDocument::GetTrailer | ( | ) | [inline, protected] |
Get access to the internal trailer dictionary or root object.
const PdfObject * PoDoFo::PdfDocument::GetTrailer | ( | ) | const [inline, protected] |
Get access to the internal trailer dictionary or root object.
Reimplemented in PoDoFo::PdfMemDocument.
void PoDoFo::PdfDocument::SetTrailer | ( | PdfObject * | pObject | ) | [protected] |
Set the trailer of this PdfDocument deleting the old one.
pObject | the new trailer object It will be owned by PdfDocument. |
PdfObject * PoDoFo::PdfDocument::GetNamedObjectFromCatalog | ( | const char * | pszName | ) | const [protected] |
Get a dictioary from the catalog dictionary by its name.
pszName | will be converted into a PdfName |
Reimplemented in PoDoFo::PdfMemDocument.
void PoDoFo::PdfDocument::InitPagesTree | ( | ) | [protected] |
Internal method for initializing the pages tree for this document
void PoDoFo::PdfDocument::FixObjectReferences | ( | PdfObject * | pObject, | |
int | difference | |||
) | [protected] |
Recursively changes every PdfReference in the PdfObject and in any child that is either an PdfArray or a direct object. The reference is changed so that difference is added to the object number if the reference.
pObject | object to change | |
difference | add this value to every reference that is encountered |
void PoDoFo::PdfDocument::SetViewerPreference | ( | const PdfName & | whichPref, | |
const PdfObject & | valueObj | |||
) | [protected] |
Low level APIs for setting a viewer preference
whichPref | the dictionary key to set | |
valueObj | the object to be set |
void PoDoFo::PdfDocument::SetViewerPreference | ( | const PdfName & | whichPref, | |
bool | inValue | |||
) | [protected] |
Low level APIs for setting a viewer preference Convinience overload.
whichPref | the dictionary key to set | |
inValue | the object to be set |
void PoDoFo::PdfDocument::Clear | ( | ) | [protected] |
Clear all internal variables And reset PdfDocument to an intial state