| PdfAnnotation.h | | PdfAnnotation.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_ANNOTATION_H_ | | #ifndef _PDF_ANNOTATION_H_ | |
| #define _PDF_ANNOTATION_H_ | | #define _PDF_ANNOTATION_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfAction.h" | | #include "PdfAction.h" | |
| #include "PdfDestination.h" | | #include "PdfDestination.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfFileSpec; | | class PdfFileSpec; | |
| class PdfName; | | class PdfName; | |
| class PdfPage; | | class PdfPage; | |
| class PdfRect; | | class PdfRect; | |
| | | | |
| skipping to change at line 102 | | skipping to change at line 102 | |
| ePdfAnnotationFlags_ToggleNoView = 0x0100, | | ePdfAnnotationFlags_ToggleNoView = 0x0100, | |
| | | | |
| ePdfAnnotationFlags_Unknow = 0xffff | | ePdfAnnotationFlags_Unknow = 0xffff | |
| }; | | }; | |
| | | | |
| /** An annotation to a PdfPage | | /** An annotation to a PdfPage | |
| * To create an annotation use PdfPage::CreateAnnotation | | * To create an annotation use PdfPage::CreateAnnotation | |
| * | | * | |
| * \see PdfPage::CreateAnnotation | | * \see PdfPage::CreateAnnotation | |
| */ | | */ | |
|
| class PODOFO_API PdfAnnotation : public PdfElement { | | class PODOFO_DOC_API PdfAnnotation : public PdfElement { | |
| public: | | public: | |
| /** Create a new annotation object | | /** Create a new annotation object | |
| * | | * | |
| * \param pPage the parent page of this annotation | | * \param pPage the parent page of this annotation | |
| * \param eAnnot type of the annotation | | * \param eAnnot type of the annotation | |
| * \param rRect the rectangle in which the annotation will appear on t
he page | | * \param rRect the rectangle in which the annotation will appear on t
he page | |
| * \param pParent parent of this annotation | | * \param pParent parent of this annotation | |
| * | | * | |
| * \see PdfPage::CreateAnnotation | | * \see PdfPage::CreateAnnotation | |
| */ | | */ | |
| | | | |
| skipping to change at line 209 | | skipping to change at line 209 | |
| PdfString GetContents() const; | | PdfString GetContents() const; | |
| | | | |
| /** Set the destination for link annotations | | /** Set the destination for link annotations | |
| * \param rDestination target of the link | | * \param rDestination target of the link | |
| * | | * | |
| * \see GetDestination | | * \see GetDestination | |
| */ | | */ | |
| void SetDestination( const PdfDestination & rDestination ); | | void SetDestination( const PdfDestination & rDestination ); | |
| | | | |
| /** Get the destination of a link annotations | | /** Get the destination of a link annotations | |
|
| | | * \param pDoc a PdfDocument owning this annotation. | |
| | | * This is required to resolve names and pages. | |
| * \returns a destination object | | * \returns a destination object | |
| * | | * | |
| * \see SetDestination | | * \see SetDestination | |
| */ | | */ | |
|
| PdfDestination GetDestination() const; | | PdfDestination GetDestination( PdfDocument* pDoc ) const; | |
| | | | |
| /** | | /** | |
| * \returns true if this annotation has an destination | | * \returns true if this annotation has an destination | |
| */ | | */ | |
| bool HasDestination() const; | | bool HasDestination() const; | |
| | | | |
| /** Set the action that is executed for this annotation | | /** Set the action that is executed for this annotation | |
| * \param rAction an action object | | * \param rAction an action object | |
| * | | * | |
| * \see GetAction | | * \see GetAction | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 5 lines changed or added | |
|
| PdfColor.h | | PdfColor.h | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_COLOR_H_ | | #ifndef _PDF_COLOR_H_ | |
| #define _PDF_COLOR_H_ | | #define _PDF_COLOR_H_ | |
| | | | |
| #include "PdfDefines.h" | | #include "PdfDefines.h" | |
| | | | |
|
| | | #include "PdfName.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfArray; | | class PdfArray; | |
| class PdfObject; | | class PdfObject; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| | | | |
| /** A color object can represent either a grayscale | | /** A color object can represent either a grayscale | |
| * value, a RGB color, a CMYK color, a separation color or | | * value, a RGB color, a CMYK color, a separation color or | |
| * a CieLab color. | | * a CieLab color. | |
| * | | * | |
| | | | |
| skipping to change at line 356 | | skipping to change at line 358 | |
| | | | |
| /** Creates a color object from a PdfArray which represents a color. | | /** Creates a color object from a PdfArray which represents a color. | |
| * | | * | |
| * Raises an exception if this is no PdfColor! | | * Raises an exception if this is no PdfColor! | |
| * | | * | |
| * \param rArray an array that must be a color PdfArray | | * \param rArray an array that must be a color PdfArray | |
| * \returns a PdfColor object | | * \returns a PdfColor object | |
| */ | | */ | |
| static PdfColor FromArray( const PdfArray & rArray ); | | static PdfColor FromArray( const PdfArray & rArray ); | |
| | | | |
|
| | | /** | |
| | | * Convert a name into a colorspace enum. | |
| | | * @param rName name representing a colorspace such as DeviceGray | |
| | | * @returns colorspace enum or ePdfColorSpace_Unknown if name is unknow | |
| | | n | |
| | | * @see GetNameForColorSpace | |
| | | */ | |
| | | static EPdfColorSpace GetColorSpaceForName( const PdfName & rName ); | |
| | | | |
| | | /** | |
| | | * Convert a colorspace enum value into a name such as DeviceRGB | |
| | | * @param eColorSpace a colorspace | |
| | | * @returns a name | |
| | | * @see GetColorSpaceForName | |
| | | */ | |
| | | static PdfName GetNameForColorSpace( EPdfColorSpace eColorSpace ); | |
| | | | |
| /** Creates a colorspace object from a color to insert into resources. | | /** Creates a colorspace object from a color to insert into resources. | |
| * | | * | |
| * \param pOwner a pointer to the owner of the generated object | | * \param pOwner a pointer to the owner of the generated object | |
| * \returns a PdfObject pointer, which can be insert into resources, N
ULL if not needed | | * \returns a PdfObject pointer, which can be insert into resources, N
ULL if not needed | |
| */ | | */ | |
| PdfObject* BuildColorSpace( PdfVecObjects* pOwner ) const; | | PdfObject* BuildColorSpace( PdfVecObjects* pOwner ) const; | |
| | | | |
| protected: | | protected: | |
| union { | | union { | |
| double cmyk[4]; | | double cmyk[4]; | |
| | | | |
| skipping to change at line 644 | | skipping to change at line 662 | |
| ( | | ( | |
| (m_eAlternateColorSpace == ePdfColorSpace_CieLab) && | | (m_eAlternateColorSpace == ePdfColorSpace_CieLab) && | |
| (m_uColor.lab[0] == rhs.m_uColor.lab[0]) && | | (m_uColor.lab[0] == rhs.m_uColor.lab[0]) && | |
| (m_uColor.lab[1] == rhs.m_uColor.lab[1]) && | | (m_uColor.lab[1] == rhs.m_uColor.lab[1]) && | |
| (m_uColor.lab[2] == rhs.m_uColor.lab[2]) | | (m_uColor.lab[2] == rhs.m_uColor.lab[2]) | |
| ) | | ) | |
| ) | | ) | |
| ) | | ) | |
| return true; | | return true; | |
| | | | |
|
| | | if (m_eColorSpace == ePdfColorSpace_Unknown) | |
| | | return true; | |
| } | | } | |
| return false; | | return false; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline bool PdfColor::operator!=( const PdfColor & rhs ) const | | inline bool PdfColor::operator!=( const PdfColor & rhs ) const | |
| { | | { | |
| return ! (*this == rhs); | | return ! (*this == rhs); | |
| | | | |
End of changes. 3 change blocks. |
| 0 lines changed or deleted | | 21 lines changed or added | |
|
| PdfDestination.h | | PdfDestination.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_DESTINATION_H_ | | #ifndef _PDF_DESTINATION_H_ | |
| #define _PDF_DESTINATION_H_ | | #define _PDF_DESTINATION_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | | |
|
| #include "PdfArray.h" | | #include "podofo/base/PdfArray.h" | |
| #include "PdfRect.h" | | #include "podofo/base/PdfRect.h" | |
| #include "PdfReference.h" | | #include "podofo/base/PdfReference.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfAction; | | class PdfAction; | |
| class PdfPage; | | class PdfPage; | |
| class PdfRect; | | class PdfRect; | |
| | | | |
| enum EPdfDestinationFit { | | enum EPdfDestinationFit { | |
| ePdfDestinationFit_Fit, | | ePdfDestinationFit_Fit, | |
| ePdfDestinationFit_FitH, | | ePdfDestinationFit_FitH, | |
| | | | |
| skipping to change at line 69 | | skipping to change at line 69 | |
| ePdfDestinationType_FitBV, | | ePdfDestinationType_FitBV, | |
| | | | |
| ePdfDestinationType_Unknown = 0xFF | | ePdfDestinationType_Unknown = 0xFF | |
| }; | | }; | |
| | | | |
| /** A destination in a PDF file. | | /** A destination in a PDF file. | |
| * A destination can either be a page or an action. | | * A destination can either be a page or an action. | |
| * | | * | |
| * \see PdfOutlineItem \see PdfAnnotation \see PdfDocument | | * \see PdfOutlineItem \see PdfAnnotation \see PdfDocument | |
| */ | | */ | |
|
| class PODOFO_API PdfDestination { | | class PODOFO_DOC_API PdfDestination { | |
| public: | | public: | |
| | | | |
| /** Create an empty destination - points to nowhere | | /** Create an empty destination - points to nowhere | |
| */ | | */ | |
| PdfDestination( PdfVecObjects* pParent ); | | PdfDestination( PdfVecObjects* pParent ); | |
| | | | |
| /** Create a new PdfDestination from an existing PdfObject (such as loa
ded from a doc) | | /** Create a new PdfDestination from an existing PdfObject (such as loa
ded from a doc) | |
| * \param pObject the object to construct from | | * \param pObject the object to construct from | |
|
| | | * \param pDocument a PDF document owning this destination, needed to
resolve pages | |
| */ | | */ | |
|
| PdfDestination( PdfObject* pObject ); | | PdfDestination( PdfObject* pObject, PdfDocument* pDocument ); | |
| | | | |
| | | /** Create a new PdfDestination from an existing PdfObject (such as loa | |
| | | ded from a doc) | |
| | | * \param pObject the object to construct from | |
| | | * \param pVecObjects a PdfVecObjects owning this destination, needed | |
| | | to resolve pages | |
| | | */ | |
| | | PdfDestination( PdfObject* pObject, PdfVecObjects* pVecObjects ); | |
| | | | |
| /** Create a new PdfDestination with a page as destination | | /** Create a new PdfDestination with a page as destination | |
| * \param pPage a page which is the destination | | * \param pPage a page which is the destination | |
| * \param eFit fit mode for the page. Must be ePdfDestinationFit_Fit o
r ePdfDestinationFit_FitB | | * \param eFit fit mode for the page. Must be ePdfDestinationFit_Fit o
r ePdfDestinationFit_FitB | |
| */ | | */ | |
| PdfDestination( const PdfPage* pPage, EPdfDestinationFit eFit = ePdfDes
tinationFit_Fit ); | | PdfDestination( const PdfPage* pPage, EPdfDestinationFit eFit = ePdfDes
tinationFit_Fit ); | |
| | | | |
| /** Create a destination to a page with its contents magnified to fit i
nto the given rectangle | | /** Create a destination to a page with its contents magnified to fit i
nto the given rectangle | |
| * \param pPage a page which is the destination | | * \param pPage a page which is the destination | |
| * \param rRect magnify the page so that the contents of the rectangle
are visible | | * \param rRect magnify the page so that the contents of the rectangle
are visible | |
| | | | |
| skipping to change at line 124 | | skipping to change at line 131 | |
| | | | |
| /** Copy an existing PdfDestination | | /** Copy an existing PdfDestination | |
| * \param rhs copy this PdfDestination | | * \param rhs copy this PdfDestination | |
| * \returns this object | | * \returns this object | |
| */ | | */ | |
| const PdfDestination & operator=( const PdfDestination & rhs ); | | const PdfDestination & operator=( const PdfDestination & rhs ); | |
| | | | |
| /** Get the page that this destination points to | | /** Get the page that this destination points to | |
| * Requires that this PdfDestination was somehow | | * Requires that this PdfDestination was somehow | |
| * created by or from a PdfDocument. Won't work otherwise. | | * created by or from a PdfDocument. Won't work otherwise. | |
|
| | | * \param pDoc a PDF document owning this destination, needed to resol | |
| | | ve pages | |
| | | * | |
| | | * \returns the referenced PdfPage | |
| | | */ | |
| | | PdfPage* GetPage( PdfDocument* pDoc ); | |
| | | | |
| | | /** Get the page that this destination points to | |
| | | * Requires that this PdfDestination was somehow | |
| | | * created by or from a PdfDocument. Won't work otherwise. | |
| | | * \param pVecObjects a PdfVecObjects owning this destination, needed | |
| | | to resolve pages | |
| * | | * | |
| * \returns the referenced PdfPage | | * \returns the referenced PdfPage | |
| */ | | */ | |
|
| PdfPage* GetPage(); | | PdfPage* GetPage( PdfVecObjects* pVecObjects ); | |
| | | | |
| /** Get the destination fit type | | /** Get the destination fit type | |
| * | | * | |
| * \returns the fit type | | * \returns the fit type | |
| */ | | */ | |
| inline EPdfDestinationType GetType() const; | | inline EPdfDestinationType GetType() const; | |
| | | | |
| /** Get the destination zoom | | /** Get the destination zoom | |
| * Destination must be of type XYZ | | * Destination must be of type XYZ | |
| * otherwise exception is thrown. | | * otherwise exception is thrown. | |
| | | | |
| skipping to change at line 210 | | skipping to change at line 227 | |
| /** Adds this destination to an dictionary. | | /** Adds this destination to an dictionary. | |
| * This method handles the all the complexities of making sure it's ad
ded correctly | | * This method handles the all the complexities of making sure it's ad
ded correctly | |
| * | | * | |
| * If this destination is empty. Nothing will be added. | | * If this destination is empty. Nothing will be added. | |
| * | | * | |
| * \param dictionary the destination will be added to this dictionary | | * \param dictionary the destination will be added to this dictionary | |
| */ | | */ | |
| void AddToDictionary( PdfDictionary & dictionary ) const; | | void AddToDictionary( PdfDictionary & dictionary ) const; | |
| | | | |
| private: | | private: | |
|
| | | /** Initialize a new PdfDestination from an existing PdfObject (such as | |
| | | loaded from a doc) | |
| | | * and a document. | |
| | | * | |
| | | * \param pObject the object to construct from | |
| | | * \param pDoc a PDF document owning this destination, needed to resol | |
| | | ve pages | |
| | | */ | |
| | | void Init( PdfObject* pObject, PdfDocument* pDocument ); | |
| | | | |
| | | private: | |
| static const long s_lNumDestinations; | | static const long s_lNumDestinations; | |
| static const char* s_names[]; | | static const char* s_names[]; | |
| | | | |
| PdfArray m_array; | | PdfArray m_array; | |
| PdfObject* m_pObject; | | PdfObject* m_pObject; | |
| | | | |
| /** Create an empty destination - NOT ALLOWED | | /** Create an empty destination - NOT ALLOWED | |
| */ | | */ | |
| PdfDestination(); | | PdfDestination(); | |
| | | | |
| | | | |
End of changes. 8 change blocks. |
| 7 lines changed or deleted | | 39 lines changed or added | |
|
| PdfDifferenceEncoding.h | | PdfDifferenceEncoding.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_DIFFERENCE_ENCODING_H_ | | #ifndef _PDF_DIFFERENCE_ENCODING_H_ | |
| #define _PDF_DIFFERENCE_ENCODING_H_ | | #define _PDF_DIFFERENCE_ENCODING_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfEncoding.h" | | #include "podofo/base/PdfEncoding.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| | | | |
| #include <iterator> | | #include <iterator> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| /** A helper class for PdfDifferenceEncoding that | | /** A helper class for PdfDifferenceEncoding that | |
| * can be used to create a differences array. | | * can be used to create a differences array. | |
| */ | | */ | |
|
| class PODOFO_API PdfEncodingDifference { | | class PODOFO_DOC_API PdfEncodingDifference { | |
| struct TDifference { | | struct TDifference { | |
| int nCode; | | int nCode; | |
| PdfName name; | | PdfName name; | |
| pdf_utf16be unicodeValue; | | pdf_utf16be unicodeValue; | |
| }; | | }; | |
| | | | |
| typedef std::vector<TDifference> TVecDifferences; | | typedef std::vector<TDifference> TVecDifferences; | |
| typedef std::vector<TDifference>::iterator TIVecDifferences; | | typedef std::vector<TDifference>::iterator TIVecDifferences; | |
| typedef std::vector<TDifference>::const_iterator TCIVecDifferences; | | typedef std::vector<TDifference>::const_iterator TCIVecDifferences; | |
| | | | |
| | | | |
| skipping to change at line 125 | | skipping to change at line 125 | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline size_t PdfEncodingDifference::GetCount() const | | inline size_t PdfEncodingDifference::GetCount() const | |
| { | | { | |
| return m_vecDifferences.size(); | | return m_vecDifferences.size(); | |
| } | | } | |
| | | | |
| /** PdfDifferenceEncoding is an encoding, which is based | | /** PdfDifferenceEncoding is an encoding, which is based | |
| * on either the fonts encoding or a predefined encoding | | * on either the fonts encoding or a predefined encoding | |
| * and defines differences to this base encoding. | | * and defines differences to this base encoding. | |
| */ | | */ | |
|
| class PODOFO_API PdfDifferenceEncoding : public PdfEncoding, private PdfEle
ment { | | class PODOFO_DOC_API PdfDifferenceEncoding : public PdfEncoding, private Pd
fElement { | |
| public: | | public: | |
| | | | |
|
| | | /** | |
| | | * Defines the base encoding from which a | |
| | | * PdfDifferenceEncoding differs. | |
| | | */ | |
| enum EBaseEncoding { | | enum EBaseEncoding { | |
| eBaseEncoding_Font, ///< Use The fonts encoding as base | | eBaseEncoding_Font, ///< Use The fonts encoding as base | |
| eBaseEncoding_WinAnsi, ///< Use WinAnsiEncoding as base encoding | | eBaseEncoding_WinAnsi, ///< Use WinAnsiEncoding as base encoding | |
| eBaseEncoding_MacRoman, ///< Use MacRomanEncoding as base encoding | | eBaseEncoding_MacRoman, ///< Use MacRomanEncoding as base encoding | |
| eBaseEncoding_MacExpert ///< Use MacExpertEncoding as base encodin
g | | eBaseEncoding_MacExpert ///< Use MacExpertEncoding as base encodin
g | |
| }; | | }; | |
| | | | |
| /** Create a new PdfDifferenceEncoding which is based on | | /** Create a new PdfDifferenceEncoding which is based on | |
| * the fonts encoding. | | * the fonts encoding. | |
| * | | * | |
| | | | |
| skipping to change at line 189 | | skipping to change at line 193 | |
| /** Create a new PdfDifferenceEncoding from an existing object | | /** Create a new PdfDifferenceEncoding from an existing object | |
| * in a PDF file. | | * in a PDF file. | |
| * | | * | |
| * \param pObject an existing differences encoding | | * \param pObject an existing differences encoding | |
| * \param bAutoDelete if true the encoding is deleted by its owning fo
nt | | * \param bAutoDelete if true the encoding is deleted by its owning fo
nt | |
| */ | | */ | |
| PdfDifferenceEncoding( PdfObject* pObject, bool bAutoDelete = true ); | | PdfDifferenceEncoding( PdfObject* pObject, bool bAutoDelete = true ); | |
| | | | |
| /** Convert a standard character name to a unicode code point | | /** Convert a standard character name to a unicode code point | |
| * | | * | |
|
| * \param pszName a standard character name | | * \param rName a standard character name | |
| * \returns an unicode code point | | * \returns an unicode code point | |
| */ | | */ | |
| static pdf_utf16be NameToUnicodeID( const PdfName & rName ); | | static pdf_utf16be NameToUnicodeID( const PdfName & rName ); | |
| | | | |
| /** Convert an unicode code point to a standard character name | | /** Convert an unicode code point to a standard character name | |
| * | | * | |
| * \param inCodePoint a code point | | * \param inCodePoint a code point | |
| * \returns a standard character name of /.notdef if none could be fou
nd | | * \returns a standard character name of /.notdef if none could be fou
nd | |
| */ | | */ | |
| static PdfName UnicodeIDToName( pdf_utf16be inCodePoint ); | | static PdfName UnicodeIDToName( pdf_utf16be inCodePoint ); | |
| | | | |
| skipping to change at line 221 | | skipping to change at line 225 | |
| * \param rEncodedString a string encoded by this encoding. | | * \param rEncodedString a string encoded by this encoding. | |
| * Usually this string was read from a content stream. | | * Usually this string was read from a content stream. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an unicode PdfString. | | * \returns an unicode PdfString. | |
| */ | | */ | |
| virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const; | | virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const; | |
| | | | |
| /** Convert a unicode PdfString to a string encoded with this encoding. | | /** Convert a unicode PdfString to a string encoded with this encoding. | |
| * | | * | |
|
| * \param an unicode PdfString. | | * \param rString an unicode PdfString. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | | * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | |
| * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | | * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | |
| */ | | */ | |
| virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const; | | virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const; | |
| | | | |
| /** | | /** | |
| * \returns true if this encoding should be deleted automatically with
the | | * \returns true if this encoding should be deleted automatically with
the | |
| * font. | | * font. | |
| | | | |
End of changes. 6 change blocks. |
| 6 lines changed or deleted | | 10 lines changed or added | |
|
| PdfDocument.h | | PdfDocument.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_DOCUMENT_H_ | | #ifndef _PDF_DOCUMENT_H_ | |
| #define _PDF_DOCUMENT_H_ | | #define _PDF_DOCUMENT_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | | |
| | | #include "podofo/base/PdfObject.h" | |
| | | #include "podofo/base/PdfParser.h" | |
| | | #include "podofo/base/PdfWriter.h" | |
| | | | |
| #include "PdfAcroForm.h" | | #include "PdfAcroForm.h" | |
| #include "PdfFontCache.h" | | #include "PdfFontCache.h" | |
| #include "PdfInfo.h" | | #include "PdfInfo.h" | |
|
| #include "PdfObject.h" | | | |
| #include "PdfParser.h" | | | |
| #include "PdfWriter.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDestination; | | class PdfDestination; | |
| class PdfDictionary; | | class PdfDictionary; | |
| class PdfFileSpec; | | class PdfFileSpec; | |
| class PdfFont; | | class PdfFont; | |
| class PdfInfo; | | class PdfInfo; | |
| class PdfMemDocument; | | class PdfMemDocument; | |
| class PdfNamesTree; | | class PdfNamesTree; | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 64 | |
| * PdfDocument cannot be used directly. | | * PdfDocument cannot be used directly. | |
| * Use PdfMemDocument whenever you want to change the object structure | | * Use PdfMemDocument whenever you want to change the object structure | |
| * of a PDF file. | | * of a PDF file. | |
| * | | * | |
| * When you are only creating PDF files, please use PdfStreamedDocument | | * When you are only creating PDF files, please use PdfStreamedDocument | |
| * which is usually faster for creating PDFs. | | * which is usually faster for creating PDFs. | |
| * | | * | |
| * \see PdfStreamedDocument | | * \see PdfStreamedDocument | |
| * \see PdfMemDocument | | * \see PdfMemDocument | |
| */ | | */ | |
|
| class PODOFO_API PdfDocument { | | class PODOFO_DOC_API PdfDocument { | |
| friend class PdfWriter; | | | |
| friend class PdfElement; | | friend class PdfElement; | |
| | | | |
| public: | | public: | |
| /** Close down/destruct the PdfDocument | | /** Close down/destruct the PdfDocument | |
| */ | | */ | |
| virtual ~PdfDocument(); | | virtual ~PdfDocument(); | |
| | | | |
| /** Get the write mode used for wirting the PDF | | /** Get the write mode used for wirting the PDF | |
| * \returns the write mode | | * \returns the write mode | |
| */ | | */ | |
| | | | |
| skipping to change at line 168 | | skipping to change at line 169 | |
| bool bEmbedd = true ); | | bool bEmbedd = true ); | |
| | | | |
| /** Creates a PdfFont object | | /** Creates a PdfFont object | |
| * \param pszFontName name of the font as it is known to the system | | * \param pszFontName name of the font as it is known to the system | |
| * \param bBold if true search for a bold font | | * \param bBold if true search for a bold font | |
| * \param bItalic if true search for an italic font | | * \param bItalic if true search for an italic font | |
| * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | | * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | |
| * \param eFontCreationFlags special flag to specify how fonts should
be created | | * \param eFontCreationFlags special flag to specify how fonts should
be created | |
| * \param bEmbedd specifies whether this font should be embedded in th
e PDF file. | | * \param bEmbedd specifies whether this font should be embedded in th
e PDF file. | |
| * Embedding fonts is usually a good idea. | | * Embedding fonts is usually a good idea. | |
|
| * \param optional: pszFileName path to a valid font file | | * \param pszFileName path to a valid font file | |
| * | | * | |
| * \returns PdfFont* a pointer to a new PdfFont object. | | * \returns PdfFont* a pointer to a new PdfFont object. | |
| */ | | */ | |
| PdfFont* CreateFont( const char* pszFontName, bool bBold, bool bItalic, | | PdfFont* CreateFont( const char* pszFontName, bool bBold, bool bItalic, | |
| const PdfEncoding * const pEncoding = PdfEncodingF
actory::GlobalWinAnsiEncodingInstance(), | | const PdfEncoding * const pEncoding = PdfEncodingF
actory::GlobalWinAnsiEncodingInstance(), | |
| PdfFontCache::EFontCreationFlags eFontCreationFlag
s = PdfFontCache::eFontCreationFlags_AutoSelectBase14, | | PdfFontCache::EFontCreationFlags eFontCreationFlag
s = PdfFontCache::eFontCreationFlags_AutoSelectBase14, | |
| bool bEmbedd = true, const char* pszFileName = NUL
L ); | | bool bEmbedd = true, const char* pszFileName = NUL
L ); | |
| | | | |
| #ifdef _WIN32 | | #ifdef _WIN32 | |
| /** Creates a PdfFont object | | /** Creates a PdfFont object | |
| | | | |
| skipping to change at line 242 | | skipping to change at line 243 | |
| PdfFont* CreateDuplicateFontType1( PdfFont * pFont, const char * psz
Suffix ); | | PdfFont* CreateDuplicateFontType1( PdfFont * pFont, const char * psz
Suffix ); | |
| | | | |
| /** Creates a font subset which contains only a few characters and i
s embedded. | | /** Creates a font subset which contains only a few characters and i
s embedded. | |
| * | | * | |
| * THIS WORKS ONLY FOR TTF FONTS! | | * THIS WORKS ONLY FOR TTF FONTS! | |
| * | | * | |
| * \param pszFontName name of the font as it is known to the system | | * \param pszFontName name of the font as it is known to the system | |
| * \param bBold if true search for a bold font | | * \param bBold if true search for a bold font | |
| * \param bItalic if true search for an italic font | | * \param bItalic if true search for an italic font | |
| * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | | * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | |
|
| | | * \param pszFileName optional path of a fontfile which should be used | |
| * | | * | |
| * \returns PdfFont* a pointer to a new PdfFont object. | | * \returns PdfFont* a pointer to a new PdfFont object. | |
| */ | | */ | |
| PdfFont* CreateFontSubset( const char* pszFontName, bool bBold, bool bI
talic, | | PdfFont* CreateFontSubset( const char* pszFontName, bool bBold, bool bI
talic, | |
|
| const PdfEncoding * const = PdfEncodingFactor
y::GlobalWinAnsiEncodingInstance(), | | const PdfEncoding * const pEncoding = PdfEnco
dingFactory::GlobalWinAnsiEncodingInstance(), | |
| const char* pszFileName = NULL); | | const char* pszFileName = NULL); | |
| | | | |
| #ifdef _WIN32 | | #ifdef _WIN32 | |
| /** Creates a font subset which contains only a few characters and is e
mbedded. | | /** Creates a font subset which contains only a few characters and is e
mbedded. | |
| * | | * | |
| * THIS WORKS ONLY FOR TTF FONTS! | | * THIS WORKS ONLY FOR TTF FONTS! | |
| * | | * | |
| * \param pszFontName name of the font as it is known to the system | | * \param pszFontName name of the font as it is known to the system | |
| * \param bBold if true search for a bold font | | * \param bBold if true search for a bold font | |
| * \param bItalic if true search for an italic font | | * \param bItalic if true search for an italic font | |
| | | | |
| skipping to change at line 559 | | skipping to change at line 561 | |
| /** Recursively changes every PdfReference in the PdfObject and in any
child | | /** Recursively changes every PdfReference in the PdfObject and in any
child | |
| * that is either an PdfArray or a direct object. | | * that is either an PdfArray or a direct object. | |
| * The reference is changed so that difference is added to the object
number | | * The reference is changed so that difference is added to the object
number | |
| * if the reference. | | * if the reference. | |
| * \param pObject object to change | | * \param pObject object to change | |
| * \param difference add this value to every reference that is encount
ered | | * \param difference add this value to every reference that is encount
ered | |
| */ | | */ | |
| void FixObjectReferences( PdfObject* pObject, int difference ); | | void FixObjectReferences( PdfObject* pObject, int difference ); | |
| | | | |
| /** Low level APIs for setting a viewer preference | | /** Low level APIs for setting a viewer preference | |
|
| * \param whichPrefs the dictionary key to set | | * \param whichPref the dictionary key to set | |
| * \param the object to be set | | * \param valueObj the object to be set | |
| */ | | */ | |
| void SetViewerPreference( const PdfName& whichPref, const PdfObject & v
alueObj ); | | void SetViewerPreference( const PdfName& whichPref, const PdfObject & v
alueObj ); | |
|
| | | | |
| | | /** Low level APIs for setting a viewer preference | |
| | | * Convinience overload. | |
| | | * \param whichPref the dictionary key to set | |
| | | * \param inValue the object to be set | |
| | | */ | |
| void SetViewerPreference( const PdfName& whichPref, bool inValue ); | | void SetViewerPreference( const PdfName& whichPref, bool inValue ); | |
| | | | |
| /** Clear all internal variables | | /** Clear all internal variables | |
| * And reset PdfDocument to an intial state | | * And reset PdfDocument to an intial state | |
| */ | | */ | |
| void Clear(); | | void Clear(); | |
| | | | |
| protected: | | protected: | |
| PdfFontCache m_fontCache; | | PdfFontCache m_fontCache; | |
| | | | |
| | | | |
End of changes. 8 change blocks. |
| 10 lines changed or deleted | | 18 lines changed or added | |
|
| PdfEncoding.h | | PdfEncoding.h | |
| | | | |
| skipping to change at line 25 | | skipping to change at line 25 | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_ENCODING_H_ | | #ifndef _PDF_ENCODING_H_ | |
| #define _PDF_ENCODING_H_ | | #define _PDF_ENCODING_H_ | |
| | | | |
| #include "PdfDefines.h" | | #include "PdfDefines.h" | |
|
| #include "PdfElement.h" | | | |
| #include "PdfName.h" | | #include "PdfName.h" | |
| #include "PdfString.h" | | #include "PdfString.h" | |
| #include "util/PdfMutex.h" | | #include "util/PdfMutex.h" | |
| | | | |
| #include <iterator> | | #include <iterator> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDictionary; | | class PdfDictionary; | |
| class PdfFont; | | class PdfFont; | |
| | | | |
| skipping to change at line 160 | | skipping to change at line 159 | |
| * \param rEncodedString a string encoded by this encoding. | | * \param rEncodedString a string encoded by this encoding. | |
| * Usually this string was read from a content stream. | | * Usually this string was read from a content stream. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an unicode PdfString. | | * \returns an unicode PdfString. | |
| */ | | */ | |
| virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const = 0; | | virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const = 0; | |
| | | | |
| /** Convert a unicode PdfString to a string encoded with this encoding. | | /** Convert a unicode PdfString to a string encoded with this encoding. | |
| * | | * | |
|
| * \param an unicode PdfString. | | * \param rString an unicode PdfString. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | | * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | |
| * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | | * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | |
| */ | | */ | |
| virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const = 0; | | virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const = 0; | |
| | | | |
| /** | | /** | |
| * \returns true if this encoding should be deleted automatically with
the | | * \returns true if this encoding should be deleted automatically with
the | |
| * font. | | * font. | |
| | | | |
| skipping to change at line 344 | | skipping to change at line 343 | |
| * \param rEncodedString a string encoded by this encoding. | | * \param rEncodedString a string encoded by this encoding. | |
| * Usually this string was read from a content stream. | | * Usually this string was read from a content stream. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an unicode PdfString. | | * \returns an unicode PdfString. | |
| */ | | */ | |
| virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const; | | virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c
onst PdfFont* pFont ) const; | |
| | | | |
| /** Convert a unicode PdfString to a string encoded with this encoding. | | /** Convert a unicode PdfString to a string encoded with this encoding. | |
| * | | * | |
|
| * \param an unicode PdfString. | | * \param rString an unicode PdfString. | |
| * \param pFont the font for which this string is converted | | * \param pFont the font for which this string is converted | |
| * | | * | |
| * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | | * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is
treated as a series of bytes | |
| * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | | * and is allowed to have 0 bytes. The returned buffer must n
ot be a unicode string. | |
| */ | | */ | |
| virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const; | | virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin
g, const PdfFont* pFont ) const; | |
| | | | |
| /** | | /** | |
| * PdfSimpleEncoding subclasses are usuylla not auto-deleted, as | | * PdfSimpleEncoding subclasses are usuylla not auto-deleted, as | |
| * they are allocated statically only once. | | * they are allocated statically only once. | |
| | | | |
| skipping to change at line 708 | | skipping to change at line 707 | |
| * | | * | |
| * \returns an array of 256 big endian unicode code points | | * \returns an array of 256 big endian unicode code points | |
| */ | | */ | |
| virtual const pdf_utf16be* GetToUnicodeTable() const; | | virtual const pdf_utf16be* GetToUnicodeTable() const; | |
| | | | |
| private: | | private: | |
| static const pdf_utf16be s_cEncoding[256]; ///< conversion table from Z
apfDingbatsEncoding to UTF16 | | static const pdf_utf16be s_cEncoding[256]; ///< conversion table from Z
apfDingbatsEncoding to UTF16 | |
| | | | |
| }; | | }; | |
| | | | |
|
| /** PdfIdentityEncoding is a two-byte encoding which can be | | | |
| * used with TrueType fonts to represent all characters | | | |
| * present in a font. If the font contains all unicode | | | |
| * glyphs, PdfIdentityEncoding will support all unicode | | | |
| * characters. | | | |
| */ | | | |
| class PODOFO_API PdfIdentityEncoding : public PdfEncoding { | | | |
| public: | | | |
| /** | | | |
| * Create a new PdfIdentityEncoding. | | | |
| * | | | |
| * \param nFirstChar the first supported unicode character code (at le | | | |
| ast 0) | | | |
| * \param nLastChar the last supported unicode character code, | | | |
| * must be larger than nFirstChar (max value is 0xfff | | | |
| f) | | | |
| * \param bAutoDelete if true the encoding is deleted by its owning fo | | | |
| nt | | | |
| */ | | | |
| PdfIdentityEncoding( int nFirstChar = 0, int nLastChar = 0xffff, bool b | | | |
| AutoDelete = true ); | | | |
| | | | |
| /** Add this encoding object to a dictionary | | | |
| * usually be adding an /Encoding key in font dictionaries. | | | |
| * | | | |
| * \param rDictionary add the encoding to this dictionary | | | |
| */ | | | |
| virtual void AddToDictionary( PdfDictionary & rDictionary ) const; | | | |
| | | | |
| /** Convert a string that is encoded with this encoding | | | |
| * to an unicode PdfString. | | | |
| * | | | |
| * \param rEncodedString a string encoded by this encoding. | | | |
| * Usually this string was read from a content stream. | | | |
| * \param pFont the font for which this string is converted | | | |
| * | | | |
| * \returns an unicode PdfString. | | | |
| */ | | | |
| virtual PdfString ConvertToUnicode( const PdfString & rEncodedString, c | | | |
| onst PdfFont* pFont ) const; | | | |
| | | | |
| /** Convert a unicode PdfString to a string encoded with this encoding. | | | |
| * | | | |
| * \param an unicode PdfString. | | | |
| * \param pFont the font for which this string is converted | | | |
| * | | | |
| * \returns an encoded PdfRefCountedBuffer. The PdfRefCountedBuffer is | | | |
| treated as a series of bytes | | | |
| * and is allowed to have 0 bytes. The returned buffer must n | | | |
| ot be a unicode string. | | | |
| */ | | | |
| virtual PdfRefCountedBuffer ConvertToEncoding( const PdfString & rStrin | | | |
| g, const PdfFont* pFont ) const; | | | |
| | | | |
| /** | | | |
| * PdfIdentityEncoding is usually delete along with the font. | | | |
| * | | | |
| * \returns true if this encoding should be deleted automatically with | | | |
| the | | | |
| * font. | | | |
| */ | | | |
| virtual bool IsAutoDelete() const; | | | |
| | | | |
| /** | | | |
| * \returns true if this is a single byte encoding with a maximum of 2 | | | |
| 56 values. | | | |
| */ | | | |
| virtual bool IsSingleByteEncoding() const; | | | |
| | | | |
| /** Get the unicode character code for this encoding | | | |
| * at the position nIndex. nIndex is a position between | | | |
| * GetFirstChar() and GetLastChar() | | | |
| * | | | |
| * \param nIndex character code at position index | | | |
| * \returns unicode character code | | | |
| * | | | |
| * \see GetFirstChar | | | |
| * \see GetLastChar | | | |
| * | | | |
| * Will throw an exception if nIndex is out of range. | | | |
| */ | | | |
| virtual pdf_utf16be GetCharCode( int nIndex ) const; | | | |
| | | | |
| protected: | | | |
| /** Get a unique ID for this encoding | | | |
| * which can used for comparisons! | | | |
| * | | | |
| * \returns a unique id for this encoding! | | | |
| */ | | | |
| inline virtual const PdfName & GetID() const; | | | |
| | | | |
| private: | | | |
| | | | |
| /** Gets the unicode value from a char code in this font | | | |
| * | | | |
| * \param lCharCode the character code (i.e. glyph id) | | | |
| * | | | |
| * \returns an unicode value | | | |
| */ | | | |
| pdf_utf16be GetUnicodeValue( long lCharCode ) const; | | | |
| | | | |
| private: | | | |
| bool m_bAutoDelete; ///< If true this encoding is deleted by it | | | |
| s font. | | | |
| PdfName m_id; ///< Unique ID of this encoding | | | |
| }; | | | |
| | | | |
| // ----------------------------------------------------- | | | |
| // | | | |
| // ----------------------------------------------------- | | | |
| inline const PdfName & PdfIdentityEncoding::GetID() const | | | |
| { | | | |
| return m_id; | | | |
| } | | | |
| | | | |
| // ----------------------------------------------------- | | | |
| // | | | |
| // ----------------------------------------------------- | | | |
| inline bool PdfIdentityEncoding::IsAutoDelete() const | | | |
| { | | | |
| return m_bAutoDelete; | | | |
| } | | | |
| | | | |
| // ----------------------------------------------------- | | | |
| // | | | |
| // ----------------------------------------------------- | | | |
| inline bool PdfIdentityEncoding::IsSingleByteEncoding() const | | | |
| { | | | |
| return false; | | | |
| } | | | |
| | | | |
| }; /* namespace PoDoFo */ | | }; /* namespace PoDoFo */ | |
| | | | |
| #endif // _PDF_ENCODING_H_ | | #endif // _PDF_ENCODING_H_ | |
| | | | |
End of changes. 4 change blocks. |
| 134 lines changed or deleted | | 2 lines changed or added | |
|
| PdfEncrypt.h | | PdfEncrypt.h | |
| | | | |
| skipping to change at line 90 | | skipping to change at line 90 | |
| ePdfPermissions_Print = 0x00000004, ///< Allow printing t
he document | | ePdfPermissions_Print = 0x00000004, ///< Allow printing t
he document | |
| ePdfPermissions_Edit = 0x00000008, ///< Allow modifying
the document besides annotations, form fields or chaning pages | | ePdfPermissions_Edit = 0x00000008, ///< Allow modifying
the document besides annotations, form fields or chaning pages | |
| ePdfPermissions_Copy = 0x00000010, ///< Allow text and g
raphic extraction | | ePdfPermissions_Copy = 0x00000010, ///< Allow text and g
raphic extraction | |
| ePdfPermissions_EditNotes = 0x00000020, ///< Add or modify te
xt annoations or form fields (if ePdfPermissions_Edit is set also allow to
create interactive form fields including signature) | | ePdfPermissions_EditNotes = 0x00000020, ///< Add or modify te
xt annoations or form fields (if ePdfPermissions_Edit is set also allow to
create interactive form fields including signature) | |
| ePdfPermissions_FillAndSign = 0x00000100, ///< Fill in existing
form or signature fields | | ePdfPermissions_FillAndSign = 0x00000100, ///< Fill in existing
form or signature fields | |
| ePdfPermissions_Accessible = 0x00000200, ///< Extract text and
graphics to support user with disabillities | | ePdfPermissions_Accessible = 0x00000200, ///< Extract text and
graphics to support user with disabillities | |
| ePdfPermissions_DocAssembly = 0x00000400, ///< Assemble the doc
ument: insert, create, rotate delete pages or add bookmarks | | ePdfPermissions_DocAssembly = 0x00000400, ///< Assemble the doc
ument: insert, create, rotate delete pages or add bookmarks | |
| ePdfPermissions_HighPrint = 0x00000800 ///< Print a high res
olution version of the document | | ePdfPermissions_HighPrint = 0x00000800 ///< Print a high res
olution version of the document | |
| } EPdfPermissions; | | } EPdfPermissions; | |
| | | | |
|
| | | /** | |
| | | * The encryption algorithm. | |
| | | */ | |
| typedef enum { | | typedef enum { | |
| ePdfEncryptAlgorithm_RC4V1 = 1, ///< RC4 Version 1 encryption using
a 40bit key | | ePdfEncryptAlgorithm_RC4V1 = 1, ///< RC4 Version 1 encryption using
a 40bit key | |
| ePdfEncryptAlgorithm_RC4V2 = 2, ///< RC4 Version 2 encryption using
a key with 40-128bit | | ePdfEncryptAlgorithm_RC4V2 = 2, ///< RC4 Version 2 encryption using
a key with 40-128bit | |
| ePdfEncryptAlgorithm_AESV2 = 4 ///< AES encryption with an 128 bit
key (PDF1.6) | | ePdfEncryptAlgorithm_AESV2 = 4 ///< AES encryption with an 128 bit
key (PDF1.6) | |
| } EPdfEncryptAlgorithm; | | } EPdfEncryptAlgorithm; | |
| | | | |
| /** Create a PdfEncrypt object which can be used to encrypt a PDF file. | | /** Create a PdfEncrypt object which can be used to encrypt a PDF file. | |
| * | | * | |
| * \param userPassword the user password (if empty the user does not h
ave | | * \param userPassword the user password (if empty the user does not h
ave | |
| * to enter a password to open the document) | | * to enter a password to open the document) | |
| * \param ownerPassword the owner password | | * \param ownerPassword the owner password | |
| * \param protection several EPdfPermissions values or'ed together to
set | | * \param protection several EPdfPermissions values or'ed together to
set | |
| * the users permissions for this document | | * the users permissions for this document | |
|
| * \param eRevision the revision of the encryption algorithm to be use
d | | * \param eAlgorithm the revision of the encryption algorithm to be us
ed | |
| * \param eKeyLength the length of the encryption key ranging from 40
to 128 bits | | * \param eKeyLength the length of the encryption key ranging from 40
to 128 bits | |
| * (only used if eAlgorithm == ePdfEncryptAlgorithm_
RC4V2) | | * (only used if eAlgorithm == ePdfEncryptAlgorithm_
RC4V2) | |
| * | | * | |
| * \see GenerateEncryptionKey with the documentID to generate the real | | * \see GenerateEncryptionKey with the documentID to generate the real | |
| * encryption key using this information | | * encryption key using this information | |
| */ | | */ | |
| static PdfEncrypt * CreatePdfEncrypt( const std::string & userPassword, | | static PdfEncrypt * CreatePdfEncrypt( const std::string & userPassword, | |
| const std::string & ownerPassword
, | | const std::string & ownerPassword
, | |
| int protection = ePdfPermissions_
Print | | | int protection = ePdfPermissions_
Print | | |
| ePdfPermissions_Edit | | | ePdfPermissions_Edit | | |
| | | | |
| skipping to change at line 396 | | skipping to change at line 399 | |
| unsigned char* textout); | | unsigned char* textout); | |
| | | | |
| /// Calculate the binary MD5 message digest of the given data | | /// Calculate the binary MD5 message digest of the given data | |
| static void GetMD5Binary(const unsigned char* data, int length, unsigne
d char* digest); | | static void GetMD5Binary(const unsigned char* data, int length, unsigne
d char* digest); | |
| | | | |
| /// Generate initial vector | | /// Generate initial vector | |
| void GenerateInitialVector(unsigned char iv[16]); | | void GenerateInitialVector(unsigned char iv[16]); | |
| | | | |
| /** Create the encryption key for the current object. | | /** Create the encryption key for the current object. | |
| * | | * | |
|
| * \param pObjkey pointer to an array of at least MD5_HASHBYTES (=16)
bytes length | | * \param objkey pointer to an array of at least MD5_HASHBYTES (=16) b
ytes length | |
| * \param pnKeyLen pointer to an integer where the actual keylength is
stored. | | * \param pnKeyLen pointer to an integer where the actual keylength is
stored. | |
| */ | | */ | |
| void CreateObjKey( unsigned char objkey[16], int* pnKeyLen ) const; | | void CreateObjKey( unsigned char objkey[16], int* pnKeyLen ) const; | |
| | | | |
| EPdfEncryptAlgorithm m_eAlgorithm; ///< The used encryption algorith
m | | EPdfEncryptAlgorithm m_eAlgorithm; ///< The used encryption algorith
m | |
| int m_keyLength; ///< Length of encryption key | | int m_keyLength; ///< Length of encryption key | |
| int m_rValue; ///< Revision | | int m_rValue; ///< Revision | |
| int m_pValue; ///< P entry in pdf document | | int m_pValue; ///< P entry in pdf document | |
| EPdfKeyLength m_eKeyLength; ///< The key length | | EPdfKeyLength m_eKeyLength; ///< The key length | |
| std::string m_userPass; ///< User password | | std::string m_userPass; ///< User password | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 5 lines changed or added | |
|
| PdfError.h | | PdfError.h | |
| | | | |
| skipping to change at line 70 | | skipping to change at line 70 | |
| ePdfError_InternalLogic, /**< An internal sanity check or as
sertion failed. */ | | ePdfError_InternalLogic, /**< An internal sanity check or as
sertion failed. */ | |
| ePdfError_InvalidEnumValue, /**< An invalid enum value was spec
ified. */ | | ePdfError_InvalidEnumValue, /**< An invalid enum value was spec
ified. */ | |
| | | | |
| ePdfError_PageNotFound, /**< The requested page could not b
e found in the PDF. */ | | ePdfError_PageNotFound, /**< The requested page could not b
e found in the PDF. */ | |
| | | | |
| ePdfError_NoPdfFile, /**< The file is no PDF file. */ | | ePdfError_NoPdfFile, /**< The file is no PDF file. */ | |
| ePdfError_NoXRef, /**< The PDF file has no or an inva
lid XRef table. */ | | ePdfError_NoXRef, /**< The PDF file has no or an inva
lid XRef table. */ | |
| ePdfError_NoTrailer, /**< The PDF file has no or an inva
lid trailer. */ | | ePdfError_NoTrailer, /**< The PDF file has no or an inva
lid trailer. */ | |
| ePdfError_NoNumber, /**< A number was expected in the P
DF file, but the read string is no number. */ | | ePdfError_NoNumber, /**< A number was expected in the P
DF file, but the read string is no number. */ | |
| ePdfError_NoObject, /**< A object was expected and non
was found. */ | | ePdfError_NoObject, /**< A object was expected and non
was found. */ | |
|
| | | ePdfError_NoEOFToken, /**< The PDF file has no or an inva
lid EOF marker. */ | |
| | | | |
| ePdfError_InvalidTrailerSize, /**< The trailer size is invalid. *
/ | | ePdfError_InvalidTrailerSize, /**< The trailer size is invalid. *
/ | |
| ePdfError_InvalidLinearization, /**< The linearization directory of
a web-optimized PDF file is invalid. */ | | ePdfError_InvalidLinearization, /**< The linearization directory of
a web-optimized PDF file is invalid. */ | |
| ePdfError_InvalidDataType, /**< The passed datatype is invalid
or was not recognized */ | | ePdfError_InvalidDataType, /**< The passed datatype is invalid
or was not recognized */ | |
| ePdfError_InvalidXRef, /**< The XRef table is invalid */ | | ePdfError_InvalidXRef, /**< The XRef table is invalid */ | |
| ePdfError_InvalidXRefStream, /**< A XRef steam is invalid */ | | ePdfError_InvalidXRefStream, /**< A XRef steam is invalid */ | |
| ePdfError_InvalidXRefType, /**< The XRef type is invalid or wa
s not found */ | | ePdfError_InvalidXRefType, /**< The XRef type is invalid or wa
s not found */ | |
| ePdfError_InvalidPredictor, /**< Invalid or unimplemented predi
ctor */ | | ePdfError_InvalidPredictor, /**< Invalid or unimplemented predi
ctor */ | |
| ePdfError_InvalidStrokeStyle, /**< Invalid stroke style during dr
awing */ | | ePdfError_InvalidStrokeStyle, /**< Invalid stroke style during dr
awing */ | |
| ePdfError_InvalidHexString, /**< Invalid hex string */ | | ePdfError_InvalidHexString, /**< Invalid hex string */ | |
| | | | |
| skipping to change at line 214 | | skipping to change at line 215 | |
| public: | | public: | |
| | | | |
| // OC 17.08.2010 New to optionally replace stderr output by a callback: | | // OC 17.08.2010 New to optionally replace stderr output by a callback: | |
| class LogMessageCallback | | class LogMessageCallback | |
| { | | { | |
| public: | | public: | |
| virtual ~LogMessageCallback() {} // every class with virtual method
s needs a virtual destructor | | virtual ~LogMessageCallback() {} // every class with virtual method
s needs a virtual destructor | |
| virtual void LogMessage( ELogSeverity eLogSeverity, const char* psz
Prefix, const char* pszMsg, va_list & args ) = 0; | | virtual void LogMessage( ELogSeverity eLogSeverity, const char* psz
Prefix, const char* pszMsg, va_list & args ) = 0; | |
| virtual void LogMessage( ELogSeverity eLogSeverity, const wchar_t*
pszPrefix, const wchar_t* pszMsg, va_list & args ) = 0; | | virtual void LogMessage( ELogSeverity eLogSeverity, const wchar_t*
pszPrefix, const wchar_t* pszMsg, va_list & args ) = 0; | |
| }; | | }; | |
|
| | | | |
| /** Set a global static LogMessageCallback functor to repleace stderr o
utput in LogMessageInternal | | /** Set a global static LogMessageCallback functor to repleace stderr o
utput in LogMessageInternal | |
|
| * \param fCallback the pointer to the new callback functor object | | * \param fLogMessageCallback the pointer to the new callback functor
object | |
| * \returns the pointer to the previous callback functor object | | * \returns the pointer to the previous callback functor object | |
| */ | | */ | |
| static LogMessageCallback* SetLogMessageCallback(LogMessageCallback* fL
ogMessageCallback); | | static LogMessageCallback* SetLogMessageCallback(LogMessageCallback* fL
ogMessageCallback); | |
| | | | |
| /** Create a PdfError object initialized to ErrOk | | /** Create a PdfError object initialized to ErrOk | |
| */ | | */ | |
| PdfError(); | | PdfError(); | |
| | | | |
| /** Create a PdfError object with a given error code. | | /** Create a PdfError object with a given error code. | |
| * \param eCode the error code of this object | | * \param eCode the error code of this object | |
| | | | |
| skipping to change at line 425 | | skipping to change at line 427 | |
| | | | |
| static void LogMessageInternal( ELogSeverity eLogSeverity, const char*
pszMsg, va_list & args ); | | static void LogMessageInternal( ELogSeverity eLogSeverity, const char*
pszMsg, va_list & args ); | |
| static void LogMessageInternal( ELogSeverity eLogSeverity, const wchar_
t* pszMsg, va_list & args ); | | static void LogMessageInternal( ELogSeverity eLogSeverity, const wchar_
t* pszMsg, va_list & args ); | |
| | | | |
| private: | | private: | |
| EPdfError m_error; | | EPdfError m_error; | |
| | | | |
| TDequeErrorInfo m_callStack; | | TDequeErrorInfo m_callStack; | |
| | | | |
| static bool s_DgbEnabled; | | static bool s_DgbEnabled; | |
|
| static bool s_LogEnabled; | | static bool s_LogEnabled; | |
| | | | |
| // OC 17.08.2010 New to optionally replace stderr output by a callback: | | // OC 17.08.2010 New to optionally replace stderr output by a callback: | |
| static LogMessageCallback* m_fLogMessageCallback; | | static LogMessageCallback* m_fLogMessageCallback; | |
| }; | | }; | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| EPdfError PdfError::GetError() const | | EPdfError PdfError::GetError() const | |
| { | | { | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 4 lines changed or added | |
|
| PdfField.h | | PdfField.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FIELD_H_ | | #ifndef _PDF_FIELD_H_ | |
| #define _PDF_FIELD_H_ | | #define _PDF_FIELD_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | #include "podofo/base/PdfName.h" | |
| | | #include "podofo/base/PdfString.h" | |
| | | | |
| #include "PdfAnnotation.h" | | #include "PdfAnnotation.h" | |
|
| #include "PdfName.h" | | | |
| #include "PdfString.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfAcroForm; | | class PdfAcroForm; | |
| class PdfAction; | | class PdfAction; | |
| class PdfAnnotation; | | class PdfAnnotation; | |
| class PdfDocument; | | class PdfDocument; | |
| class PdfObject; | | class PdfObject; | |
| class PdfPage; | | class PdfPage; | |
| class PdfRect; | | class PdfRect; | |
| | | | |
| skipping to change at line 73 | | skipping to change at line 73 | |
| */ | | */ | |
| enum EPdfHighlightingMode { | | enum EPdfHighlightingMode { | |
| ePdfHighlightingMode_None, ///< Do no highlighting | | ePdfHighlightingMode_None, ///< Do no highlighting | |
| ePdfHighlightingMode_Invert, ///< Invert the PdfField | | ePdfHighlightingMode_Invert, ///< Invert the PdfField | |
| ePdfHighlightingMode_InvertOutline, ///< Invert the fields border | | ePdfHighlightingMode_InvertOutline, ///< Invert the fields border | |
| ePdfHighlightingMode_Push, ///< Display the fields down appea
rance (requires an additional appearance stream to be set) | | ePdfHighlightingMode_Push, ///< Display the fields down appea
rance (requires an additional appearance stream to be set) | |
| | | | |
| ePdfHighlightingMode_Unknown = 0xff | | ePdfHighlightingMode_Unknown = 0xff | |
| }; | | }; | |
| | | | |
|
| class PODOFO_API PdfField { | | class PODOFO_DOC_API PdfField { | |
| enum { ePdfField_ReadOnly = 0x0001, | | enum { ePdfField_ReadOnly = 0x0001, | |
| ePdfField_Required = 0x0002, | | ePdfField_Required = 0x0002, | |
| ePdfField_NoExport = 0x0004 | | ePdfField_NoExport = 0x0004 | |
| }; | | }; | |
| | | | |
| protected: | | protected: | |
| /** Create a new PdfAcroForm dictionary object | | /** Create a new PdfAcroForm dictionary object | |
| * \param pParent parent of this action | | * \param pParent parent of this action | |
| */ | | */ | |
| PdfField( EPdfField eField, PdfAnnotation* pWidget, PdfAcroForm* pParen
t ); | | PdfField( EPdfField eField, PdfAnnotation* pWidget, PdfAcroForm* pParen
t ); | |
| | | | |
| skipping to change at line 557 | | skipping to change at line 557 | |
| | | | |
| // Peter Petrov 27 April 2008 | | // Peter Petrov 27 April 2008 | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline PdfObject* PdfField::GetFieldObject() const | | inline PdfObject* PdfField::GetFieldObject() const | |
| { | | { | |
| return m_pObject; | | return m_pObject; | |
| } | | } | |
| | | | |
|
| class PODOFO_API PdfButton : public PdfField { | | class PODOFO_DOC_API PdfButton : public PdfField { | |
| protected: | | protected: | |
| enum { ePdfButton_NoToggleOff = 0x0004000, | | enum { ePdfButton_NoToggleOff = 0x0004000, | |
| ePdfButton_Radio = 0x0008000, | | ePdfButton_Radio = 0x0008000, | |
| ePdfButton_PushButton = 0x0010000, | | ePdfButton_PushButton = 0x0010000, | |
| ePdfButton_RadioInUnison = 0x2000000 | | ePdfButton_RadioInUnison = 0x2000000 | |
| }; | | }; | |
| | | | |
| /** Create a new PdfButton | | /** Create a new PdfButton | |
| */ | | */ | |
| PdfButton( EPdfField eField, PdfAnnotation* pWidget, PdfAcroForm* pPare
nt ); | | PdfButton( EPdfField eField, PdfAnnotation* pWidget, PdfAcroForm* pPare
nt ); | |
| | | | |
| skipping to change at line 646 | | skipping to change at line 646 | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline bool PdfButton::IsRadioButton() const | | inline bool PdfButton::IsRadioButton() const | |
| { | | { | |
| return this->GetFieldFlag( static_cast<int>(ePdfButton_Radio), false ); | | return this->GetFieldFlag( static_cast<int>(ePdfButton_Radio), false ); | |
| } | | } | |
| | | | |
| /** A push button is a button which has no state and value | | /** A push button is a button which has no state and value | |
| * but can toggle actions. | | * but can toggle actions. | |
| */ | | */ | |
|
| class PODOFO_API PdfPushButton : public PdfButton { | | class PODOFO_DOC_API PdfPushButton : public PdfButton { | |
| public: | | public: | |
| /** Create a new PdfPushButton | | /** Create a new PdfPushButton | |
| */ | | */ | |
| PdfPushButton( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | | PdfPushButton( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | |
| | | | |
| /** Create a new PdfPushButton | | /** Create a new PdfPushButton | |
| */ | | */ | |
| PdfPushButton( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pPar
ent ); | | PdfPushButton( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pPar
ent ); | |
| | | | |
| /** Create a new PdfPushButton | | /** Create a new PdfPushButton | |
| | | | |
| skipping to change at line 702 | | skipping to change at line 702 | |
| * \returns the rollover caption of this button | | * \returns the rollover caption of this button | |
| */ | | */ | |
| const PdfString GetAlternateCaption() const; | | const PdfString GetAlternateCaption() const; | |
| | | | |
| private: | | private: | |
| void Init(); | | void Init(); | |
| }; | | }; | |
| | | | |
| /** A checkbox can be checked or unchecked by the user | | /** A checkbox can be checked or unchecked by the user | |
| */ | | */ | |
|
| class PODOFO_API PdfCheckBox : public PdfButton { | | class PODOFO_DOC_API PdfCheckBox : public PdfButton { | |
| public: | | public: | |
| /** Create a new PdfCheckBox | | /** Create a new PdfCheckBox | |
| */ | | */ | |
| PdfCheckBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | | PdfCheckBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | |
| | | | |
| /** Create a new PdfCheckBox | | /** Create a new PdfCheckBox | |
| */ | | */ | |
| PdfCheckBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParen
t ); | | PdfCheckBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParen
t ); | |
| | | | |
| /** Create a new PdfCheckBox | | /** Create a new PdfCheckBox | |
| | | | |
| skipping to change at line 772 | | skipping to change at line 772 | |
| | | | |
| // TODO: Dominiks PdfRadioButton | | // TODO: Dominiks PdfRadioButton | |
| | | | |
| /** A textfield in a PDF file. | | /** A textfield in a PDF file. | |
| * | | * | |
| * Users can enter text into a text field. | | * Users can enter text into a text field. | |
| * Single and multi line text is possible, | | * Single and multi line text is possible, | |
| * as well as richtext. The text can be interpreted | | * as well as richtext. The text can be interpreted | |
| * as path to a file which is going to be submitted. | | * as path to a file which is going to be submitted. | |
| */ | | */ | |
|
| class PODOFO_API PdfTextField : public PdfField { | | class PODOFO_DOC_API PdfTextField : public PdfField { | |
| private: | | private: | |
| enum { ePdfTextField_MultiLine = 0x0001000, | | enum { ePdfTextField_MultiLine = 0x0001000, | |
| ePdfTextField_Password = 0x0002000, | | ePdfTextField_Password = 0x0002000, | |
| ePdfTextField_FileSelect = 0x0100000, | | ePdfTextField_FileSelect = 0x0100000, | |
| ePdfTextField_NoSpellcheck = 0x0400000, | | ePdfTextField_NoSpellcheck = 0x0400000, | |
| ePdfTextField_NoScroll = 0x0800000, | | ePdfTextField_NoScroll = 0x0800000, | |
| ePdfTextField_Comb = 0x1000000, | | ePdfTextField_Comb = 0x1000000, | |
| ePdfTextField_RichText = 0x2000000 | | ePdfTextField_RichText = 0x2000000 | |
| }; | | }; | |
| | | | |
| | | | |
| skipping to change at line 1058 | | skipping to change at line 1058 | |
| return this->GetFieldFlag( static_cast<int>(ePdfTextField_RichText), fa
lse ); | | return this->GetFieldFlag( static_cast<int>(ePdfTextField_RichText), fa
lse ); | |
| } | | } | |
| | | | |
| /** A list of items in a PDF file. | | /** A list of items in a PDF file. | |
| * You cannot create this object directly, use | | * You cannot create this object directly, use | |
| * PdfComboBox or PdfListBox instead. | | * PdfComboBox or PdfListBox instead. | |
| * | | * | |
| * \see PdfComboBox | | * \see PdfComboBox | |
| * \see PdfListBox | | * \see PdfListBox | |
| */ | | */ | |
|
| class PODOFO_API PdfListField : public PdfField { | | class PODOFO_DOC_API PdfListField : public PdfField { | |
| protected: | | protected: | |
| enum { ePdfListField_Combo = 0x0020000, | | enum { ePdfListField_Combo = 0x0020000, | |
| ePdfListField_Edit = 0x0040000, | | ePdfListField_Edit = 0x0040000, | |
| ePdfListField_Sort = 0x0080000, | | ePdfListField_Sort = 0x0080000, | |
| ePdfListField_MultiSelect = 0x0200000, | | ePdfListField_MultiSelect = 0x0200000, | |
| ePdfListField_NoSpellcheck = 0x0400000, | | ePdfListField_NoSpellcheck = 0x0400000, | |
| ePdfListField_CommitOnSelChange = 0x4000000 | | ePdfListField_CommitOnSelChange = 0x4000000 | |
| }; | | }; | |
| | | | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| | | | |
| skipping to change at line 1115 | | skipping to change at line 1115 | |
| * Removes an item for the list | | * Removes an item for the list | |
| * | | * | |
| * @param nIndex index of the item to remove | | * @param nIndex index of the item to remove | |
| */ | | */ | |
| void RemoveItem( int nIndex ); | | void RemoveItem( int nIndex ); | |
| | | | |
| /** | | /** | |
| * @param nIndex index of the item | | * @param nIndex index of the item | |
| * @returns the value of the item at the specified index | | * @returns the value of the item at the specified index | |
| */ | | */ | |
|
| const PdfString & GetItem( int nIndex ) const; | | const PdfString GetItem( int nIndex ) const; | |
| | | | |
| /** | | /** | |
| * @param nIndex index of the item | | * @param nIndex index of the item | |
| * @returns the display text of the item or if it has no display text | | * @returns the display text of the item or if it has no display text | |
| * its value is returned. This call is equivalent to GetItem() | | * its value is returned. This call is equivalent to GetItem() | |
| * in this case | | * in this case | |
| * | | * | |
| * \see GetItem | | * \see GetItem | |
| */ | | */ | |
|
| const PdfString & GetItemDisplayText( int nIndex ) const; | | const PdfString GetItemDisplayText( int nIndex ) const; | |
| | | | |
| /** | | /** | |
| * \returns the number of items in this list | | * \returns the number of items in this list | |
| */ | | */ | |
| size_t GetItemCount() const; | | size_t GetItemCount() const; | |
| | | | |
| /** Sets the currently selected item | | /** Sets the currently selected item | |
| * \param nIndex index of the currently selected item | | * \param nIndex index of the currently selected item | |
| */ | | */ | |
| void SetSelectedItem( int nIndex ); | | void SetSelectedItem( int nIndex ); | |
| | | | |
| skipping to change at line 1280 | | skipping to change at line 1280 | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline bool PdfListField::IsCommitOnSelectionChange() const | | inline bool PdfListField::IsCommitOnSelectionChange() const | |
| { | | { | |
| return this->GetFieldFlag( static_cast<int>(ePdfListField_CommitOnSelCh
ange), false ); | | return this->GetFieldFlag( static_cast<int>(ePdfListField_CommitOnSelCh
ange), false ); | |
| } | | } | |
| | | | |
| /** A combo box with a drop down list of items. | | /** A combo box with a drop down list of items. | |
| */ | | */ | |
|
| class PODOFO_API PdfComboBox : public PdfListField { | | class PODOFO_DOC_API PdfComboBox : public PdfListField { | |
| public: | | public: | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| */ | | */ | |
| PdfComboBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | | PdfComboBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | |
| | | | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| */ | | */ | |
| PdfComboBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParen
t ); | | PdfComboBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParen
t ); | |
| | | | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| | | | |
| skipping to change at line 1340 | | skipping to change at line 1340 | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline bool PdfComboBox::IsEditable() const | | inline bool PdfComboBox::IsEditable() const | |
| { | | { | |
| return this->GetFieldFlag( static_cast<int>(ePdfListField_Edit), false
); | | return this->GetFieldFlag( static_cast<int>(ePdfListField_Edit), false
); | |
| } | | } | |
| | | | |
| /** A list box | | /** A list box | |
| */ | | */ | |
|
| class PODOFO_API PdfListBox : public PdfListField { | | class PODOFO_DOC_API PdfListBox : public PdfListField { | |
| public: | | public: | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| */ | | */ | |
| PdfListBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | | PdfListBox( PdfAnnotation* pWidget, PdfAcroForm* pParent ); | |
| | | | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| */ | | */ | |
| PdfListBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParent
); | | PdfListBox( PdfPage* pPage, const PdfRect & rRect, PdfAcroForm* pParent
); | |
| | | | |
| /** Create a new PdfTextField | | /** Create a new PdfTextField | |
| | | | |
End of changes. 12 change blocks. |
| 13 lines changed or deleted | | 13 lines changed or added | |
|
| PdfFont.h | | PdfFont.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_H_ | | #ifndef _PDF_FONT_H_ | |
| #define _PDF_FONT_H_ | | #define _PDF_FONT_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfName.h" | | #include "podofo/base/PdfName.h" | |
| | | #include "podofo/base/PdfEncodingFactory.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
|
| #include "PdfEncodingFactory.h" | | | |
| #include "PdfFontMetrics.h" | | #include "PdfFontMetrics.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfObject; | | class PdfObject; | |
| class PdfPage; | | class PdfPage; | |
| class PdfWriter; | | class PdfWriter; | |
| | | | |
| /** Before you can draw text on a PDF document, you have to create | | /** Before you can draw text on a PDF document, you have to create | |
| * a font object first. You can reuse this font object as often | | * a font object first. You can reuse this font object as often | |
| * as you want. | | * as you want. | |
| * | | * | |
| * Use PdfDocument::CreateFont to create a new font object. | | * Use PdfDocument::CreateFont to create a new font object. | |
| * It will choose a correct subclass using PdfFontFactory. | | * It will choose a correct subclass using PdfFontFactory. | |
| * | | * | |
| * This is only an abstract base class which is implemented | | * This is only an abstract base class which is implemented | |
| * for different font formats. | | * for different font formats. | |
| */ | | */ | |
|
| class PODOFO_API PdfFont : public PdfElement { | | class PODOFO_DOC_API PdfFont : public PdfElement { | |
| friend class PdfFontFactory; | | friend class PdfFontFactory; | |
| | | | |
| public: | | public: | |
| | | | |
| /** Create a new PdfFont object which will introduce itself | | /** Create a new PdfFont object which will introduce itself | |
| * automatically to every page object it is used on. | | * automatically to every page object it is used on. | |
| * | | * | |
| * The font has a default font size of 12.0pt. | | * The font has a default font size of 12.0pt. | |
| * | | * | |
| * \param pMetrics pointer to a font metrics object. The font in the P
DF | | * \param pMetrics pointer to a font metrics object. The font in the P
DF | |
| | | | |
| skipping to change at line 188 | | skipping to change at line 188 | |
| | | | |
| // Peter Petrov 24 September 2008 | | // Peter Petrov 24 September 2008 | |
| /** Embeds the font into PDF page | | /** Embeds the font into PDF page | |
| * | | * | |
| */ | | */ | |
| virtual void EmbedFont(); | | virtual void EmbedFont(); | |
| | | | |
| /** Remember the glyphs used in the string in case of subsetting | | /** Remember the glyphs used in the string in case of subsetting | |
| * | | * | |
| * \param sText the text string which should be printed (is not allowe
d to be NULL!) | | * \param sText the text string which should be printed (is not allowe
d to be NULL!) | |
|
| * \param lLen draw only lLen characters of pszText | | * \param lStringLen draw only lLen characters of pszText | |
| * | | * | |
| * Only call if IsSubsetting() returns true. Might throw an exception
otherwise. | | * Only call if IsSubsetting() returns true. Might throw an exception
otherwise. | |
| * | | * | |
| * \see IsSubsetting | | * \see IsSubsetting | |
| */ | | */ | |
| virtual void AddUsedSubsettingGlyphs( const PdfString & sText, long
lStringLen ); | | virtual void AddUsedSubsettingGlyphs( const PdfString & sText, long
lStringLen ); | |
| | | | |
|
| | | /** Remember the glyphname in case of subsetting | |
| | | * | |
| | | * \param pszGlyphName Name of the glyph to remember | |
| | | */ | |
| | | virtual void AddUsedGlyphname( const char * pszGlyphName ); | |
| | | | |
| /** Embeds pending subset-font into PDF page | | /** Embeds pending subset-font into PDF page | |
| * Only call if IsSubsetting() returns true. Might throw an exception
otherwise. | | * Only call if IsSubsetting() returns true. Might throw an exception
otherwise. | |
| * | | * | |
| * \see IsSubsetting | | * \see IsSubsetting | |
| */ | | */ | |
| virtual void EmbedSubsetFont(); | | virtual void EmbedSubsetFont(); | |
| | | | |
| /** Check if this is a subsetting font. | | /** Check if this is a subsetting font. | |
| * \returns true if this is a subsetting font | | * \returns true if this is a subsetting font | |
| */ | | */ | |
| | | | |
End of changes. 5 change blocks. |
| 5 lines changed or deleted | | 11 lines changed or added | |
|
| PdfFontCID.h | | PdfFontCID.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_CID_H_ | | #ifndef _PDF_FONT_CID_H_ | |
| #define _PDF_FONT_CID_H_ | | #define _PDF_FONT_CID_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfFont.h" | | #include "PdfFont.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfFontMetricsFreetype; | | class PdfFontMetricsFreetype; | |
| | | | |
| /** A PdfFont that represents a CID font. | | /** A PdfFont that represents a CID font. | |
| */ | | */ | |
| class PdfFontCID : public PdfFont { | | class PdfFontCID : public PdfFont { | |
| public: | | public: | |
| | | | |
| skipping to change at line 56 | | skipping to change at line 56 | |
| PdfFontCID( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncodin
g, | | PdfFontCID( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncodin
g, | |
| PdfVecObjects* pParent, bool bEmbed = true ); | | PdfVecObjects* pParent, bool bEmbed = true ); | |
| | | | |
| // Peter Petrov 30 April 2008 | | // Peter Petrov 30 April 2008 | |
| /** Create a PdfFont based on an existing PdfObject | | /** Create a PdfFont based on an existing PdfObject | |
| * \param pMetrics pointer to a font metrics object. The font in the P
DF | | * \param pMetrics pointer to a font metrics object. The font in the P
DF | |
| * file will match this fontmetrics object. The metrics object
is | | * file will match this fontmetrics object. The metrics object
is | |
| * deleted along with the font. | | * deleted along with the font. | |
| * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | | * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | |
| * \param pObject an existing PdfObject | | * \param pObject an existing PdfObject | |
|
| | | * \param bEmbed specifies the embedding of font | |
| */ | | */ | |
| PdfFontCID( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncodin
g, PdfObject* pObject, bool bEmbed ); | | PdfFontCID( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncodin
g, PdfObject* pObject, bool bEmbed ); | |
| | | | |
| // Peter Petrov 24 September 2008 | | // Peter Petrov 24 September 2008 | |
| /** Embeds the font into PDF page | | /** Embeds the font into PDF page | |
| * | | * | |
| */ | | */ | |
| virtual void EmbedFont(); | | virtual void EmbedFont(); | |
| | | | |
| private: | | private: | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 2 lines changed or added | |
|
| PdfFontCache.h | | PdfFontCache.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_CACHE_H_ | | #ifndef _PDF_FONT_CACHE_H_ | |
| #define _PDF_FONT_CACHE_H_ | | #define _PDF_FONT_CACHE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "Pdf3rdPtyForwardDecl.h" | | #include "podofo/base/Pdf3rdPtyForwardDecl.h" | |
| #include "PdfEncoding.h" | | #include "podofo/base/PdfEncoding.h" | |
| #include "PdfEncodingFactory.h" | | #include "podofo/base/PdfEncodingFactory.h" | |
| | | #include "podofo/base/util/PdfMutex.h" | |
| #include "PdfFont.h" | | #include "PdfFont.h" | |
|
| #include "util/PdfMutex.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfFontMetrics; | | class PdfFontMetrics; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| | | | |
| /** A private structure, | | /** A private structure, | |
| * which represents a font in the cache. | | * which represents a font in the cache. | |
| */ | | */ | |
| struct TFontCacheElement { | | struct TFontCacheElement { | |
| | | | |
| skipping to change at line 127 | | skipping to change at line 127 | |
| * | | * | |
| * PdfFont is an actual font that can be used in | | * PdfFont is an actual font that can be used in | |
| * a PDF file (i.e. it does also font embedding) | | * a PDF file (i.e. it does also font embedding) | |
| * and PdfFontMetrics provides only metrics informations. | | * and PdfFontMetrics provides only metrics informations. | |
| * | | * | |
| * This class is an internal class of PoDoFo | | * This class is an internal class of PoDoFo | |
| * and should not be used in user applications | | * and should not be used in user applications | |
| * | | * | |
| * \see PdfDocument | | * \see PdfDocument | |
| */ | | */ | |
|
| class PODOFO_API PdfFontCache { | | class PODOFO_DOC_API PdfFontCache { | |
| typedef std::vector<TFontCacheElement> TSortedFontList; | | typedef std::vector<TFontCacheElement> TSortedFontList; | |
| typedef TSortedFontList::iterator TISortedFontList; | | typedef TSortedFontList::iterator TISortedFontList; | |
| typedef TSortedFontList::const_iterator TCISortedFontList; | | typedef TSortedFontList::const_iterator TCISortedFontList; | |
| | | | |
| #if defined(PODOFO_HAVE_FONTCONFIG) | | #if defined(PODOFO_HAVE_FONTCONFIG) | |
| static Util::PdfMutex m_FcMutex; | | static Util::PdfMutex m_FcMutex; | |
| #endif | | #endif | |
| | | | |
| public: | | public: | |
|
| | | | |
| | | /** | |
| | | * Flags to control font creation. | |
| | | */ | |
| enum EFontCreationFlags { | | enum EFontCreationFlags { | |
| eFontCreationFlags_None = 0, ///< No spec
ial settings | | eFontCreationFlags_None = 0, ///< No spec
ial settings | |
| eFontCreationFlags_AutoSelectBase14 = 1, ///< Create automati
cally a base14 font if the fontname matches one of them | | eFontCreationFlags_AutoSelectBase14 = 1, ///< Create automati
cally a base14 font if the fontname matches one of them | |
| eFontCreationFlags_Type1Subsetting = 2 ///< Create subsette
d type1-font, which includes only used characters | | eFontCreationFlags_Type1Subsetting = 2 ///< Create subsette
d type1-font, which includes only used characters | |
| }; | | }; | |
| | | | |
| /** Create an empty font cache | | /** Create an empty font cache | |
| * | | * | |
| * \param pParent a PdfVecObjects which is required | | * \param pParent a PdfVecObjects which is required | |
| * to create new font objects | | * to create new font objects | |
| | | | |
| skipping to change at line 182 | | skipping to change at line 186 | |
| /** Get a font from the cache. If the font does not yet | | /** Get a font from the cache. If the font does not yet | |
| * exist, add it to the cache. | | * exist, add it to the cache. | |
| * | | * | |
| * \param pszFontName a valid fontname | | * \param pszFontName a valid fontname | |
| * \param bBold if true search for a bold font | | * \param bBold if true search for a bold font | |
| * \param bItalic if true search for an italic font | | * \param bItalic if true search for an italic font | |
| * \param bEmbedd if true a font for embedding into | | * \param bEmbedd if true a font for embedding into | |
| * PDF will be created | | * PDF will be created | |
| * \param eFontCreationFlags special flag to specify how fonts should
be created | | * \param eFontCreationFlags special flag to specify how fonts should
be created | |
| * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | | * \param pEncoding the encoding of the font. The font will not take o
wnership of this object. | |
|
| * \param optional: pszFileName path to a valid font file | | * \param pszFileName optional path to a valid font file | |
| * | | * | |
| * \returns a PdfFont object or NULL if the font could | | * \returns a PdfFont object or NULL if the font could | |
| * not be created or found. | | * not be created or found. | |
| */ | | */ | |
| PdfFont* GetFont( const char* pszFontName, bool bBold, bool bItalic, | | PdfFont* GetFont( const char* pszFontName, bool bBold, bool bItalic, | |
| bool bEmbedd, EFontCreationFlags eFontCreationFlags =
eFontCreationFlags_AutoSelectBase14, | | bool bEmbedd, EFontCreationFlags eFontCreationFlags =
eFontCreationFlags_AutoSelectBase14, | |
| const PdfEncoding * const = PdfEncodingFactory::Globa
lWinAnsiEncodingInstance(), | | const PdfEncoding * const = PdfEncodingFactory::Globa
lWinAnsiEncodingInstance(), | |
| const char* pszFileName = NULL ); | | const char* pszFileName = NULL ); | |
| | | | |
| #ifdef _WIN32 | | #ifdef _WIN32 | |
| | | | |
| skipping to change at line 236 | | skipping to change at line 240 | |
| | | | |
| /** Get a font with specific id from the cache. If the font does not ye
t | | /** Get a font with specific id from the cache. If the font does not ye
t | |
| * exist, copy from existing type1-font and set id. | | * exist, copy from existing type1-font and set id. | |
| * | | * | |
| * \param pFont an existing font | | * \param pFont an existing font | |
| * \param pszSuffix Suffix to add to font-id | | * \param pszSuffix Suffix to add to font-id | |
| * | | * | |
| * \returns a PdfFont object or NULL if the font could | | * \returns a PdfFont object or NULL if the font could | |
| * not be created or found. | | * not be created or found. | |
| */ | | */ | |
|
| PdfFont* GetDuplicateFontType1( PdfFont * pFont, const char* pszSuff
ix ); | | PdfFont* GetDuplicateFontType1( PdfFont* pFont, const char* pszSuffi
x ); | |
| | | | |
| /** Get a fontsubset from the cache. If the font does not yet | | /** Get a fontsubset from the cache. If the font does not yet | |
| * exist, add it to the cache. | | * exist, add it to the cache. | |
| * | | * | |
| * \param pszFontName a valid fontname | | * \param pszFontName a valid fontname | |
| * \param bBold if true search for a bold font | | * \param bBold if true search for a bold font | |
| * \param bItalic if true search for an italic font | | * \param bItalic if true search for an italic font | |
| * \param pEncoding the encoding of the font. All characters | | * \param pEncoding the encoding of the font. All characters | |
| * of the encoding will be included in this subset. | | * of the encoding will be included in this subset. | |
| * The font will not take ownership of this object. | | * The font will not take ownership of this object. | |
|
| * \param optional: pszFileName path to a valid font file | | * \param pszFileName optional path to a valid font file | |
| * | | * | |
| * \returns a PdfFont object or NULL if the font could | | * \returns a PdfFont object or NULL if the font could | |
| * not be created or found. | | * not be created or found. | |
| */ | | */ | |
| PdfFont* GetFontSubset( const char* pszFontName, bool bBold, bool bItal
ic, | | PdfFont* GetFontSubset( const char* pszFontName, bool bBold, bool bItal
ic, | |
| const PdfEncoding * const = PdfEncodingFactory::
GlobalWinAnsiEncodingInstance(), | | const PdfEncoding * const = PdfEncodingFactory::
GlobalWinAnsiEncodingInstance(), | |
| const char* pszFileName = NULL); | | const char* pszFileName = NULL); | |
| | | | |
| /** Embeds all pending subset-fonts | | /** Embeds all pending subset-fonts | |
| * | | * | |
| | | | |
End of changes. 7 change blocks. |
| 9 lines changed or deleted | | 13 lines changed or added | |
|
| PdfFontMetrics.h | | PdfFontMetrics.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_METRICS_H_ | | #ifndef _PDF_FONT_METRICS_H_ | |
| #define _PDF_FONT_METRICS_H_ | | #define _PDF_FONT_METRICS_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "Pdf3rdPtyForwardDecl.h" | | #include "podofo/base/Pdf3rdPtyForwardDecl.h" | |
| #include "PdfString.h" | | #include "podofo/base/PdfString.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfArray; | | class PdfArray; | |
| class PdfObject; | | class PdfObject; | |
| class PdfVariant; | | class PdfVariant; | |
| | | | |
| /** | | /** | |
| * This abstract class provides access | | * This abstract class provides access | |
| * to fontmetrics informations. | | * to fontmetrics informations. | |
| */ | | */ | |
|
| class PODOFO_API PdfFontMetrics { | | class PODOFO_DOC_API PdfFontMetrics { | |
| public: | | public: | |
| PdfFontMetrics( EPdfFontType eFontType, const char* pszFilename, const
char* pszSubsetPrefix ); | | PdfFontMetrics( EPdfFontType eFontType, const char* pszFilename, const
char* pszSubsetPrefix ); | |
| | | | |
| virtual ~PdfFontMetrics(); | | virtual ~PdfFontMetrics(); | |
| | | | |
| /** Create a width array for this font which is a required part | | /** Create a width array for this font which is a required part | |
| * of every font dictionary. | | * of every font dictionary. | |
| * \param var the final width array is written to this PdfVariant | | * \param var the final width array is written to this PdfVariant | |
| * \param nFirst first character to be in the array | | * \param nFirst first character to be in the array | |
| * \param nLast last character code to be in the array | | * \param nLast last character code to be in the array | |
| */ | | */ | |
| virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const = 0; | | virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const = 0; | |
| | | | |
| /** Get the width of a single glyph id | | /** Get the width of a single glyph id | |
| * | | * | |
|
| | | * \param nGlyphId id of the glyph | |
| * \returns the width of a single glyph id | | * \returns the width of a single glyph id | |
| */ | | */ | |
| virtual double GetGlyphWidth( int nGlyphId ) const = 0; | | virtual double GetGlyphWidth( int nGlyphId ) const = 0; | |
| | | | |
|
| | | /** Get the width of a single named glyph | |
| | | * | |
| | | * \param pszGlyphname name of the glyph | |
| | | * \returns the width of a single named glyph | |
| | | */ | |
| | | virtual double GetGlyphWidth( const char* pszGlyphname ) const = 0; | |
| | | | |
| /** Create the bounding box array as required by the PDF reference | | /** Create the bounding box array as required by the PDF reference | |
| * so that it can be written directly to a PDF file. | | * so that it can be written directly to a PDF file. | |
| * | | * | |
| * \param array write the bounding box to this array. | | * \param array write the bounding box to this array. | |
| */ | | */ | |
| virtual void GetBoundingBox( PdfArray & array ) const = 0; | | virtual void GetBoundingBox( PdfArray & array ) const = 0; | |
| | | | |
| /** Retrieve the width of a given text string in PDF units when | | /** Retrieve the width of a given text string in PDF units when | |
| * drawn with the current font | | * drawn with the current font | |
| * \param rsString a PdfString from which the width shall be calculate
d | | * \param rsString a PdfString from which the width shall be calculate
d | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 12 lines changed or added | |
|
| PdfFontMetricsBase14.h | | PdfFontMetricsBase14.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_METRICS_BASE14_H_ | | #ifndef _PDF_FONT_METRICS_BASE14_H_ | |
| #define _PDF_FONT_METRICS_BASE14_H_ | | #define _PDF_FONT_METRICS_BASE14_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | #include "podofo/base/PdfRect.h" | |
| | | #include "podofo/base/PdfVariant.h" | |
| | | | |
| #include "PdfFontMetrics.h" | | #include "PdfFontMetrics.h" | |
|
| #include "PdfRect.h" | | | |
| #include "PdfVariant.h" | | | |
| | | | |
| #include <string.h> | | #include <string.h> | |
| | | | |
| /* | | /* | |
| The following are the Base 14 fonts data copied from libharu. | | The following are the Base 14 fonts data copied from libharu. | |
| - kaushik April 12 2010 | | - kaushik April 12 2010 | |
| */ | | */ | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| | | | |
| skipping to change at line 58 | | skipping to change at line 58 | |
| | | | |
| This is done to ensure all existing paths work as is. | | This is done to ensure all existing paths work as is. | |
| The changes to Base 14 get added without affecting the existing workflow
and fit in exactly. | | The changes to Base 14 get added without affecting the existing workflow
and fit in exactly. | |
| | | | |
| Ideally PdfFontMetrics should be abstract or the metric related interfac
e should be seperated out | | Ideally PdfFontMetrics should be abstract or the metric related interfac
e should be seperated out | |
| from the implementation details - such as whether the font metric data i
s read from a file/buffer/hard coded. | | from the implementation details - such as whether the font metric data i
s read from a file/buffer/hard coded. | |
| | | | |
| Kaushik : April 12th 2010 | | Kaushik : April 12th 2010 | |
| | | | |
| */ | | */ | |
|
| class PODOFO_API PdfFontMetricsBase14 : public PdfFontMetrics { | | class PODOFO_DOC_API PdfFontMetricsBase14 : public PdfFontMetrics { | |
| public: | | public: | |
| PdfFontMetricsBase14(const char *mfont_name, | | PdfFontMetricsBase14(const char *mfont_name, | |
| const PODOFO_CharData *mwidths_table, | | const PODOFO_CharData *mwidths_table, | |
| bool mis_font_specific, | | bool mis_font_specific, | |
| pdf_int16 mascent, | | pdf_int16 mascent, | |
| pdf_int16 mdescent, | | pdf_int16 mdescent, | |
| pdf_uint16 mx_height, | | pdf_uint16 mx_height, | |
| pdf_uint16 mcap_height, | | pdf_uint16 mcap_height, | |
| const PdfRect & mbbox); | | const PdfRect & mbbox); | |
| | | | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 88 | |
| * \param nLast last character code to be in the array | | * \param nLast last character code to be in the array | |
| */ | | */ | |
| virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | | virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | |
| | | | |
| /** Get the width of a single glyph id | | /** Get the width of a single glyph id | |
| * | | * | |
| * \returns the width of a single glyph id | | * \returns the width of a single glyph id | |
| */ | | */ | |
| virtual double GetGlyphWidth( int nGlyphId ) const; | | virtual double GetGlyphWidth( int nGlyphId ) const; | |
| | | | |
|
| | | /** Get the width of a single named glyph | |
| | | * | |
| | | * \param pszGlyphname name of the glyph | |
| | | * \returns the width of a single named glyph | |
| | | */ | |
| | | virtual double GetGlyphWidth( const char* pszGlyphname ) const; | |
| | | | |
| /** Create the bounding box array as required by the PDF reference | | /** Create the bounding box array as required by the PDF reference | |
| * so that it can be written directly to a PDF file. | | * so that it can be written directly to a PDF file. | |
| * | | * | |
| * \param array write the bounding box to this array. | | * \param array write the bounding box to this array. | |
| */ | | */ | |
| virtual void GetBoundingBox( PdfArray & array ) const; | | virtual void GetBoundingBox( PdfArray & array ) const; | |
| | | | |
| /** Retrieve the width of the given character in PDF units in the curre
nt font | | /** Retrieve the width of the given character in PDF units in the curre
nt font | |
| * \param c character | | * \param c character | |
| * \returns the width in PDF units | | * \returns the width in PDF units | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 11 lines changed or added | |
|
| PdfFontMetricsFreetype.h | | PdfFontMetricsFreetype.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_METRICS_FREETYPE_H_ | | #ifndef _PDF_FONT_METRICS_FREETYPE_H_ | |
| #define _PDF_FONT_METRICS_FREETYPE_H_ | | #define _PDF_FONT_METRICS_FREETYPE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "Pdf3rdPtyForwardDecl.h" | | #include "podofo/base/Pdf3rdPtyForwardDecl.h" | |
| | | #include "podofo/base/PdfString.h" | |
| #include "PdfFontMetrics.h" | | #include "PdfFontMetrics.h" | |
|
| #include "PdfString.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfArray; | | class PdfArray; | |
| class PdfObject; | | class PdfObject; | |
| class PdfVariant; | | class PdfVariant; | |
| | | | |
|
| class PODOFO_API PdfFontMetricsFreetype : public PdfFontMetrics { | | class PODOFO_DOC_API PdfFontMetricsFreetype : public PdfFontMetrics { | |
| public: | | public: | |
| /** Create a font metrics object for a given true type file | | /** Create a font metrics object for a given true type file | |
| * \param pLibrary handle to an initialized FreeType2 library handle | | * \param pLibrary handle to an initialized FreeType2 library handle | |
| * \param pszFilename filename of a truetype file | | * \param pszFilename filename of a truetype file | |
| * \param pszSubsetPrefix unique prefix for font subsets (see GetFontS
ubsetPrefix) | | * \param pszSubsetPrefix unique prefix for font subsets (see GetFontS
ubsetPrefix) | |
| */ | | */ | |
| PdfFontMetricsFreetype( FT_Library* pLibrary, const char* pszFilename, | | PdfFontMetricsFreetype( FT_Library* pLibrary, const char* pszFilename, | |
| const char* pszSubsetPrefix = NULL ); | | const char* pszSubsetPrefix = NULL ); | |
| | | | |
| /** Create a font metrics object for a given memory buffer | | /** Create a font metrics object for a given memory buffer | |
| | | | |
| skipping to change at line 89 | | skipping to change at line 89 | |
| /** Create a width array for this font which is a required part | | /** Create a width array for this font which is a required part | |
| * of every font dictionary. | | * of every font dictionary. | |
| * \param var the final width array is written to this PdfVariant | | * \param var the final width array is written to this PdfVariant | |
| * \param nFirst first character to be in the array | | * \param nFirst first character to be in the array | |
| * \param nLast last character code to be in the array | | * \param nLast last character code to be in the array | |
| */ | | */ | |
| virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | | virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | |
| | | | |
| /** Get the width of a single glyph id | | /** Get the width of a single glyph id | |
| * | | * | |
|
| | | * \param nGlyphId id of the glyph | |
| * \returns the width of a single glyph id | | * \returns the width of a single glyph id | |
| */ | | */ | |
| virtual double GetGlyphWidth( int nGlyphId ) const; | | virtual double GetGlyphWidth( int nGlyphId ) const; | |
| | | | |
|
| | | /** Get the width of a single named glyph | |
| | | * | |
| | | * \param pszGlyphname name of the glyph | |
| | | * \returns the width of a single named glyph | |
| | | */ | |
| | | virtual double GetGlyphWidth( const char* pszGlyphname ) const; | |
| | | | |
| /** Create the bounding box array as required by the PDF reference | | /** Create the bounding box array as required by the PDF reference | |
| * so that it can be written directly to a PDF file. | | * so that it can be written directly to a PDF file. | |
| * | | * | |
| * \param array write the bounding box to this array. | | * \param array write the bounding box to this array. | |
| */ | | */ | |
| virtual void GetBoundingBox( PdfArray & array ) const; | | virtual void GetBoundingBox( PdfArray & array ) const; | |
| | | | |
| /** Retrieve the width of the given character in PDF units in the curre
nt font | | /** Retrieve the width of the given character in PDF units in the curre
nt font | |
| * \param c character | | * \param c character | |
| * \returns the width in PDF units | | * \returns the width in PDF units | |
| | | | |
End of changes. 5 change blocks. |
| 4 lines changed or deleted | | 12 lines changed or added | |
|
| PdfFontMetricsObject.h | | PdfFontMetricsObject.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_METRICS_OBJECT_H_ | | #ifndef _PDF_FONT_METRICS_OBJECT_H_ | |
| #define _PDF_FONT_METRICS_OBJECT_H_ | | #define _PDF_FONT_METRICS_OBJECT_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfArray.h" | | #include "podofo/base/PdfArray.h" | |
| | | #include "podofo/base/PdfName.h" | |
| | | #include "podofo/base/PdfString.h" | |
| #include "PdfFontMetrics.h" | | #include "PdfFontMetrics.h" | |
|
| #include "PdfName.h" | | | |
| #include "PdfString.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfArray; | | class PdfArray; | |
| class PdfObject; | | class PdfObject; | |
| class PdfVariant; | | class PdfVariant; | |
| | | | |
|
| class PODOFO_API PdfFontMetricsObject : public PdfFontMetrics { | | class PODOFO_DOC_API PdfFontMetricsObject : public PdfFontMetrics { | |
| public: | | public: | |
| | | | |
| /** Create a font metrics object based on an existing PdfObject | | /** Create a font metrics object based on an existing PdfObject | |
| * | | * | |
| * \param pObject an existing font descriptor object | | * \param pObject an existing font descriptor object | |
| * \param pEncoding a PdfEncoding which will NOT be owned by PdfFontMe
tricsObject | | * \param pEncoding a PdfEncoding which will NOT be owned by PdfFontMe
tricsObject | |
| */ | | */ | |
| PdfFontMetricsObject( PdfObject* pFont, PdfObject* pDescriptor, const P
dfEncoding* const pEncoding ); | | PdfFontMetricsObject( PdfObject* pFont, PdfObject* pDescriptor, const P
dfEncoding* const pEncoding ); | |
| | | | |
| virtual ~PdfFontMetricsObject(); | | virtual ~PdfFontMetricsObject(); | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 62 | |
| * \param nLast last character code to be in the array | | * \param nLast last character code to be in the array | |
| */ | | */ | |
| virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | | virtual void GetWidthArray( PdfVariant & var, unsigned int nFirst, unsi
gned int nLast ) const; | |
| | | | |
| /** Get the width of a single glyph id | | /** Get the width of a single glyph id | |
| * | | * | |
| * \returns the width of a single glyph id | | * \returns the width of a single glyph id | |
| */ | | */ | |
| virtual double GetGlyphWidth( int nGlyphId ) const; | | virtual double GetGlyphWidth( int nGlyphId ) const; | |
| | | | |
|
| | | /** Get the width of a single named glyph | |
| | | * | |
| | | * \param pszGlyphname name of the glyph | |
| | | * \returns the width of a single named glyph | |
| | | */ | |
| | | virtual double GetGlyphWidth( const char* pszGlyphname ) const; | |
| | | | |
| /** Create the bounding box array as required by the PDF reference | | /** Create the bounding box array as required by the PDF reference | |
| * so that it can be written directly to a PDF file. | | * so that it can be written directly to a PDF file. | |
| * | | * | |
| * \param array write the bounding box to this array. | | * \param array write the bounding box to this array. | |
| */ | | */ | |
| virtual void GetBoundingBox( PdfArray & array ) const; | | virtual void GetBoundingBox( PdfArray & array ) const; | |
| | | | |
| /** Retrieve the width of the given character in PDF units in the curre
nt font | | /** Retrieve the width of the given character in PDF units in the curre
nt font | |
| * \param c character | | * \param c character | |
| * \returns the width in PDF units | | * \returns the width in PDF units | |
| | | | |
| skipping to change at line 208 | | skipping to change at line 215 | |
| */ | | */ | |
| PdfFontMetricsObject& operator=(const PdfFontMetricsObject& rhs); | | PdfFontMetricsObject& operator=(const PdfFontMetricsObject& rhs); | |
| | | | |
| //Private members: | | //Private members: | |
| | | | |
| const PdfEncoding* const m_pEncoding; | | const PdfEncoding* const m_pEncoding; | |
| | | | |
| PdfName m_sName; | | PdfName m_sName; | |
| PdfArray m_bbox; | | PdfArray m_bbox; | |
| PdfArray m_width; | | PdfArray m_width; | |
|
| | | PdfObject *m_missingWidth; | |
| int m_nFirst; | | int m_nFirst; | |
| int m_nLast; | | int m_nLast; | |
| unsigned int m_nWeight; | | unsigned int m_nWeight; | |
| int m_nItalicAngle; | | int m_nItalicAngle; | |
| double m_dPdfAscent; | | double m_dPdfAscent; | |
| double m_dPdfDescent; | | double m_dPdfDescent; | |
| double m_dAscent; | | double m_dAscent; | |
| double m_dDescent; | | double m_dDescent; | |
| double m_dLineSpacing; | | double m_dLineSpacing; | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 5 lines changed or deleted | | 13 lines changed or added | |
|
| PdfFontTTFSubset.h | | PdfFontTTFSubset.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_TTF_SUBSET_H_ | | #ifndef _PDF_FONT_TTF_SUBSET_H_ | |
| #define _PDF_FONT_TTF_SUBSET_H_ | | #define _PDF_FONT_TTF_SUBSET_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfFontMetrics.h" | | #include "PdfFontMetrics.h" | |
| | | | |
| #include <string> | | #include <string> | |
| #include <vector> | | #include <vector> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfInputDevice; | | class PdfInputDevice; | |
| class PdfOutputDevice; | | class PdfOutputDevice; | |
| | | | |
| | | | |
| skipping to change at line 46 | | skipping to change at line 46 | |
| // (张杨.国际) <zhang_yang@founder.com> | | // (张杨.国际) <zhang_yang@founder.com> | |
| // | | // | |
| // (Do not put this into doxygen documentation blocks | | // (Do not put this into doxygen documentation blocks | |
| // as this will break latex documentation generation) | | // as this will break latex documentation generation) | |
| | | | |
| /** | | /** | |
| * This class is able to build a new TTF font with only | | * This class is able to build a new TTF font with only | |
| * certain glyphs from an existing font. | | * certain glyphs from an existing font. | |
| * | | * | |
| */ | | */ | |
|
| class PODOFO_API PdfFontTTFSubset { | | class PODOFO_DOC_API PdfFontTTFSubset { | |
| public: | | public: | |
|
| | | /** | |
| | | * Internal enum specifying the type of a fontfile. | |
| | | */ | |
| enum EFontFileType { | | enum EFontFileType { | |
|
| eFontFileType_TTF, ///< TrueType Font | | eFontFileType_TTF, ///< TrueType Font | |
| eFontFileType_TTC, ///< TrueType Collection | | eFontFileType_TTC, ///< TrueType Collection | |
| eFontFileType_OTF, ///< OpenType Font | | eFontFileType_OTF, ///< OpenType Font | |
| eFontFileType_Unknown ///< Unknown | | eFontFileType_Unknown ///< Unknown | |
| }; | | }; | |
| | | | |
| /** Create a new PdfFontTTFSubset from an existing | | /** Create a new PdfFontTTFSubset from an existing | |
| * TTF font file. | | * TTF font file. | |
| * | | * | |
| * @param pszFontFileName path to a TTF file | | * @param pszFontFileName path to a TTF file | |
| * @param pMetrics font metrics object for this font | | * @param pMetrics font metrics object for this font | |
| * @param nFaceIndex index of the face inside of the font | | * @param nFaceIndex index of the face inside of the font | |
| */ | | */ | |
| PdfFontTTFSubset( const char* pszFontFileName, PdfFontMetrics* pMetrics
, unsigned short nFaceIndex = 0 ); | | PdfFontTTFSubset( const char* pszFontFileName, PdfFontMetrics* pMetrics
, unsigned short nFaceIndex = 0 ); | |
| | | | |
End of changes. 4 change blocks. |
| 6 lines changed or deleted | | 9 lines changed or added | |
|
| PdfFontType1.h | | PdfFontType1.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_TYPE1_H_ | | #ifndef _PDF_FONT_TYPE1_H_ | |
| #define _PDF_FONT_TYPE1_H_ | | #define _PDF_FONT_TYPE1_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfFontSimple.h" | | #include "PdfFontSimple.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| /** A PdfFont implementation that can be used | | /** A PdfFont implementation that can be used | |
| * to embedd type1 fonts into a PDF file | | * to embedd type1 fonts into a PDF file | |
| * or to draw with type1 fonts. | | * or to draw with type1 fonts. | |
| */ | | */ | |
| class PdfFontType1 : public PdfFontSimple { | | class PdfFontType1 : public PdfFontSimple { | |
| public: | | public: | |
| | | | |
| skipping to change at line 61 | | skipping to change at line 61 | |
| * file will match this fontmetrics object. The metrics object
is | | * file will match this fontmetrics object. The metrics object
is | |
| * deleted along with the font. | | * deleted along with the font. | |
| * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | | * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | |
| * \param pObject an existing PdfObject | | * \param pObject an existing PdfObject | |
| */ | | */ | |
| PdfFontType1( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncod
ing, | | PdfFontType1( PdfFontMetrics* pMetrics, const PdfEncoding* const pEncod
ing, | |
| PdfObject* pObject ); | | PdfObject* pObject ); | |
| | | | |
| /** Create a PdfFont based on an existing PdfFont with a new id | | /** Create a PdfFont based on an existing PdfFont with a new id | |
| * \param pFont pointer to existing font | | * \param pFont pointer to existing font | |
|
| | | * \param pMetrics pointer to a font metrics object. The font in the P | |
| | | DF | |
| | | * file will match this fontmetrics object. The metrics object | |
| | | is | |
| | | * deleted along with the font. | |
| * \param pszSuffix Suffix to add to font-id | | * \param pszSuffix Suffix to add to font-id | |
| * \param pParent parent of the font object | | * \param pParent parent of the font object | |
| */ | | */ | |
| PdfFontType1( PdfFontType1* pFont, PdfFontMetrics* pMetrics, const char
*pszSuffix, PdfVecObjects* pParent ); | | PdfFontType1( PdfFontType1* pFont, PdfFontMetrics* pMetrics, const char
*pszSuffix, PdfVecObjects* pParent ); | |
| | | | |
| void InitBase14Font(); | | void InitBase14Font(); | |
| | | | |
| protected: | | protected: | |
| | | | |
| /** Remember the glyphs used in the string in case of subsetting | | /** Remember the glyphs used in the string in case of subsetting | |
| * | | * | |
| * \param sText the text string which should be printed (is not allowe
d to be NULL!) | | * \param sText the text string which should be printed (is not allowe
d to be NULL!) | |
|
| * \param lLen draw only lLen characters of pszText | | * \param lStringLen draw only lLen characters of pszText | |
| */ | | */ | |
| virtual void AddUsedSubsettingGlyphs( const PdfString & sText, long
lStringLen ); | | virtual void AddUsedSubsettingGlyphs( const PdfString & sText, long
lStringLen ); | |
| | | | |
|
| | | /** Remember the glyphname in case of subsetting | |
| | | * | |
| | | * \param sGlyphName Name of the glyph to remember | |
| | | */ | |
| | | virtual void AddUsedGlyphname( const char* sGlyphName ); | |
| | | | |
| /** Embeds pending subset-font into PDF page | | /** Embeds pending subset-font into PDF page | |
| * | | * | |
| */ | | */ | |
| virtual void EmbedSubsetFont(); | | virtual void EmbedSubsetFont(); | |
| | | | |
| /** Embed the font file directly into the PDF file. | | /** Embed the font file directly into the PDF file. | |
| * | | * | |
| * \param pDescriptor font descriptor object | | * \param pDescriptor font descriptor object | |
| */ | | */ | |
| virtual void EmbedFontFile( PdfObject* pDescriptor ); | | virtual void EmbedFontFile( PdfObject* pDescriptor ); | |
| | | | |
| private: | | private: | |
| | | | |
|
| | | bool FindSeac( const unsigned char * buffer, int length ); | |
| | | | |
| pdf_long FindInBuffer( const char* pszNeedle, const char* pszHaystack,
pdf_long lLen ) const; | | pdf_long FindInBuffer( const char* pszNeedle, const char* pszHaystack,
pdf_long lLen ) const; | |
| | | | |
| int m_bUsed[8]; // bitmask for usage if char 00..ff | | int m_bUsed[8]; // bitmask for usage if char 00..ff | |
| | | | |
|
| | | std::set<std::string> m_sUsedGlyph; // array for special chars | |
| | | | |
| | | }; | |
| | | | |
| | | /** Helper Class needed for parsing type1-font for subsetting | |
| | | */ | |
| | | class PdfType1Encrypt | |
| | | { | |
| | | public: | |
| | | /** Create a new PdfTypeEncrypt object. | |
| | | * | |
| | | */ | |
| | | PdfType1Encrypt(); | |
| | | | |
| | | /** Encrypts a character | |
| | | * | |
| | | * \param plain the character to encrypt. | |
| | | * | |
| | | * \return encrypted cipher | |
| | | * | |
| | | */ | |
| | | unsigned char Encrypt( unsigned char plain ); | |
| | | | |
| | | /** Decrypts a character | |
| | | * | |
| | | * \param cipher the cipher to decrypt. | |
| | | * | |
| | | * \return decrypted character | |
| | | * | |
| | | */ | |
| | | unsigned char Decrypt( unsigned char cipher ); | |
| | | | |
| | | protected: | |
| | | unsigned short int m_r; | |
| | | unsigned short int m_c1; | |
| | | unsigned short int m_c2; | |
| | | }; | |
| | | | |
| | | class PdfType1EncryptEexec : public PdfType1Encrypt | |
| | | { | |
| | | public: | |
| | | /** Create a new PdfType1EncryptEexec object. | |
| | | * | |
| | | */ | |
| | | PdfType1EncryptEexec(); | |
| | | }; | |
| | | | |
| | | class PdfType1EncryptCharstring : public PdfType1Encrypt | |
| | | { | |
| | | public: | |
| | | /** Create a new PdfType1EncryptCharstring object. | |
| | | * | |
| | | */ | |
| | | PdfType1EncryptCharstring(); | |
| }; | | }; | |
| | | | |
| }; | | }; | |
| | | | |
| #endif // _PDF_FONT_TYPE1_H_ | | #endif // _PDF_FONT_TYPE1_H_ | |
| | | | |
End of changes. 6 change blocks. |
| 2 lines changed or deleted | | 69 lines changed or added | |
|
| PdfFontType1Base14.h | | PdfFontType1Base14.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FONT_TYPE1_BASE14_H_ | | #ifndef _PDF_FONT_TYPE1_BASE14_H_ | |
| #define _PDF_FONT_TYPE1_BASE14_H_ | | #define _PDF_FONT_TYPE1_BASE14_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfFontSimple.h" | | #include "PdfFontSimple.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| /** A PdfFont implementation that can be used | | /** A PdfFont implementation that can be used | |
| * draw with base14 type1 fonts into a PDF file. | | * draw with base14 type1 fonts into a PDF file. | |
| */ | | */ | |
| class PdfFontType1Base14 : public PdfFontSimple { | | class PdfFontType1Base14 : public PdfFontSimple { | |
| public: | | public: | |
| /** Create a new Type1 font object. | | /** Create a new Type1 font object. | |
| * | | * | |
| * \param pMetrics pointer to a font metrics object. The font in the P
DF | | * \param pMetrics pointer to a font metrics object. The font in the P
DF | |
| * file will match this fontmetrics object. The metrics object
is | | * file will match this fontmetrics object. The metrics object
is | |
| * deleted along with the font. | | * deleted along with the font. | |
| * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | | * \param pEncoding the encoding of this font. The font will not take
ownership of this object. | |
| * \param pParent parent of the font object | | * \param pParent parent of the font object | |
|
| * \param bEmbed if true the font will get embedded. | | | |
| * | | * | |
| */ | | */ | |
| PdfFontType1Base14( PdfFontMetrics* pMetrics, const PdfEncoding* const
pEncoding, | | PdfFontType1Base14( PdfFontMetrics* pMetrics, const PdfEncoding* const
pEncoding, | |
| PdfVecObjects* pParent ); | | PdfVecObjects* pParent ); | |
| | | | |
| // OC 13.08.2010 New: | | // OC 13.08.2010 New: | |
| /** Create a new Type1 font object based on an existing PdfObject | | /** Create a new Type1 font object based on an existing PdfObject | |
| * \param pMetrics pointer to a font metrics object. The font in the P
DF | | * \param pMetrics pointer to a font metrics object. The font in the P
DF | |
| * file will match this fontmetrics object. The metrics object
is | | * file will match this fontmetrics object. The metrics object
is | |
| * deleted along with the font. | | * deleted along with the font. | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 1 lines changed or added | |
|
| PdfFunction.h | | PdfFunction.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_FUNCTION_H_ | | #ifndef _PDF_FUNCTION_H_ | |
| #define _PDF_FUNCTION_H_ | | #define _PDF_FUNCTION_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| | | | |
| #include <list> | | #include <list> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfArray; | | class PdfArray; | |
| | | | |
|
| | | /** | |
| | | * The function type of a mathematical function in a PDF file. | |
| | | */ | |
| enum EPdfFunctionType { | | enum EPdfFunctionType { | |
| ePdfFunctionType_Sampled = 0, ///< A sampled function (Type1) | | ePdfFunctionType_Sampled = 0, ///< A sampled function (Type1) | |
| ePdfFunctionType_Exponential = 2, ///< An exponential interpolation fun
ction (Type2) | | ePdfFunctionType_Exponential = 2, ///< An exponential interpolation fun
ction (Type2) | |
| ePdfFunctionType_Stitching = 3, ///< A stitching function (Type3) | | ePdfFunctionType_Stitching = 3, ///< A stitching function (Type3) | |
| ePdfFunctionType_PostScript = 4 ///< A PostScript calculator function
(Type4) | | ePdfFunctionType_PostScript = 4 ///< A PostScript calculator function
(Type4) | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * This class defines a PdfFunction. | | * This class defines a PdfFunction. | |
|
| | | * A function can be used in various ways in a PDF file. | |
| | | * Examples are device dependent rasterization for high quality | |
| | | * printing or color transformation functions for certain colorspaces. | |
| */ | | */ | |
|
| class PODOFO_API PdfFunction : public PdfElement { | | class PODOFO_DOC_API PdfFunction : public PdfElement { | |
| public: | | public: | |
| | | | |
| typedef std::list<PdfFunction> List; | | typedef std::list<PdfFunction> List; | |
| typedef std::list<char> Sample; | | typedef std::list<char> Sample; | |
| | | | |
| virtual ~PdfFunction(); | | virtual ~PdfFunction(); | |
| | | | |
| protected: | | protected: | |
| /** Create a new PdfFunction object. | | /** Create a new PdfFunction object. | |
| * | | * | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 94 | |
| * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | | * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | |
| * function has m input parameters, this array has to c
ontain 2*m numbers | | * function has m input parameters, this array has to c
ontain 2*m numbers | |
| * where each number describes either the lower or uppe
r boundary of the input range. | | * where each number describes either the lower or uppe
r boundary of the input range. | |
| */ | | */ | |
| void Init( EPdfFunctionType eType, const PdfArray & rDomain ); | | void Init( EPdfFunctionType eType, const PdfArray & rDomain ); | |
| | | | |
| }; | | }; | |
| | | | |
| /** This class is a PdfSampledFunction. | | /** This class is a PdfSampledFunction. | |
| */ | | */ | |
|
| class PODOFO_API PdfSampledFunction : public PdfFunction { | | class PODOFO_DOC_API PdfSampledFunction : public PdfFunction { | |
| public: | | public: | |
| /** Create a new PdfSampledFunction object. | | /** Create a new PdfSampledFunction object. | |
| * | | * | |
| * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | | * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | |
| * function has m input parameters, this array has to c
ontain 2*m numbers | | * function has m input parameters, this array has to c
ontain 2*m numbers | |
| * where each number describes either the lower or uppe
r boundary of the input range. | | * where each number describes either the lower or uppe
r boundary of the input range. | |
| * \param rRange this array describes the output parameters of this P
dfFunction. If this | | * \param rRange this array describes the output parameters of this P
dfFunction. If this | |
| * function has n input parameters, this array has to c
ontain 2*n numbers | | * function has n input parameters, this array has to c
ontain 2*n numbers | |
| * where each number describes either the lower or uppe
r boundary of the output range. | | * where each number describes either the lower or uppe
r boundary of the output range. | |
| * \param rlstSamples a list of bytes which are used to build up this
function sample data | | * \param rlstSamples a list of bytes which are used to build up this
function sample data | |
| | | | |
| skipping to change at line 125 | | skipping to change at line 131 | |
| | | | |
| private: | | private: | |
| /** Initialize this object. | | /** Initialize this object. | |
| */ | | */ | |
| void Init( const PdfArray & rDomain, const PdfArray & rRange, const Pd
fFunction::Sample & rlstSamples ); | | void Init( const PdfArray & rDomain, const PdfArray & rRange, const Pd
fFunction::Sample & rlstSamples ); | |
| | | | |
| }; | | }; | |
| | | | |
| /** This class is a PdfExponentialFunction. | | /** This class is a PdfExponentialFunction. | |
| */ | | */ | |
|
| class PODOFO_API PdfExponentialFunction : public PdfFunction { | | class PODOFO_DOC_API PdfExponentialFunction : public PdfFunction { | |
| public: | | public: | |
| /** Create a new PdfExponentialFunction object. | | /** Create a new PdfExponentialFunction object. | |
| * | | * | |
| * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | | * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | |
| * function has m input parameters, this array has to c
ontain 2*m numbers | | * function has m input parameters, this array has to c
ontain 2*m numbers | |
| * where each number describes either the lower or uppe
r boundary of the input range. | | * where each number describes either the lower or uppe
r boundary of the input range. | |
| * \param rC0 | | * \param rC0 | |
| * \param rC1 | | * \param rC1 | |
| * \param dExponent | | * \param dExponent | |
| * \param pParent parent vector of objects | | * \param pParent parent vector of objects | |
| | | | |
| skipping to change at line 164 | | skipping to change at line 170 | |
| void Init( const PdfArray & rC0, const PdfArray & rC1, double dExponent
); | | void Init( const PdfArray & rC0, const PdfArray & rC1, double dExponent
); | |
| | | | |
| }; | | }; | |
| | | | |
| /** This class is a PdfStitchingFunction, i.e. a PdfFunction that combines | | /** This class is a PdfStitchingFunction, i.e. a PdfFunction that combines | |
| * more than one PdfFunction into one. | | * more than one PdfFunction into one. | |
| * | | * | |
| * It combines several PdfFunctions that take 1 input parameter to | | * It combines several PdfFunctions that take 1 input parameter to | |
| * a new PdfFunction taking again only 1 input parameter. | | * a new PdfFunction taking again only 1 input parameter. | |
| */ | | */ | |
|
| class PODOFO_API PdfStitchingFunction : public PdfFunction { | | class PODOFO_DOC_API PdfStitchingFunction : public PdfFunction { | |
| public: | | public: | |
| /** Create a new PdfStitchingFunction object. | | /** Create a new PdfStitchingFunction object. | |
| * | | * | |
| * \param rlstFunctions a list of functions which are used to built up
this function object | | * \param rlstFunctions a list of functions which are used to built up
this function object | |
| * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | | * \param rDomain this array describes the input parameters of this Pd
fFunction. If this | |
| * function has m input parameters, this array has to c
ontain 2*m numbers | | * function has m input parameters, this array has to c
ontain 2*m numbers | |
| * where each number describes either the lower or uppe
r boundary of the input range. | | * where each number describes either the lower or uppe
r boundary of the input range. | |
| * \param rBounds the bounds array | | * \param rBounds the bounds array | |
| * \param rEncode the encode array | | * \param rEncode the encode array | |
| * \param pParent parent vector of objects | | * \param pParent parent vector of objects | |
| | | | |
End of changes. 7 change blocks. |
| 5 lines changed or deleted | | 11 lines changed or added | |
|
| PdfImage.h | | PdfImage.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_IMAGE_H_ | | #ifndef _PDF_IMAGE_H_ | |
| #define _PDF_IMAGE_H_ | | #define _PDF_IMAGE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfFilter.h" | | #include "podofo/base/PdfFilter.h" | |
| #include "PdfXObject.h" | | #include "PdfXObject.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDocument; | | class PdfDocument; | |
| class PdfInputStream; | | class PdfInputStream; | |
| class PdfObject; | | class PdfObject; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| | | | |
| /** A PdfImage object is needed when ever you want to embedd an image | | /** A PdfImage object is needed when ever you want to embedd an image | |
| * file into a PDF document. | | * file into a PDF document. | |
| * The PdfImage object is embedded once and can be drawn as often | | * The PdfImage object is embedded once and can be drawn as often | |
|
| * as you want on any page in the document using a PdfImageRef object | | * as you want on any page in the document using PdfPainter | |
| * which has to be retrieved from the PdfImage object before drawing. | | | |
| * | | * | |
| * \see GetImageReference | | * \see GetImageReference | |
| * \see PdfPainter::DrawImage | | * \see PdfPainter::DrawImage | |
| * | | * | |
| * \see SetImageData | | * \see SetImageData | |
| */ | | */ | |
|
| class PODOFO_API PdfImage : public PdfXObject { | | class PODOFO_DOC_API PdfImage : public PdfXObject { | |
| public: | | public: | |
| /** Constuct a new PdfImage object | | /** Constuct a new PdfImage object | |
| * | | * | |
| * \param pParent parent vector of this image | | * \param pParent parent vector of this image | |
| * \param pszPrefix optional prefix for XObject-name | | * \param pszPrefix optional prefix for XObject-name | |
| */ | | */ | |
| PdfImage( PdfVecObjects* pParent, const char* pszPrefix = NULL ); | | PdfImage( PdfVecObjects* pParent, const char* pszPrefix = NULL ); | |
| | | | |
| /** Constuct a new PdfImage object | | /** Constuct a new PdfImage object | |
| * This is an overloaded constructor. | | * This is an overloaded constructor. | |
| | | | |
| skipping to change at line 220 | | skipping to change at line 219 | |
| * \param pStream stream supplieding raw image data | | * \param pStream stream supplieding raw image data | |
| */ | | */ | |
| void SetImageDataRaw( unsigned int nWidth, unsigned int nHeight, | | void SetImageDataRaw( unsigned int nWidth, unsigned int nHeight, | |
| unsigned int nBitsPerComponent, PdfInputStream* p
Stream ); | | unsigned int nBitsPerComponent, PdfInputStream* p
Stream ); | |
| | | | |
| /** Converts a EPdfColorSpace enum to a name key which can be used in a | | /** Converts a EPdfColorSpace enum to a name key which can be used in a | |
| * PDF dictionary. | | * PDF dictionary. | |
| * \param eColorSpace a valid colorspace | | * \param eColorSpace a valid colorspace | |
| * \returns a valid key for this colorspace. | | * \returns a valid key for this colorspace. | |
| */ | | */ | |
|
| static const char* ColorspaceToName( EPdfColorSpace eColorSpace ); | | static PdfName ColorspaceToName( EPdfColorSpace eColorSpace ); | |
| | | | |
| #ifdef PODOFO_HAVE_JPEG_LIB | | #ifdef PODOFO_HAVE_JPEG_LIB | |
|
| void LoadFromJpegHandle( FILE* hInfile, PdfFileInputStream* pInStrea
m ); | | void LoadFromJpegHandle( PdfFileInputStream* pInStream ); | |
| #endif // PODOFO_HAVE_JPEG_LIB | | #endif // PODOFO_HAVE_JPEG_LIB | |
| }; | | }; | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline double PdfImage::GetWidth() const | | inline double PdfImage::GetWidth() const | |
| { | | { | |
| return this->GetPageSize().GetWidth(); | | return this->GetPageSize().GetWidth(); | |
| } | | } | |
| | | | |
End of changes. 5 change blocks. |
| 7 lines changed or deleted | | 6 lines changed or added | |
|
| PdfInfo.h | | PdfInfo.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| * * | | * * | |
| * You should have received a copy of the GNU Library General Public * | | * You should have received a copy of the GNU Library General Public * | |
| * License along with this program; if not, write to the * | | * License along with this program; if not, write to the * | |
| * Free Software Foundation, Inc., * | | * Free Software Foundation, Inc., * | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | |
| ***************************************************************************
/ | | ***************************************************************************
/ | |
| | | | |
| #ifndef _PDF_INFO_H_ | | #ifndef _PDF_INFO_H_ | |
| #define _PDF_INFO_H_ | | #define _PDF_INFO_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | #include "podofo/base/PdfName.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
|
| #include "PdfName.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfString; | | class PdfString; | |
| | | | |
| /** This class provides access to the documents | | /** This class provides access to the documents | |
| * info dictionary, which provides information | | * info dictionary, which provides information | |
| * about the PDF document. | | * about the PDF document. | |
| */ | | */ | |
|
| class PODOFO_API PdfInfo : public PdfElement { | | class PODOFO_DOC_API PdfInfo : public PdfElement { | |
| public: | | public: | |
| /** | | /** | |
| * Enum to specifiy the initial information of the | | * Enum to specifiy the initial information of the | |
| * info dictionary. | | * info dictionary. | |
| */ | | */ | |
| enum EPdfInfoInitial { | | enum EPdfInfoInitial { | |
| ePdfInfoInitial_WriteCreationTime = 0x01, ///< Write the creati
on time (current time). Default for new documents. | | ePdfInfoInitial_WriteCreationTime = 0x01, ///< Write the creati
on time (current time). Default for new documents. | |
| ePdfInfoInitial_WriteModificationTime = 0x02, ///< Write the modifi
cation time (current time). Default for loaded documents. | | ePdfInfoInitial_WriteModificationTime = 0x02, ///< Write the modifi
cation time (current time). Default for loaded documents. | |
| ePdfInfoInitial_WriteProducer = 0x04 ///< Write producer k
ey. Default for new documents. | | ePdfInfoInitial_WriteProducer = 0x04 ///< Write producer k
ey. Default for new documents. | |
| }; | | }; | |
| | | | |
| skipping to change at line 132 | | skipping to change at line 132 | |
| */ | | */ | |
| void SetProducer( const PdfString & sProducer ); | | void SetProducer( const PdfString & sProducer ); | |
| | | | |
| // Peter Petrov 27 April 2008 | | // Peter Petrov 27 April 2008 | |
| /** Get the producer of the document | | /** Get the producer of the document | |
| * \returns the producer | | * \returns the producer | |
| */ | | */ | |
| inline const PdfString & GetProducer() const; | | inline const PdfString & GetProducer() const; | |
| | | | |
| /** Set the trapping state of the document. | | /** Set the trapping state of the document. | |
|
| * \param sTitle title | | * \param sTrapped trapped | |
| */ | | */ | |
| void SetTrapped( const PdfName & sTrapped ); | | void SetTrapped( const PdfName & sTrapped ); | |
| | | | |
| /** Get the trapping state of the document | | /** Get the trapping state of the document | |
| * \returns the title | | * \returns the title | |
| */ | | */ | |
| inline const PdfName & GetTrapped() const; | | inline const PdfName & GetTrapped() const; | |
| | | | |
| private: | | private: | |
| /** Add the initial document information to the dictionary. | | /** Add the initial document information to the dictionary. | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|
| PdfMemDocument.h | | PdfMemDocument.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_MEM_DOCUMENT_H_ | | #ifndef _PDF_MEM_DOCUMENT_H_ | |
| #define _PDF_MEM_DOCUMENT_H_ | | #define _PDF_MEM_DOCUMENT_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | #include "podofo/base/PdfObject.h" | |
| | | | |
| #include "PdfDocument.h" | | #include "PdfDocument.h" | |
| #include "PdfFontCache.h" | | #include "PdfFontCache.h" | |
|
| #include "PdfObject.h" | | | |
| #include "PdfParser.h" | | | |
| #include "PdfWriter.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfAcroForm; | | class PdfAcroForm; | |
| class PdfDestination; | | class PdfDestination; | |
| class PdfDictionary; | | class PdfDictionary; | |
| class PdfEncrypt; | | class PdfEncrypt; | |
| class PdfFileSpec; | | class PdfFileSpec; | |
| class PdfFont; | | class PdfFont; | |
| class PdfInfo; | | class PdfInfo; | |
| class PdfNamesTree; | | class PdfNamesTree; | |
| class PdfOutlines; | | class PdfOutlines; | |
| class PdfPage; | | class PdfPage; | |
| class PdfPagesTree; | | class PdfPagesTree; | |
|
| | | class PdfParser; | |
| class PdfRect; | | class PdfRect; | |
|
| | | class PdfWriter; | |
| | | | |
| /** PdfMemDocument is the core class for reading and manipulating | | /** PdfMemDocument is the core class for reading and manipulating | |
| * PDF files and writing them back to disk. | | * PDF files and writing them back to disk. | |
| * | | * | |
| * PdfMemDocument was designed to allow easy access to the object | | * PdfMemDocument was designed to allow easy access to the object | |
| * structur of a PDF file. | | * structur of a PDF file. | |
| * | | * | |
| * PdfMemDocument should be used whenever you want to change | | * PdfMemDocument should be used whenever you want to change | |
| * the object structure of a PDF file. | | * the object structure of a PDF file. | |
| * | | * | |
| * When you are only creating PDF files, please use PdfStreamedDocument | | * When you are only creating PDF files, please use PdfStreamedDocument | |
| * which is usually faster for creating PDFs. | | * which is usually faster for creating PDFs. | |
| * | | * | |
| * \see PdfDocument | | * \see PdfDocument | |
| * \see PdfStreamedDocument | | * \see PdfStreamedDocument | |
| * \see PdfParser | | * \see PdfParser | |
| * \see PdfWriter | | * \see PdfWriter | |
| */ | | */ | |
|
| class PODOFO_API PdfMemDocument : public PdfDocument { | | class PODOFO_DOC_API PdfMemDocument : public PdfDocument { | |
| friend class PdfWriter; | | friend class PdfWriter; | |
| | | | |
| public: | | public: | |
| | | | |
| /** Construct a new (empty) PdfMemDocument | | /** Construct a new (empty) PdfMemDocument | |
| */ | | */ | |
| PdfMemDocument(); | | PdfMemDocument(); | |
| | | | |
| /** Construct a PdfMemDocument from an existing PDF (on disk) | | /** Construct a PdfMemDocument from an existing PDF (on disk) | |
| * \param pszFilename filename of the file which is going to be parsed
/opened | | * \param pszFilename filename of the file which is going to be parsed
/opened | |
| | | | |
| skipping to change at line 243 | | skipping to change at line 243 | |
| */ | | */ | |
| void SetPassword( const std::string & sPassword ); | | void SetPassword( const std::string & sPassword ); | |
| | | | |
| /** Encrypt the document during writing. | | /** Encrypt the document during writing. | |
| * | | * | |
| * \param userPassword the user password (if empty the user does not h
ave | | * \param userPassword the user password (if empty the user does not h
ave | |
| * to enter a password to open the document) | | * to enter a password to open the document) | |
| * \param ownerPassword the owner password | | * \param ownerPassword the owner password | |
| * \param protection several EPdfPermissions values or'ed together to
set | | * \param protection several EPdfPermissions values or'ed together to
set | |
| * the users permissions for this document | | * the users permissions for this document | |
|
| * \param eRevision the revision of the encryption algorithm to be use
d | | * \param eAlgorithm the revision of the encryption algorithm to be us
ed | |
| * \param eKeyLength the length of the encryption key ranging from 40
to 128 bits | | * \param eKeyLength the length of the encryption key ranging from 40
to 128 bits | |
| * (only used if eAlgorithm == ePdfEncryptAlgorithm_
RC4V2) | | * (only used if eAlgorithm == ePdfEncryptAlgorithm_
RC4V2) | |
| * | | * | |
| * \see PdfEncrypt | | * \see PdfEncrypt | |
| */ | | */ | |
| void SetEncrypted( const std::string & userPassword, | | void SetEncrypted( const std::string & userPassword, | |
| const std::string & ownerPassword, | | const std::string & ownerPassword, | |
| int protection = PdfEncrypt::ePdfPermissions_Print | | | int protection = PdfEncrypt::ePdfPermissions_Print | | |
| PdfEncrypt::ePdfPermissions_Edit | | | PdfEncrypt::ePdfPermissions_Edit | | |
| PdfEncrypt::ePdfPermissions_Copy | | | PdfEncrypt::ePdfPermissions_Copy | | |
| | | | |
| skipping to change at line 465 | | skipping to change at line 465 | |
| * \param pObj free object from memory | | * \param pObj free object from memory | |
| * \param bForce if true the object will be free'd | | * \param bForce if true the object will be free'd | |
| * even if IsDirty() returns true. | | * even if IsDirty() returns true. | |
| * So you will loose any changes made | | * So you will loose any changes made | |
| * to this object. | | * to this object. | |
| * | | * | |
| * \see IsDirty | | * \see IsDirty | |
| */ | | */ | |
| void FreeObjectMemory( PdfObject* pObj, bool bForce = false ); | | void FreeObjectMemory( PdfObject* pObj, bool bForce = false ); | |
| | | | |
|
| | | /** | |
| | | * \returns the parsers encryption object or NULL if the read PDF file | |
| | | was not encrypted | |
| | | */ | |
| | | inline const PdfEncrypt* GetEncrypt() const; | |
| | | | |
| private: | | private: | |
| /** Get a dictioary from the catalog dictionary by its name. | | /** Get a dictioary from the catalog dictionary by its name. | |
| * \param pszName will be converted into a PdfName | | * \param pszName will be converted into a PdfName | |
| * \returns the dictionary if it was found or NULL | | * \returns the dictionary if it was found or NULL | |
| */ | | */ | |
| PdfObject* GetNamedObjectFromCatalog( const char* pszName ) const; | | PdfObject* GetNamedObjectFromCatalog( const char* pszName ) const; | |
| | | | |
| /** Internal method to load all objects from a PdfParser object. | | /** Internal method to load all objects from a PdfParser object. | |
| * The objects will be removed from the parser and are now | | * The objects will be removed from the parser and are now | |
| * owned by the PdfMemDocument. | | * owned by the PdfMemDocument. | |
| | | | |
| skipping to change at line 570 | | skipping to change at line 575 | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| bool PdfMemDocument::IsHighPrintAllowed() const | | bool PdfMemDocument::IsHighPrintAllowed() const | |
| { | | { | |
| return m_pEncrypt ? m_pEncrypt->IsHighPrintAllowed() : true; | | return m_pEncrypt ? m_pEncrypt->IsHighPrintAllowed() : true; | |
| } | | } | |
| | | | |
|
| | | // ----------------------------------------------------- | |
| | | // | |
| | | // ----------------------------------------------------- | |
| | | const PdfEncrypt* PdfMemDocument::GetEncrypt() const | |
| | | { | |
| | | return m_pEncrypt; | |
| | | } | |
| | | | |
| }; | | }; | |
| | | | |
| #endif // _PDF_MEM_DOCUMENT_H_ | | #endif // _PDF_MEM_DOCUMENT_H_ | |
| | | | |
End of changes. 8 change blocks. |
| 6 lines changed or deleted | | 20 lines changed or added | |
|
| PdfMemStream.h | | PdfMemStream.h | |
| | | | |
| skipping to change at line 110 | | skipping to change at line 110 | |
| */ | | */ | |
| inline const char* Get() const; | | inline const char* Get() const; | |
| | | | |
| /** Get the stream's length. The length is that of the internal | | /** Get the stream's length. The length is that of the internal | |
| * stream buffer, so (eg) for a Flate-compressed stream it will be | | * stream buffer, so (eg) for a Flate-compressed stream it will be | |
| * the length of the compressed data. | | * the length of the compressed data. | |
| * | | * | |
| * \returns the length of the internal buffer | | * \returns the length of the internal buffer | |
| * \see Get() | | * \see Get() | |
| */ | | */ | |
|
| inline pdf_long GetLength() const; | | virtual pdf_long GetLength() const; | |
| | | | |
| /** This function compresses any currently set stream | | /** This function compresses any currently set stream | |
| * using the FlateDecode(ZIP) algorithm. JPEG compressed streams | | * using the FlateDecode(ZIP) algorithm. JPEG compressed streams | |
| * will not be compressed again using this function. | | * will not be compressed again using this function. | |
| * Entries to the filter dictionary will be added if necessary. | | * Entries to the filter dictionary will be added if necessary. | |
| */ | | */ | |
| void FlateCompress(); | | void FlateCompress(); | |
| | | | |
| /** This method removes all filters from the stream | | /** This method removes all filters from the stream | |
| */ | | */ | |
| | | | |
| skipping to change at line 179 | | skipping to change at line 179 | |
| * Expects that all filters are setup correctly. | | * Expects that all filters are setup correctly. | |
| * \returns ErrOk on success | | * \returns ErrOk on success | |
| */ | | */ | |
| void FlateCompressStreamData(); | | void FlateCompressStreamData(); | |
| | | | |
| private: | | private: | |
| PdfRefCountedBuffer m_buffer; | | PdfRefCountedBuffer m_buffer; | |
| PdfOutputStream* m_pStream; | | PdfOutputStream* m_pStream; | |
| PdfBufferOutputStream* m_pBufferStream; | | PdfBufferOutputStream* m_pBufferStream; | |
| | | | |
|
| pdf_long m_lLength; | | pdf_long m_lLength; | |
| }; | | }; | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| const char* PdfMemStream::Get() const | | const char* PdfMemStream::Get() const | |
| { | | { | |
| return m_buffer.GetBuffer(); | | return m_buffer.GetBuffer(); | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
|
| pdf_long PdfMemStream::GetLength() const | | | |
| { | | | |
| return m_lLength; | | | |
| } | | | |
| | | | |
| // ----------------------------------------------------- | | | |
| // | | | |
| // ----------------------------------------------------- | | | |
| const char* PdfMemStream::GetInternalBuffer() const | | const char* PdfMemStream::GetInternalBuffer() const | |
| { | | { | |
| return m_buffer.GetBuffer(); | | return m_buffer.GetBuffer(); | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| pdf_long PdfMemStream::GetInternalBufferSize() const | | pdf_long PdfMemStream::GetInternalBufferSize() const | |
| { | | { | |
| | | | |
End of changes. 3 change blocks. |
| 10 lines changed or deleted | | 2 lines changed or added | |
|
| PdfOutlines.h | | PdfOutlines.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_OUTLINE_H_ | | #ifndef _PDF_OUTLINE_H_ | |
| #define _PDF_OUTLINE_H_ | | #define _PDF_OUTLINE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDestination; | | class PdfDestination; | |
| class PdfAction; | | class PdfAction; | |
| class PdfObject; | | class PdfObject; | |
| class PdfOutlineItem; | | class PdfOutlineItem; | |
| class PdfString; | | class PdfString; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| | | | |
| skipping to change at line 58 | | skipping to change at line 58 | |
| | | | |
| /** | | /** | |
| * A PDF outline item has an title and a destination. | | * A PDF outline item has an title and a destination. | |
| * It is an element in the documents outline which shows | | * It is an element in the documents outline which shows | |
| * its hierarchical structure. | | * its hierarchical structure. | |
| * | | * | |
| * \see PdfDocument | | * \see PdfDocument | |
| * \see PdfOutlines | | * \see PdfOutlines | |
| * \see PdfDestination | | * \see PdfDestination | |
| */ | | */ | |
|
| class PODOFO_API PdfOutlineItem : public PdfElement { | | class PODOFO_DOC_API PdfOutlineItem : public PdfElement { | |
| public: | | public: | |
| virtual ~PdfOutlineItem(); | | virtual ~PdfOutlineItem(); | |
| | | | |
| /** Create a PdfOutlineItem that is a child of this item | | /** Create a PdfOutlineItem that is a child of this item | |
| * \param sTitle title of this item | | * \param sTitle title of this item | |
| * \param rDest destination of this item | | * \param rDest destination of this item | |
| */ | | */ | |
| PdfOutlineItem* CreateChild( const PdfString & sTitle, const PdfDestina
tion & rDest ); | | PdfOutlineItem* CreateChild( const PdfString & sTitle, const PdfDestina
tion & rDest ); | |
| | | | |
| /** Create a PdfOutlineItem that is on the same level and follows the c
urrent item. | | /** Create a PdfOutlineItem that is on the same level and follows the c
urrent item. | |
| | | | |
| skipping to change at line 127 | | skipping to change at line 127 | |
| * call. | | * call. | |
| */ | | */ | |
| void Erase(); | | void Erase(); | |
| | | | |
| /** Set the destination of this outline. | | /** Set the destination of this outline. | |
| * \param rDest the destination | | * \param rDest the destination | |
| */ | | */ | |
| void SetDestination( const PdfDestination & rDest ); | | void SetDestination( const PdfDestination & rDest ); | |
| | | | |
| /** Get the destination of this outline. | | /** Get the destination of this outline. | |
|
| | | * \param pDoc a PdfDocument owning this annotation. | |
| | | * This is required to resolve names and pages. | |
| * \returns the destination, if there is one, or NULL | | * \returns the destination, if there is one, or NULL | |
| */ | | */ | |
|
| PdfDestination* GetDestination( void ); | | PdfDestination* GetDestination( PdfDocument* pDoc ); | |
| | | | |
| /** Set the action of this outline. | | /** Set the action of this outline. | |
| * \param rAction the action | | * \param rAction the action | |
| */ | | */ | |
| void SetAction( const PdfAction & rAction ); | | void SetAction( const PdfAction & rAction ); | |
| | | | |
| /** Get the action of this outline. | | /** Get the action of this outline. | |
| * \returns the action, if there is one, or NULL | | * \returns the action, if there is one, or NULL | |
| */ | | */ | |
| PdfAction* GetAction( void ); | | PdfAction* GetAction( void ); | |
| | | | |
| skipping to change at line 298 | | skipping to change at line 300 | |
| return m_pNext; | | return m_pNext; | |
| } | | } | |
| | | | |
| /** The main PDF outlines dictionary. | | /** The main PDF outlines dictionary. | |
| * | | * | |
| * Do not create it by yourself but | | * Do not create it by yourself but | |
| * use PdfDocument::GetOutlines() instead. | | * use PdfDocument::GetOutlines() instead. | |
| * | | * | |
| * \see PdfDocument | | * \see PdfDocument | |
| */ | | */ | |
|
| class PODOFO_API PdfOutlines : public PdfOutlineItem { | | class PODOFO_DOC_API PdfOutlines : public PdfOutlineItem { | |
| public: | | public: | |
| | | | |
| /** Create a new PDF outlines dictionary | | /** Create a new PDF outlines dictionary | |
| * \param pParent parent vector of objects | | * \param pParent parent vector of objects | |
| */ | | */ | |
| PdfOutlines( PdfVecObjects* pParent ); | | PdfOutlines( PdfVecObjects* pParent ); | |
| | | | |
| /** Create a PDF outlines object from an existing dictionary | | /** Create a PDF outlines object from an existing dictionary | |
| * \param pObject an existing outlines dictionary | | * \param pObject an existing outlines dictionary | |
| */ | | */ | |
| | | | |
End of changes. 5 change blocks. |
| 4 lines changed or deleted | | 6 lines changed or added | |
|
| PdfOutputDevice.h | | PdfOutputDevice.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_OUTPUT_DEVICE_H_ | | #ifndef _PDF_OUTPUT_DEVICE_H_ | |
| #define _PDF_OUTPUT_DEVICE_H_ | | #define _PDF_OUTPUT_DEVICE_H_ | |
| | | | |
| #include <cstdarg> | | #include <cstdarg> | |
| #include <ostream> | | #include <ostream> | |
| | | | |
| #include "PdfDefines.h" | | #include "PdfDefines.h" | |
| #include "PdfLocale.h" | | #include "PdfLocale.h" | |
|
| | | #include "PdfRefCountedBuffer.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
|
| class PdfRefCountedBuffer; | | | |
| | | | |
| /** This class provides an output device which operates | | /** This class provides an output device which operates | |
| * either on a file or on a buffer in memory. | | * either on a file or on a buffer in memory. | |
| * Additionally it can count the bytes written to the device. | | * Additionally it can count the bytes written to the device. | |
| * | | * | |
| * This class is suitable for inheritance to provide output | | * This class is suitable for inheritance to provide output | |
| * devices of your own for PoDoFo. | | * devices of your own for PoDoFo. | |
| * Just overide the required virtual methods. | | * Just overide the required virtual methods. | |
| */ | | */ | |
| class PODOFO_API PdfOutputDevice { | | class PODOFO_API PdfOutputDevice { | |
| public: | | public: | |
| | | | |
| skipping to change at line 121 | | skipping to change at line 120 | |
| * WARNING: Do not use this for doubles or floating point values | | * WARNING: Do not use this for doubles or floating point values | |
| * as the output might depend on the current locale. | | * as the output might depend on the current locale. | |
| * | | * | |
| * \param pszFormat a format string as you would use it with printf | | * \param pszFormat a format string as you would use it with printf | |
| * \returns ErrOk on success | | * \returns ErrOk on success | |
| * | | * | |
| * \see Write | | * \see Write | |
| */ | | */ | |
| virtual void Print( const char* pszFormat, ... ); | | virtual void Print( const char* pszFormat, ... ); | |
| | | | |
|
| | | /** Write to the PdfOutputDevice. Usage is as the usage of printf. | |
| | | * | |
| | | * WARNING: Do not use this for doubles or floating point values | |
| | | * as the output might depend on the current locale. | |
| | | * | |
| | | * \param pszFormat a format string as you would use it with printf | |
| | | * \param lBytes length of the format string in bytes when written | |
| | | * \param argptr variable argument list | |
| | | * \returns ErrOk on success | |
| | | * | |
| | | * \see Write | |
| | | */ | |
| | | virtual void PrintV( const char* pszFormat, long lBytes, va_list arg | |
| | | ptr ); | |
| | | | |
| | | /** | |
| | | * Determine the length of a format string in bytes | |
| | | * when written using PrintV | |
| | | * | |
| | | * \param pszFormat format string | |
| | | * \param args variable argument list | |
| | | * | |
| | | * \returns length in bytes | |
| | | * \see PrintV | |
| | | */ | |
| | | long PrintVLen( const char* pszFormat, va_list args ); | |
| | | | |
| /** Write data to the buffer. Use this call instead of Print if you | | /** Write data to the buffer. Use this call instead of Print if you | |
| * want to write binary data to the PdfOutputDevice. | | * want to write binary data to the PdfOutputDevice. | |
| * | | * | |
| * \param pBuffer a pointer to the data buffer | | * \param pBuffer a pointer to the data buffer | |
| * \param lLen write lLen bytes of pBuffer to the PdfOutputDevice | | * \param lLen write lLen bytes of pBuffer to the PdfOutputDevice | |
| * \returns ErrOk on success | | * \returns ErrOk on success | |
| * | | * | |
| * \see Print | | * \see Print | |
| */ | | */ | |
| virtual void Write( const char* pBuffer, size_t lLen ); | | virtual void Write( const char* pBuffer, size_t lLen ); | |
| | | | |
|
| | | /** Read data from the device | |
| | | * \param pBuffer a pointer to the data buffer | |
| | | * \param lLen length of the output buffer | |
| | | * \returns Number of read bytes. Return 0 if EOF | |
| | | */ | |
| | | virtual size_t Read( char* pBuffer, size_t lLen ); | |
| | | | |
| /** Seek the device to the position offset from the begining | | /** Seek the device to the position offset from the begining | |
| * \param offset from the beginning of the file | | * \param offset from the beginning of the file | |
| */ | | */ | |
| virtual void Seek( size_t offset ); | | virtual void Seek( size_t offset ); | |
| | | | |
| /** Get the current offset from the beginning of the file. | | /** Get the current offset from the beginning of the file. | |
| * \return the offset form the beginning of the file. | | * \return the offset form the beginning of the file. | |
| */ | | */ | |
| virtual inline size_t Tell() const; | | virtual inline size_t Tell() const; | |
| | | | |
| | | | |
| skipping to change at line 158 | | skipping to change at line 190 | |
| /** Initialize all private members | | /** Initialize all private members | |
| */ | | */ | |
| void Init(); | | void Init(); | |
| | | | |
| protected: | | protected: | |
| size_t m_ulLength; | | size_t m_ulLength; | |
| | | | |
| private: | | private: | |
| FILE* m_hFile; | | FILE* m_hFile; | |
| char* m_pBuffer; | | char* m_pBuffer; | |
|
| size_t m_lBufferLen; | | size_t m_lBufferLen; | |
| | | | |
| std::ostream* m_pStream; | | std::ostream* m_pStream; | |
|
| | | std::istream* m_pReadStream; | |
| bool m_pStreamOwned; | | bool m_pStreamOwned; | |
| std::locale m_pStreamSavedLocale; | | std::locale m_pStreamSavedLocale; | |
| PdfRefCountedBuffer* m_pRefCountedBuffer; | | PdfRefCountedBuffer* m_pRefCountedBuffer; | |
|
| size_t m_ulPosition; | | size_t m_ulPosition; | |
| | | | |
|
| | | PdfRefCountedBuffer m_printBuffer; | |
| }; | | }; | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| size_t PdfOutputDevice::GetLength() const | | size_t PdfOutputDevice::GetLength() const | |
| { | | { | |
| return m_ulLength; | | return m_ulLength; | |
| } | | } | |
| | | | |
| | | | |
End of changes. 8 change blocks. |
| 4 lines changed or deleted | | 39 lines changed or added | |
|
| PdfPage.h | | PdfPage.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_PAGE_H_ | | #ifndef _PDF_PAGE_H_ | |
| #define _PDF_PAGE_H_ | | #define _PDF_PAGE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | | |
| | | #include "podofo/base/PdfArray.h" | |
| | | #include "podofo/base/PdfCanvas.h" | |
| | | #include "podofo/base/PdfRect.h" | |
| | | | |
|
| #include "PdfArray.h" | | | |
| #include "PdfAnnotation.h" | | #include "PdfAnnotation.h" | |
|
| #include "PdfCanvas.h" | | | |
| #include "PdfContents.h" | | #include "PdfContents.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| #include "PdfField.h" | | #include "PdfField.h" | |
|
| #include "PdfRect.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDocument; | | class PdfDocument; | |
| class PdfDictionary; | | class PdfDictionary; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| | | | |
| typedef std::map<PdfReference,PdfAnnotation*> TMapAnnotation; | | typedef std::map<PdfReference,PdfAnnotation*> TMapAnnotation; | |
| typedef TMapAnnotation::iterator TIMapAnnotation; | | typedef TMapAnnotation::iterator TIMapAnnotation; | |
| typedef TMapAnnotation::const_iterator TCIMapAnnotation; | | typedef TMapAnnotation::const_iterator TCIMapAnnotation; | |
| | | | |
| /** PdfPage is one page in the pdf document. | | /** PdfPage is one page in the pdf document. | |
| * It is possible to draw on a page using a PdfPainter object. | | * It is possible to draw on a page using a PdfPainter object. | |
| * Every document needs at least one page. | | * Every document needs at least one page. | |
| */ | | */ | |
|
| class PODOFO_API PdfPage : public PdfElement, public PdfCanvas { | | class PODOFO_DOC_API PdfPage : public PdfElement, public PdfCanvas { | |
| public: | | public: | |
| /** Create a new PdfPage object. | | /** Create a new PdfPage object. | |
| * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | | * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | |
| * \param pParent add the page to this parent | | * \param pParent add the page to this parent | |
| */ | | */ | |
| PdfPage( const PdfRect & rSize, PdfDocument* pParent ); | | PdfPage( const PdfRect & rSize, PdfDocument* pParent ); | |
| | | | |
| /** Create a new PdfPage object. | | /** Create a new PdfPage object. | |
| * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | | * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | |
| * \param pParent add the page to this parent | | * \param pParent add the page to this parent | |
| | | | |
| skipping to change at line 238 | | skipping to change at line 239 | |
| /** Get an element from the pages resources dictionary, | | /** Get an element from the pages resources dictionary, | |
| * using a type (category) and a key. | | * using a type (category) and a key. | |
| * | | * | |
| * \param rType the type of resource to fetch (e.g. /Font, or /XObject
) | | * \param rType the type of resource to fetch (e.g. /Font, or /XObject
) | |
| * \param rKey the key of the resource | | * \param rKey the key of the resource | |
| * | | * | |
| * \returns the object of the resource or NULL if it was not found | | * \returns the object of the resource or NULL if it was not found | |
| */ | | */ | |
| PdfObject* GetFromResources( const PdfName & rType, const PdfName & rKe
y ); | | PdfObject* GetFromResources( const PdfName & rType, const PdfName & rKe
y ); | |
| | | | |
|
| | | /** Method for getting a value that can be inherited | |
| | | * Possible names that can be inherited according to | |
| | | * the PDF specification are: Resources, MediaBox, CropBox and Rotate | |
| | | * | |
| | | * \returns PdfObject - the result of the key fetching or NULL | |
| | | */ | |
| | | inline const PdfObject* GetInheritedKey( const PdfName & rName ) const; | |
| | | | |
| private: | | private: | |
| | | | |
| /** | | /** | |
| * Initialize a new page object. | | * Initialize a new page object. | |
| * m_pContents must be initialized before calling this! | | * m_pContents must be initialized before calling this! | |
| * | | * | |
| * @param rSize page size | | * @param rSize page size | |
| */ | | */ | |
| void InitNewPage( const PdfRect & rSize ); | | void InitNewPage( const PdfRect & rSize ); | |
| | | | |
| | | | |
| skipping to change at line 261 | | skipping to change at line 270 | |
| * the object is only created if needed. | | * the object is only created if needed. | |
| */ | | */ | |
| void CreateContents(); | | void CreateContents(); | |
| | | | |
| /** Get the bounds of a specified page box in PDF units. | | /** Get the bounds of a specified page box in PDF units. | |
| * This function is internal, since there are wrappers for all standard
boxes | | * This function is internal, since there are wrappers for all standard
boxes | |
| * \returns PdfRect the page box | | * \returns PdfRect the page box | |
| */ | | */ | |
| const PdfRect GetPageBox( const char* inBox ) const; | | const PdfRect GetPageBox( const char* inBox ) const; | |
| | | | |
|
| /** Private method for getting a key value that could be inherited (suc | | /** Method for getting a key value that could be inherited (such as the | |
| h as the boxes, resources, etc.) | | boxes, resources, etc.) | |
| * \returns PdfVariant - the result of the key fetching | | * \returns PdfObject - the result of the key fetching or NULL | |
| */ | | */ | |
| const PdfObject* GetInheritedKeyFromObject( const char* inKey, const Pd
fObject* inObject ) const; | | const PdfObject* GetInheritedKeyFromObject( const char* inKey, const Pd
fObject* inObject ) const; | |
| | | | |
| /** Get the annotations array. | | /** Get the annotations array. | |
| * \param bCreate if true the annotations array is created | | * \param bCreate if true the annotations array is created | |
| * if it does not exist. | | * if it does not exist. | |
| * \returns the annotations array or NULL if none exists. | | * \returns the annotations array or NULL if none exists. | |
| */ | | */ | |
| PdfObject* GetAnnotationsArray( bool bCreate = false ) const; | | PdfObject* GetAnnotationsArray( bool bCreate = false ) const; | |
| | | | |
| | | | |
| skipping to change at line 296 | | skipping to change at line 305 | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| inline const PdfRect PdfPage::GetPageSize() const | | inline const PdfRect PdfPage::GetPageSize() const | |
| { | | { | |
| return this->GetMediaBox(); | | return this->GetMediaBox(); | |
| } | | } | |
| | | | |
|
| | | // ----------------------------------------------------- | |
| | | // | |
| | | // ----------------------------------------------------- | |
| | | inline const PdfObject* PdfPage::GetInheritedKey( const PdfName & rName ) c | |
| | | onst | |
| | | { | |
| | | return this->GetInheritedKeyFromObject( rName.GetName().c_str(), this-> | |
| | | GetObject() ); | |
| | | } | |
| | | | |
| }; | | }; | |
| | | | |
| #endif // _PDF_PAGE_H_ | | #endif // _PDF_PAGE_H_ | |
| | | | |
End of changes. 8 change blocks. |
| 8 lines changed or deleted | | 27 lines changed or added | |
|
| PdfPagesTree.h | | PdfPagesTree.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| * * | | * * | |
| * You should have received a copy of the GNU Library General Public * | | * You should have received a copy of the GNU Library General Public * | |
| * License along with this program; if not, write to the * | | * License along with this program; if not, write to the * | |
| * Free Software Foundation, Inc., * | | * Free Software Foundation, Inc., * | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | |
| ***************************************************************************
/ | | ***************************************************************************
/ | |
| | | | |
| #ifndef _PDF_PAGES_TREE_H_ | | #ifndef _PDF_PAGES_TREE_H_ | |
| #define _PDF_PAGES_TREE_H_ | | #define _PDF_PAGES_TREE_H_ | |
| | | | |
|
| #include "PdfArray.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfDefines.h" | | #include "podofo/base/PdfArray.h" | |
| | | | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| #include "PdfPagesTreeCache.h" | | #include "PdfPagesTreeCache.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfObject; | | class PdfObject; | |
| class PdfPage; | | class PdfPage; | |
| class PdfRect; | | class PdfRect; | |
| | | | |
| enum EPdfPageInsertionPoint { | | enum EPdfPageInsertionPoint { | |
| | | | |
| skipping to change at line 48 | | skipping to change at line 49 | |
| ePdfPageInsertionPoint_InsertAllPages = -3, | | ePdfPageInsertionPoint_InsertAllPages = -3, | |
| ePdfPageInsertionPoint_InsertOddPagesOnly = -4, | | ePdfPageInsertionPoint_InsertOddPagesOnly = -4, | |
| ePdfPageInsertionPoint_InsertEvenPagesOnly = -5 | | ePdfPageInsertionPoint_InsertEvenPagesOnly = -5 | |
| }; | | }; | |
| | | | |
| /** Class for managing the tree of Pages in a PDF document | | /** Class for managing the tree of Pages in a PDF document | |
| * Don't use this class directly. Use PdfDocument instead. | | * Don't use this class directly. Use PdfDocument instead. | |
| * | | * | |
| * \see PdfDocument | | * \see PdfDocument | |
| */ | | */ | |
|
| class PODOFO_API PdfPagesTree : public PdfElement | | class PODOFO_DOC_API PdfPagesTree : public PdfElement | |
| { | | { | |
| typedef std::deque< PdfObject* > PdfObjectList; | | typedef std::deque< PdfObject* > PdfObjectList; | |
| | | | |
| public: | | public: | |
| /** Construct a new PdfPagesTree | | /** Construct a new PdfPagesTree | |
| */ | | */ | |
| PdfPagesTree( PdfVecObjects* pParent ); | | PdfPagesTree( PdfVecObjects* pParent ); | |
| | | | |
| /** Construct a PdfPagesTree from the root /Pages object | | /** Construct a PdfPagesTree from the root /Pages object | |
| * \param pPagesRoot pointer to page tree dictionary | | * \param pPagesRoot pointer to page tree dictionary | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 107 | |
| * \param pPage musst be a PdfObject with type /Page | | * \param pPage musst be a PdfObject with type /Page | |
| */ | | */ | |
| void InsertPage( int nAfterPageNumber, PdfObject* pPage ); | | void InsertPage( int nAfterPageNumber, PdfObject* pPage ); | |
| | | | |
| /** Inserts an existing page object into the internal page tree. | | /** Inserts an existing page object into the internal page tree. | |
| * after the specified page number | | * after the specified page number | |
| * | | * | |
| * \param nAfterPageNumber an integer specifying after what page | | * \param nAfterPageNumber an integer specifying after what page | |
| * - may be one of the special values from EPdfPageInsertionPo
int. | | * - may be one of the special values from EPdfPageInsertionPo
int. | |
| * Pages are 0 based. | | * Pages are 0 based. | |
|
| * \param nPage a PdfPage to be inserted, the PdfPage will not get own
ed by the PdfPagesTree | | * \param pPage a PdfPage to be inserted, the PdfPage will not get own
ed by the PdfPagesTree | |
| */ | | */ | |
| void InsertPage( int nAfterPageNumber, PdfPage* pPage ); | | void InsertPage( int nAfterPageNumber, PdfPage* pPage ); | |
| | | | |
| /** Creates a new page object and inserts it into the internal | | /** Creates a new page object and inserts it into the internal | |
| * page tree. | | * page tree. | |
| * The returned page is owned by the pages tree and will get deleted a
long | | * The returned page is owned by the pages tree and will get deleted a
long | |
| * with it! | | * with it! | |
| * | | * | |
| * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | | * \param rSize a PdfRect specifying the size of the page (i.e the /Me
diaBox key) in PDF units | |
| * \returns a pointer to a PdfPage object | | * \returns a pointer to a PdfPage object | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 5 lines changed or added | |
|
| PdfPainter.h | | PdfPainter.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_PAINTER_H_ | | #ifndef _PDF_PAINTER_H_ | |
| #define _PDF_PAINTER_H_ | | #define _PDF_PAINTER_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | | |
|
| #include "PdfRect.h" | | #include "podofo/base/PdfRect.h" | |
| #include "PdfColor.h" | | #include "podofo/base/PdfColor.h" | |
| | | | |
| #include <sstream> | | #include <sstream> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfCanvas; | | class PdfCanvas; | |
| class PdfExtGState; | | class PdfExtGState; | |
| class PdfFont; | | class PdfFont; | |
| class PdfImage; | | class PdfImage; | |
|
| | | class PdfMemDocument; | |
| class PdfName; | | class PdfName; | |
| class PdfObject; | | class PdfObject; | |
| class PdfReference; | | class PdfReference; | |
| class PdfShadingPattern; | | class PdfShadingPattern; | |
| class PdfStream; | | class PdfStream; | |
| class PdfString; | | class PdfString; | |
| class PdfXObject; | | class PdfXObject; | |
| | | | |
|
| | | struct TLineElement | |
| | | { | |
| | | TLineElement() | |
| | | : pszStart( NULL ), lLen( 0L ) | |
| | | { | |
| | | } | |
| | | | |
| | | const char* pszStart; | |
| | | pdf_long lLen; | |
| | | }; | |
| | | | |
| /** | | /** | |
| * This class provides an easy to use painter object which allows you to dr
aw on a PDF page | | * This class provides an easy to use painter object which allows you to dr
aw on a PDF page | |
| * object. | | * object. | |
| * | | * | |
| * During all drawing operations, you are still able to access the stream o
f the object you are | | * During all drawing operations, you are still able to access the stream o
f the object you are | |
| * drawing on directly. | | * drawing on directly. | |
| * | | * | |
| * All functions that take coordinates expect these to be in PDF User Units
. Keep in mind that PDF has | | * All functions that take coordinates expect these to be in PDF User Units
. Keep in mind that PDF has | |
| * its coordinate system origin at the bottom left corner. | | * its coordinate system origin at the bottom left corner. | |
| */ | | */ | |
|
| class PODOFO_API PdfPainter { | | class PODOFO_DOC_API PdfPainter { | |
| public: | | public: | |
| /** Create a new PdfPainter object. | | /** Create a new PdfPainter object. | |
| */ | | */ | |
| PdfPainter(); | | PdfPainter(); | |
| | | | |
| virtual ~PdfPainter(); | | virtual ~PdfPainter(); | |
| | | | |
| /** Set the page on which the painter should draw. | | /** Set the page on which the painter should draw. | |
| * The painter will draw of course on the pages | | * The painter will draw of course on the pages | |
| * contents object. | | * contents object. | |
| | | | |
| skipping to change at line 368 | | skipping to change at line 380 | |
| * before using this function | | * before using this function | |
| * | | * | |
| * \param rRect bounding rectangle of the text | | * \param rRect bounding rectangle of the text | |
| * \param rsText the text which should be drawn | | * \param rsText the text which should be drawn | |
| * \param eAlignment alignment of the individual text lines in the giv
en bounding box | | * \param eAlignment alignment of the individual text lines in the giv
en bounding box | |
| * \param eVertical vertical alignment of the text in the given boundi
ng box | | * \param eVertical vertical alignment of the text in the given boundi
ng box | |
| */ | | */ | |
| inline void DrawMultiLineText( const PdfRect & rRect, const PdfString &
rsText, EPdfAlignment eAlignment = ePdfAlignment_Left, | | inline void DrawMultiLineText( const PdfRect & rRect, const PdfString &
rsText, EPdfAlignment eAlignment = ePdfAlignment_Left, | |
| EPdfVerticalAlignment eVertical = ePdfVe
rticalAlignment_Top); | | EPdfVerticalAlignment eVertical = ePdfVe
rticalAlignment_Top); | |
| | | | |
|
| | | /** Gets the text divided into individual lines, using the current font | |
| | | and clipping rectangle. | |
| | | * | |
| | | * \param dWidth width of the text area | |
| | | * \param rsText the text which should be drawn | |
| | | */ | |
| | | std::vector<TLineElement> GetMultiLineTextAsLines( double dWidth, const | |
| | | PdfString & rsText); | |
| | | | |
| /** Draw a single line of text horizontally aligned. | | /** Draw a single line of text horizontally aligned. | |
| * \param dX the x coordinate of the text line | | * \param dX the x coordinate of the text line | |
| * \param dY the y coordinate of the text line | | * \param dY the y coordinate of the text line | |
| * \param dWidth the width of the text line | | * \param dWidth the width of the text line | |
| * \param rsText the text to draw | | * \param rsText the text to draw | |
|
| * \param eAlignmet alignment of the text line | | * \param eAlignment alignment of the text line | |
| */ | | */ | |
| void DrawTextAligned( double dX, double dY, double dWidth, const PdfStr
ing & rsText, EPdfAlignment eAlignment ); | | void DrawTextAligned( double dX, double dY, double dWidth, const PdfStr
ing & rsText, EPdfAlignment eAlignment ); | |
| | | | |
| /** Begin drawing multiple text strings on a page using a given font ob
ject. | | /** Begin drawing multiple text strings on a page using a given font ob
ject. | |
| * You have to call SetFont before calling this function. | | * You have to call SetFont before calling this function. | |
| * | | * | |
| * If you want more simpler text output and do not need | | * If you want more simpler text output and do not need | |
| * the advanced text position features of MoveTextPos | | * the advanced text position features of MoveTextPos | |
| * use DrawText which is easier. | | * use DrawText which is easier. | |
| * | | * | |
| | | | |
| skipping to change at line 419 | | skipping to change at line 438 | |
| | | | |
| /** Draw a string on a page. | | /** Draw a string on a page. | |
| * You have to call BeginText before the first call of this function | | * You have to call BeginText before the first call of this function | |
| * and EndText after the last call. | | * and EndText after the last call. | |
| * | | * | |
| * If you want more simpler text output and do not need | | * If you want more simpler text output and do not need | |
| * the advanced text position features of MoveTextPos | | * the advanced text position features of MoveTextPos | |
| * use DrawText which is easier. | | * use DrawText which is easier. | |
| * | | * | |
| * \param sText the text string which should be printed | | * \param sText the text string which should be printed | |
|
| * \param lLen draw only lLen characters of pszText | | * \param lStringLen draw only lLen characters of pszText | |
| * | | * | |
| * \see SetFont() | | * \see SetFont() | |
| * \see MoveTextPos() | | * \see MoveTextPos() | |
| * \see EndText() | | * \see EndText() | |
| */ | | */ | |
| void AddText( const PdfString & sText, pdf_long lStringLen ); | | void AddText( const PdfString & sText, pdf_long lStringLen ); | |
| | | | |
| /** Move position for text drawing on a page. | | /** Move position for text drawing on a page. | |
| * You have to call BeginText before calling this function | | * You have to call BeginText before calling this function | |
| * | | * | |
| | | | |
| skipping to change at line 455 | | skipping to change at line 474 | |
| * If you want more simpler text output and do not need | | * If you want more simpler text output and do not need | |
| * the advanced text position features of MoveTextPos | | * the advanced text position features of MoveTextPos | |
| * use DrawText which is easier. | | * use DrawText which is easier. | |
| * | | * | |
| * \see BeginText() | | * \see BeginText() | |
| * \see AddText() | | * \see AddText() | |
| * \see MoveTextPos() | | * \see MoveTextPos() | |
| */ | | */ | |
| void EndText(); | | void EndText(); | |
| | | | |
|
| | | /** Draw a single glyph on a page using a given font object. | |
| | | * \param pDocument pointer to the document, needed to generate a c | |
| | | opy of the current font | |
| | | * \param dX the x coordinate | |
| | | * \param dY the y coordinate | |
| | | * \param pszGlyphname the name of the glyph which should be printed | |
| | | * | |
| | | * \see SetFont() | |
| | | */ | |
| | | void DrawGlyph( PdfMemDocument* pDocument, double dX, double dY, const | |
| | | char * pszGlyphname ); | |
| | | | |
| /** Draw an image on the current page. | | /** Draw an image on the current page. | |
| * \param dX the x coordinate (bottom left position of the image) | | * \param dX the x coordinate (bottom left position of the image) | |
| * \param dY the y coordinate (bottom position of the image) | | * \param dY the y coordinate (bottom position of the image) | |
| * \param pObject an PdfXObject | | * \param pObject an PdfXObject | |
| * \param dScaleX option scaling factor in x direction | | * \param dScaleX option scaling factor in x direction | |
| * \param dScaleY option scaling factor in y direction | | * \param dScaleY option scaling factor in y direction | |
| */ | | */ | |
| void DrawImage( double dX, double dY, PdfImage* pObject, double dSca
leX = 1.0, double dScaleY = 1.0); | | void DrawImage( double dX, double dY, PdfImage* pObject, double dSca
leX = 1.0, double dScaleY = 1.0); | |
| | | | |
| /** Draw an XObject on the current page. For PdfImage use DrawImage. | | /** Draw an XObject on the current page. For PdfImage use DrawImage. | |
| | | | |
End of changes. 9 change blocks. |
| 6 lines changed or deleted | | 39 lines changed or added | |
|
| PdfParser.h | | PdfParser.h | |
| | | | |
| skipping to change at line 350 | | skipping to change at line 350 | |
| * Strict parsing is by default disabled. | | * Strict parsing is by default disabled. | |
| * | | * | |
| * If you enable strict parsing, PoDoFo will fail | | * If you enable strict parsing, PoDoFo will fail | |
| * on a few more common PDF failures. Please not | | * on a few more common PDF failures. Please not | |
| * that PoDoFo's parser is by default very strict | | * that PoDoFo's parser is by default very strict | |
| * already and does not recover from e.g. wrong XREF | | * already and does not recover from e.g. wrong XREF | |
| * tables. | | * tables. | |
| * | | * | |
| * \param bStrict new setting for strict parsing mode. | | * \param bStrict new setting for strict parsing mode. | |
| */ | | */ | |
|
| inline void SetStringParsing( bool bStrict ); | | inline void SetStrictParsing( bool bStrict ); | |
| | | | |
| /** | | /** | |
| * \return if broken objects are ignored while parsing | | * \return if broken objects are ignored while parsing | |
| */ | | */ | |
| inline bool GetIgnoreBrokenObjects(); | | inline bool GetIgnoreBrokenObjects(); | |
| | | | |
| /** | | /** | |
| * Specify if the parser should ignore broken | | * Specify if the parser should ignore broken | |
| * objects, i.e. XRef entries that do not point | | * objects, i.e. XRef entries that do not point | |
| * to valid objects. | | * to valid objects. | |
| | | | |
| skipping to change at line 495 | | skipping to change at line 495 | |
| /** Checks the magic number at the start of the pdf file | | /** Checks the magic number at the start of the pdf file | |
| * and sets the m_ePdfVersion member to the correct version | | * and sets the m_ePdfVersion member to the correct version | |
| * of the pdf file. | | * of the pdf file. | |
| * | | * | |
| * \returns true if this is a pdf file, otherwise false | | * \returns true if this is a pdf file, otherwise false | |
| */ | | */ | |
| bool IsPdfFile(); | | bool IsPdfFile(); | |
| | | | |
| void ReadNextTrailer(); | | void ReadNextTrailer(); | |
| | | | |
|
| | | /** Checks for the existence of the %%EOF marker at the end of the file | |
| | | * When strict mode is off it will also attempt to setup the parser to | |
| | | ignore | |
| | | * any garbage after the last %%EOF marker | |
| | | * Simply raises an error if there is a problem with the marker | |
| | | * | |
| | | */ | |
| | | void CheckEOFMarker(); | |
| | | | |
| private: | | private: | |
| /** Free all internal data structures | | /** Free all internal data structures | |
| */ | | */ | |
| void Clear(); | | void Clear(); | |
| | | | |
| /** Initializes all private members | | /** Initializes all private members | |
| * with their initial values. | | * with their initial values. | |
| */ | | */ | |
| void Init(); | | void Init(); | |
| | | | |
| | | | |
| skipping to change at line 531 | | skipping to change at line 539 | |
| private: | | private: | |
| EPdfVersion m_ePdfVersion; | | EPdfVersion m_ePdfVersion; | |
| | | | |
| bool m_bLoadOnDemand; | | bool m_bLoadOnDemand; | |
| | | | |
| pdf_long m_nXRefOffset; | | pdf_long m_nXRefOffset; | |
| long m_nFirstObject; | | long m_nFirstObject; | |
| long m_nNumObjects; | | long m_nNumObjects; | |
| pdf_long m_nXRefLinearizedOffset; | | pdf_long m_nXRefLinearizedOffset; | |
| size_t m_nFileSize; | | size_t m_nFileSize; | |
|
| | | pdf_long m_lLastEOFOffset; | |
| | | | |
| TVecOffsets m_offsets; | | TVecOffsets m_offsets; | |
| PdfVecObjects* m_vecObjects; | | PdfVecObjects* m_vecObjects; | |
| | | | |
| PdfObject* m_pTrailer; | | PdfObject* m_pTrailer; | |
| PdfObject* m_pLinearization; | | PdfObject* m_pLinearization; | |
| PdfEncrypt* m_pEncrypt; | | PdfEncrypt* m_pEncrypt; | |
| | | | |
| bool m_xrefSizeUnknown; | | bool m_xrefSizeUnknown; | |
| | | | |
| | | | |
| skipping to change at line 610 | | skipping to change at line 619 | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| bool PdfParser::IsStrictParsing() const | | bool PdfParser::IsStrictParsing() const | |
| { | | { | |
| return m_bStrictParsing; | | return m_bStrictParsing; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
|
| void PdfParser::SetStringParsing( bool bStrict ) | | void PdfParser::SetStrictParsing( bool bStrict ) | |
| { | | { | |
| m_bStrictParsing = bStrict; | | m_bStrictParsing = bStrict; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| bool PdfParser::GetIgnoreBrokenObjects() | | bool PdfParser::GetIgnoreBrokenObjects() | |
| { | | { | |
| return m_bIgnoreBrokenObjects; | | return m_bIgnoreBrokenObjects; | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 12 lines changed or added | |
|
| PdfReference.h | | PdfReference.h | |
| | | | |
| skipping to change at line 127 | | skipping to change at line 127 | |
| | | | |
| /** | | /** | |
| * Compare to PdfReference objects. | | * Compare to PdfReference objects. | |
| * \returns true if this reference has a smaller object and generation
number | | * \returns true if this reference has a smaller object and generation
number | |
| */ | | */ | |
| PODOFO_NOTHROW inline bool operator<( const PdfReference & rhs ) const; | | PODOFO_NOTHROW inline bool operator<( const PdfReference & rhs ) const; | |
| | | | |
| /** Set the object number of this object | | /** Set the object number of this object | |
| * \param o the new object number | | * \param o the new object number | |
| */ | | */ | |
|
| PODOFO_NOTHROW inline void SetObjectNumber( pdf_uint32 o ); | | PODOFO_NOTHROW inline void SetObjectNumber( pdf_objnum o ); | |
| | | | |
| /** Get the object number. | | /** Get the object number. | |
| * \returns the object number of this PdfReference | | * \returns the object number of this PdfReference | |
| */ | | */ | |
| PODOFO_NOTHROW inline pdf_objnum ObjectNumber() const; | | PODOFO_NOTHROW inline pdf_objnum ObjectNumber() const; | |
| | | | |
| /** Set the generation number of this object | | /** Set the generation number of this object | |
| * \param g the new generation number | | * \param g the new generation number | |
| */ | | */ | |
|
| PODOFO_NOTHROW inline void SetGenerationNumber( const pdf_uint16 g ); | | PODOFO_NOTHROW inline void SetGenerationNumber( const pdf_gennum g ); | |
| | | | |
| /** Get the generation number. | | /** Get the generation number. | |
| * \returns the generation number of this PdfReference | | * \returns the generation number of this PdfReference | |
| */ | | */ | |
| PODOFO_NOTHROW inline pdf_gennum GenerationNumber() const; | | PODOFO_NOTHROW inline pdf_gennum GenerationNumber() const; | |
| | | | |
| /** Allows to check if a reference points to an indirect | | /** Allows to check if a reference points to an indirect | |
| * object. | | * object. | |
| * | | * | |
| * A reference is indirect if object number and generation | | * A reference is indirect if object number and generation | |
| | | | |
| skipping to change at line 205 | | skipping to change at line 205 | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| void PdfReference::SetObjectNumber( pdf_objnum o ) | | void PdfReference::SetObjectNumber( pdf_objnum o ) | |
| { | | { | |
| m_nObjectNo = o; | | m_nObjectNo = o; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
|
| pdf_uint32 PdfReference::ObjectNumber() const | | pdf_objnum PdfReference::ObjectNumber() const | |
| { | | { | |
| return m_nObjectNo; | | return m_nObjectNo; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| void PdfReference::SetGenerationNumber( pdf_gennum g ) | | void PdfReference::SetGenerationNumber( pdf_gennum g ) | |
| { | | { | |
| m_nGenerationNo = g; | | m_nGenerationNo = g; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
|
| pdf_uint16 PdfReference::GenerationNumber() const | | pdf_gennum PdfReference::GenerationNumber() const | |
| { | | { | |
| return m_nGenerationNo; | | return m_nGenerationNo; | |
| } | | } | |
| | | | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| bool PdfReference::IsIndirect() const | | bool PdfReference::IsIndirect() const | |
| { | | { | |
| return !( !m_nObjectNo && !m_nGenerationNo ); | | return !( !m_nObjectNo && !m_nGenerationNo ); | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|
| PdfShadingPattern.h | | PdfShadingPattern.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_SHADING_PATTERN_H_ | | #ifndef _PDF_SHADING_PATTERN_H_ | |
| #define _PDF_SHADING_PATTERN_H_ | | #define _PDF_SHADING_PATTERN_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfName.h" | | #include "podofo/base/PdfName.h" | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfColor; | | class PdfColor; | |
| class PdfObject; | | class PdfObject; | |
| class PdfPage; | | class PdfPage; | |
| class PdfWriter; | | class PdfWriter; | |
| | | | |
| enum EPdfShadingPatternType { | | enum EPdfShadingPatternType { | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| ePdfShadingPatternType_FreeForm = 4, | | ePdfShadingPatternType_FreeForm = 4, | |
| ePdfShadingPatternType_LatticeForm = 5, | | ePdfShadingPatternType_LatticeForm = 5, | |
| ePdfShadingPatternType_CoonsPatch = 6, | | ePdfShadingPatternType_CoonsPatch = 6, | |
| ePdfShadingPatternType_TensorProduct = 7 | | ePdfShadingPatternType_TensorProduct = 7 | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * This class defined a shading pattern which can be used | | * This class defined a shading pattern which can be used | |
| * to fill abitrary shapes with a pattern using PdfPainter. | | * to fill abitrary shapes with a pattern using PdfPainter. | |
| */ | | */ | |
|
| class PODOFO_API PdfShadingPattern : public PdfElement { | | class PODOFO_DOC_API PdfShadingPattern : public PdfElement { | |
| public: | | public: | |
| virtual ~PdfShadingPattern(); | | virtual ~PdfShadingPattern(); | |
| | | | |
| /** Returns the identifier of this ShadingPattern how it is known | | /** Returns the identifier of this ShadingPattern how it is known | |
| * in the pages resource dictionary. | | * in the pages resource dictionary. | |
| * \returns PdfName containing the identifier (e.g. /Sh13) | | * \returns PdfName containing the identifier (e.g. /Sh13) | |
| */ | | */ | |
| inline const PdfName & GetIdentifier() const; | | inline const PdfName & GetIdentifier() const; | |
| | | | |
| protected: | | protected: | |
| | | | |
| skipping to change at line 100 | | skipping to change at line 100 | |
| // | | // | |
| // ----------------------------------------------------- | | // ----------------------------------------------------- | |
| const PdfName & PdfShadingPattern::GetIdentifier() const | | const PdfName & PdfShadingPattern::GetIdentifier() const | |
| { | | { | |
| return m_Identifier; | | return m_Identifier; | |
| } | | } | |
| | | | |
| /** A shading pattern that is a simple axial | | /** A shading pattern that is a simple axial | |
| * shading between two colors. | | * shading between two colors. | |
| */ | | */ | |
|
| class PODOFO_API PdfAxialShadingPattern : public PdfShadingPattern { | | class PODOFO_DOC_API PdfAxialShadingPattern : public PdfShadingPattern { | |
| public: | | public: | |
| /** Create an axial shading pattern | | /** Create an axial shading pattern | |
| * | | * | |
| * \param dX0 the starting x coordinate | | * \param dX0 the starting x coordinate | |
| * \param dY0 the starting y coordinate | | * \param dY0 the starting y coordinate | |
| * \param dX1 the ending x coordinate | | * \param dX1 the ending x coordinate | |
| * \param dY1 the ending y coordinate | | * \param dY1 the ending y coordinate | |
| * \param rStart the starting color | | * \param rStart the starting color | |
| * \param rEnd the ending color | | * \param rEnd the ending color | |
| * \param pParent the parent | | * \param pParent the parent | |
| | | | |
| skipping to change at line 143 | | skipping to change at line 143 | |
| * \param dY1 the ending y coordinate | | * \param dY1 the ending y coordinate | |
| * \param rStart the starting color | | * \param rStart the starting color | |
| * \param rEnd the ending color | | * \param rEnd the ending color | |
| */ | | */ | |
| void Init( double dX0, double dY0, double dX1, double dY1, const PdfCol
or & rStart, const PdfColor & rEnd ); | | void Init( double dX0, double dY0, double dX1, double dY1, const PdfCol
or & rStart, const PdfColor & rEnd ); | |
| }; | | }; | |
| | | | |
| /** A shading pattern that is an 2D | | /** A shading pattern that is an 2D | |
| * shading between four colors. | | * shading between four colors. | |
| */ | | */ | |
|
| class PODOFO_API PdfFunctionBaseShadingPattern : public PdfShadingPattern { | | class PODOFO_DOC_API PdfFunctionBaseShadingPattern : public PdfShadingPatte
rn { | |
| public: | | public: | |
| /** Create an 2D shading pattern | | /** Create an 2D shading pattern | |
| * | | * | |
| * \param rLL the color on lower left corner | | * \param rLL the color on lower left corner | |
| * \param rUL the color on upper left corner | | * \param rUL the color on upper left corner | |
| * \param rLR the color on lower right corner | | * \param rLR the color on lower right corner | |
| * \param rUR the color on upper right corner | | * \param rUR the color on upper right corner | |
| * \param rMatrix the transformation matrix mapping the coordinate spa
ce | | * \param rMatrix the transformation matrix mapping the coordinate spa
ce | |
| * specified by the Domain entry into the shading | | * specified by the Domain entry into the shading | |
| * \param pParent the parent | | * \param pParent the parent | |
| | | | |
| skipping to change at line 186 | | skipping to change at line 186 | |
| * \param rUR the color on upper right corner | | * \param rUR the color on upper right corner | |
| * \param rMatrix the transformation matrix mapping the coordinate spa
ce | | * \param rMatrix the transformation matrix mapping the coordinate spa
ce | |
| * specified by the Domain entry into the shading | | * specified by the Domain entry into the shading | |
| */ | | */ | |
| void Init( const PdfColor & rLL, const PdfColor & rUL, const PdfColor &
rLR, const PdfColor & rUR, const PdfArray & rMatrix ); | | void Init( const PdfColor & rLL, const PdfColor & rUL, const PdfColor &
rLR, const PdfColor & rUR, const PdfArray & rMatrix ); | |
| }; | | }; | |
| | | | |
| /** A shading pattern that is a simple radial | | /** A shading pattern that is a simple radial | |
| * shading between two colors. | | * shading between two colors. | |
| */ | | */ | |
|
| class PODOFO_API PdfRadialShadingPattern : public PdfShadingPattern { | | class PODOFO_DOC_API PdfRadialShadingPattern : public PdfShadingPattern { | |
| public: | | public: | |
| /** Create an radial shading pattern | | /** Create an radial shading pattern | |
| * | | * | |
| * \param dX0 the inner circles x coordinate | | * \param dX0 the inner circles x coordinate | |
| * \param dY0 the inner circles y coordinate | | * \param dY0 the inner circles y coordinate | |
| * \param dR0 the inner circles radius | | * \param dR0 the inner circles radius | |
| * \param dX1 the outer circles x coordinate | | * \param dX1 the outer circles x coordinate | |
| * \param dY1 the outer circles y coordinate | | * \param dY1 the outer circles y coordinate | |
| * \param dR1 the outer circles radius | | * \param dR1 the outer circles radius | |
| * \param rStart the starting color | | * \param rStart the starting color | |
| | | | |
End of changes. 5 change blocks. |
| 6 lines changed or deleted | | 6 lines changed or added | |
|
| PdfString.h | | PdfString.h | |
| | | | |
| skipping to change at line 271 | | skipping to change at line 271 | |
| inline pdf_long GetUnicodeLength() const; | | inline pdf_long GetUnicodeLength() const; | |
| | | | |
| /** Get the number of characters in the string. | | /** Get the number of characters in the string. | |
| * | | * | |
| * This function returns the correct number of characters in the strin
g | | * This function returns the correct number of characters in the strin
g | |
| * for unicode and ansi strings. Always use this method if you want to | | * for unicode and ansi strings. Always use this method if you want to | |
| * know the number of characters in the string | | * know the number of characters in the string | |
| * as GetLength() will returns the number of bytes used for unicode st
rings! | | * as GetLength() will returns the number of bytes used for unicode st
rings! | |
| * | | * | |
| * | | * | |
|
| * \returngs the number of characters in the string | | * \returns the number of characters in the string | |
| */ | | */ | |
| inline pdf_long GetCharacterLength() const; | | inline pdf_long GetCharacterLength() const; | |
| | | | |
| /** Write this PdfString in PDF format to a PdfOutputDevice | | /** Write this PdfString in PDF format to a PdfOutputDevice | |
| * | | * | |
| * \param pDevice the output device. | | * \param pDevice the output device. | |
| * \param eWriteMode additional options for writing this object | | * \param eWriteMode additional options for writing this object | |
| * \param pEncrypt an encryption object which is used to encrypt this
object | | * \param pEncrypt an encryption object which is used to encrypt this
object | |
| * or NULL to not encrypt this object | | * or NULL to not encrypt this object | |
| */ | | */ | |
| | | | |
| skipping to change at line 382 | | skipping to change at line 382 | |
| /** Frees the internal buffer | | /** Frees the internal buffer | |
| * if it was allocated using malloc | | * if it was allocated using malloc | |
| */ | | */ | |
| void FreeBuffer(); | | void FreeBuffer(); | |
| | | | |
| /** Construct a new PdfString from a 0 terminated | | /** Construct a new PdfString from a 0 terminated | |
| * string. | | * string. | |
| * The input string will be copied. | | * The input string will be copied. | |
| * if m_bhex is true the copied data will be hex encoded. | | * if m_bhex is true the copied data will be hex encoded. | |
| * | | * | |
|
| * \param pszString the string to copy | | * \param pszString the string to copy, must not be NULL | |
| * \param lLen length of the string data to copy | | * \param lLen length of the string data to copy | |
| * | | * | |
| */ | | */ | |
| void Init( const char* pszString, pdf_long lLen ); | | void Init( const char* pszString, pdf_long lLen ); | |
| | | | |
| /** Construct a new PdfString from a UTF8 | | /** Construct a new PdfString from a UTF8 | |
| * string. | | * string. | |
| * The input string will be copied and converted to UTF-16be. | | * The input string will be copied and converted to UTF-16be. | |
| * | | * | |
|
| * \param pszStringUtf8 the string to copy | | * \param pszStringUtf8 the string to copy, ust not be NULL | |
| * \param lLen number of bytes of the string data to copy | | * \param lLen number of bytes of the string data to copy | |
| * | | * | |
| */ | | */ | |
| void InitFromUtf8( const pdf_utf8* pszStringUtf8, pdf_long lLen ); | | void InitFromUtf8( const pdf_utf8* pszStringUtf8, pdf_long lLen ); | |
| | | | |
| /** Swap the bytes in the buffer (UTF16be -> UTF16le) | | /** Swap the bytes in the buffer (UTF16be -> UTF16le) | |
| * \param pBuf buffer | | * \param pBuf buffer | |
| * \param lLen length of buffer | | * \param lLen length of buffer | |
| */ | | */ | |
| static void SwapBytes( char* pBuf, pdf_long lLen ); | | static void SwapBytes( char* pBuf, pdf_long lLen ); | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 3 lines changed or added | |
|
| PdfTable.h | | PdfTable.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_TABLE_H_ | | #ifndef _PDF_TABLE_H_ | |
| #define _PDF_TABLE_H_ | | #define _PDF_TABLE_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| | | #include "podofo/base/PdfColor.h" | |
| #include "PdfColor.h" | | #include "podofo/base/PdfRect.h" | |
| #include "PdfRect.h" | | #include "podofo/base/PdfString.h" | |
| #include "PdfString.h" | | | |
| | | | |
| #include <string.h> | | #include <string.h> | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfCanvas; | | class PdfCanvas; | |
| class PdfFont; | | class PdfFont; | |
| class PdfImage; | | class PdfImage; | |
| class PdfPainter; | | class PdfPainter; | |
| class PdfPage; | | class PdfPage; | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 51 | |
| * data and formatting informations to a PdfTable. | | * data and formatting informations to a PdfTable. | |
| * | | * | |
| * You can implement your own PdfTableModel to supply data | | * You can implement your own PdfTableModel to supply data | |
| * to a PdfTable. | | * to a PdfTable. | |
| * PdfSimpleTableModel is an example of a simple model. | | * PdfSimpleTableModel is an example of a simple model. | |
| * | | * | |
| * | | * | |
| * \see PdfTable | | * \see PdfTable | |
| * \see PdfSimpleTableModel | | * \see PdfSimpleTableModel | |
| */ | | */ | |
|
| class PODOFO_API PdfTableModel { | | class PODOFO_DOC_API PdfTableModel { | |
| public: | | public: | |
| virtual ~PdfTableModel() {}; | | virtual ~PdfTableModel() {}; | |
| | | | |
| /** | | /** | |
| * \param col the column of the table cell | | * \param col the column of the table cell | |
| * \param row the row of the table cell | | * \param row the row of the table cell | |
| * | | * | |
| * \returns the contents string of this table cell | | * \returns the contents string of this table cell | |
| */ | | */ | |
| virtual PdfString GetText ( int col, int row ) const = 0; | | virtual PdfString GetText ( int col, int row ) const = 0; | |
| | | | |
| skipping to change at line 164 | | skipping to change at line 163 | |
| * | | * | |
| * \returns the image for the specified cell or NULL if the cell has no
image | | * \returns the image for the specified cell or NULL if the cell has no
image | |
| */ | | */ | |
| virtual PdfImage* GetImage( int col, int row ) const = 0; | | virtual PdfImage* GetImage( int col, int row ) const = 0; | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * An implementation of a simple PdfTableModel. | | * An implementation of a simple PdfTableModel. | |
| * | | * | |
| */ | | */ | |
|
| class PODOFO_API PdfSimpleTableModel : public PdfTableModel { | | class PODOFO_DOC_API PdfSimpleTableModel : public PdfTableModel { | |
| public: | | public: | |
| /** Creates an empty PdfSimpleTableModel | | /** Creates an empty PdfSimpleTableModel | |
| * that does not contain any data. | | * that does not contain any data. | |
| * | | * | |
| * Using this model will result in drawing an empty table! | | * Using this model will result in drawing an empty table! | |
| */ | | */ | |
| PdfSimpleTableModel(); | | PdfSimpleTableModel(); | |
| | | | |
| /** Creates an empty PdfSimpleTableModel | | /** Creates an empty PdfSimpleTableModel | |
| * that does not contain any data. | | * that does not contain any data. | |
| | | | |
| skipping to change at line 574 | | skipping to change at line 573 | |
| { | | { | |
| return NULL; | | return NULL; | |
| } | | } | |
| | | | |
| /** | | /** | |
| * This is a high level class of a table which can be drawn to a PdfPainter
. | | * This is a high level class of a table which can be drawn to a PdfPainter
. | |
| * | | * | |
| * Use this class if you have to include data into your PDF as an table. | | * Use this class if you have to include data into your PDF as an table. | |
| * | | * | |
| */ | | */ | |
|
| class PODOFO_API PdfTable { | | class PODOFO_DOC_API PdfTable { | |
| public: | | public: | |
| /** Callback to create a new page for PdfTable. | | /** Callback to create a new page for PdfTable. | |
| * | | * | |
| * \see SetAutoPageBreak | | * \see SetAutoPageBreak | |
| * | | * | |
| * \param rClipRect this is an output parameter which has | | * \param rClipRect this is an output parameter which has | |
| * to be set to the clipping rectangle | | * to be set to the clipping rectangle | |
| * of the new page. If the new page has | | * of the new page. If the new page has | |
| * no clipping rectangle set it to | | * no clipping rectangle set it to | |
| * PdfRect( 0, 0, PdfPage::GetPageSize().GetWidth(),
PdfPage::GetPageSize().GetHeight() ) | | * PdfRect( 0, 0, PdfPage::GetPageSize().GetWidth(),
PdfPage::GetPageSize().GetHeight() ) | |
| * \param pCustom pointer to user defined data | | * \param pCustom pointer to user defined data | |
| */ | | */ | |
| typedef PdfPage* (*CreatePageCallback)( PdfRect & rClipRect, void* pCus
tom ); | | typedef PdfPage* (*CreatePageCallback)( PdfRect & rClipRect, void* pCus
tom ); | |
| | | | |
| /** Create a new PdfTable object. | | /** Create a new PdfTable object. | |
| * | | * | |
| * \param nCols number of columns in the table. | | * \param nCols number of columns in the table. | |
|
| * \paran nRows number of rows in the table. | | * \param nRows number of rows in the table. | |
| */ | | */ | |
| PdfTable( int nCols, int nRows ); | | PdfTable( int nCols, int nRows ); | |
| | | | |
| virtual ~PdfTable(); | | virtual ~PdfTable(); | |
| | | | |
| /** Draw the table with its current settings | | /** Draw the table with its current settings | |
| * on a PdfPainter. | | * on a PdfPainter. | |
| * | | * | |
| * \param dX x coordinate of top left of the table | | * \param dX x coordinate of top left of the table | |
| * \param dY y coordinate of top left of the table | | * \param dY y coordinate of top left of the table | |
| | | | |
| skipping to change at line 775 | | skipping to change at line 774 | |
| double* pdWidths, double* pdHeights, | | double* pdWidths, double* pdHeights, | |
| double* pdWidth, double* pdHeight ) const; | | double* pdWidth, double* pdHeight ) const; | |
| | | | |
| /** Draw one row of horizontal cell borders using the correct color | | /** Draw one row of horizontal cell borders using the correct color | |
| * for each cell. | | * for each cell. | |
| * | | * | |
| * @param nRow the current row | | * @param nRow the current row | |
| * @param dX left x coordinate | | * @param dX left x coordinate | |
| * @param dY y coordinate | | * @param dY y coordinate | |
| * @param pPainter use this painter object | | * @param pPainter use this painter object | |
|
| * @param pdColWidth an array containing all colomun widths | | * @param pdColWidths an array containing all colomun widths | |
| */ | | */ | |
| void DrawHorizontalBorders( int nRow, double dX, double dY, PdfPainter*
pPainter, double* pdColWidths ); | | void DrawHorizontalBorders( int nRow, double dX, double dY, PdfPainter*
pPainter, double* pdColWidths ); | |
| | | | |
| /** Checks if there is enough space on the current page | | /** Checks if there is enough space on the current page | |
| * for one row! If necessary a new page is created. | | * for one row! If necessary a new page is created. | |
| * | | * | |
| * If GetAutoPageBreak is false, this method does nothing. | | * If GetAutoPageBreak is false, this method does nothing. | |
| * | | * | |
| * \param pdY top of the table | | * \param pdY top of the table | |
| * \param pdCurY pointer to the current y position on the page. | | * \param pdCurY pointer to the current y position on the page. | |
| | | | |
End of changes. 6 change blocks. |
| 10 lines changed or deleted | | 9 lines changed or added | |
|
| PdfVecObjects.h | | PdfVecObjects.h | |
| | | | |
| skipping to change at line 259 | | skipping to change at line 259 | |
| */ | | */ | |
| inline const TPdfReferenceList & GetFreeObjects() const; | | inline const TPdfReferenceList & GetFreeObjects() const; | |
| | | | |
| /** | | /** | |
| * Renumbers all objects according to there current position in the ve
ctor. | | * Renumbers all objects according to there current position in the ve
ctor. | |
| * All references remain intact. | | * All references remain intact. | |
| * Warning! This function is _very_ calculation intensive. | | * Warning! This function is _very_ calculation intensive. | |
| * | | * | |
| * \param pTrailer the trailer object | | * \param pTrailer the trailer object | |
| * \param pNotDelete a list of object which must not be deleted | | * \param pNotDelete a list of object which must not be deleted | |
|
| | | * \param bDoGarbageCollection enable garbage collection, which delete | |
| | | s | |
| | | * all objects that are not reachable from the trailer. This mi | |
| | | ght be slow! | |
| | | * | |
| | | * \see CollectGarbage | |
| */ | | */ | |
|
| void RenumberObjects( PdfObject* pTrailer, TPdfReferenceSet* pNotDelete
= NULL ); | | void RenumberObjects( PdfObject* pTrailer, TPdfReferenceSet* pNotDelete
= NULL, bool bDoGarbageCollection = false ); | |
| | | | |
| /** Insert a object into this vector. | | /** Insert a object into this vector. | |
| * Overwritten from std::vector so that | | * Overwritten from std::vector so that | |
| * m_bObjectCount can be increased for each object. | | * m_bObjectCount can be increased for each object. | |
| * | | * | |
| * \param pObj pointer to the object you want to insert | | * \param pObj pointer to the object you want to insert | |
| */ | | */ | |
| void push_back( PdfObject* pObj ); | | void push_back( PdfObject* pObj ); | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 371 | | skipping to change at line 375 | |
| inline TCIVecObjects end() const; | | inline TCIVecObjects end() const; | |
| | | | |
| inline PdfObject*& operator[](size_t index); | | inline PdfObject*& operator[](size_t index); | |
| | | | |
| /** Get the last object in the vector | | /** Get the last object in the vector | |
| * \returns the last object in the vector or NULL | | * \returns the last object in the vector or NULL | |
| * if the vector is emtpy. | | * if the vector is emtpy. | |
| */ | | */ | |
| inline PdfObject* GetBack(); | | inline PdfObject* GetBack(); | |
| | | | |
|
| | | /** | |
| | | * Deletes all objects that are not references by other objects | |
| | | * besides the trailer (which references the root dictionary, which in | |
| | | * turn should reference all other objects). | |
| | | * | |
| | | * \param pTrailer trailer object of the PDF | |
| | | * | |
| | | * Warning this might be slow! | |
| | | */ | |
| | | void CollectGarbage( PdfObject* pTrailer ); | |
| | | | |
| private: | | private: | |
| /** | | /** | |
| * \returns the next free object reference | | * \returns the next free object reference | |
| */ | | */ | |
| PdfReference GetNextFreeObject(); | | PdfReference GetNextFreeObject(); | |
| | | | |
| /** | | /** | |
| * Create a list of all references that point to the object | | * Create a list of all references that point to the object | |
| * for each object in this vector. | | * for each object in this vector. | |
| * \param pList write all references to this list | | * \param pList write all references to this list | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 18 lines changed or added | |
|
| PdfWriter.h | | PdfWriter.h | |
| | | | |
| skipping to change at line 33 | | skipping to change at line 33 | |
| | | | |
| #include "PdfDefines.h" | | #include "PdfDefines.h" | |
| #include "PdfOutputDevice.h" | | #include "PdfOutputDevice.h" | |
| #include "PdfVecObjects.h" | | #include "PdfVecObjects.h" | |
| | | | |
| #include "PdfEncrypt.h" | | #include "PdfEncrypt.h" | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDictionary; | | class PdfDictionary; | |
|
| class PdfDocument; | | | |
| class PdfName; | | class PdfName; | |
| class PdfObject; | | class PdfObject; | |
| class PdfPage; | | class PdfPage; | |
| class PdfPagesTree; | | class PdfPagesTree; | |
| class PdfParser; | | class PdfParser; | |
| class PdfVecObjects; | | class PdfVecObjects; | |
| class PdfXRef; | | class PdfXRef; | |
| | | | |
| namespace NonPublic { class PdfHintStream; } | | namespace NonPublic { class PdfHintStream; } | |
| | | | |
| | | | |
| skipping to change at line 60 | | skipping to change at line 59 | |
| * Most users will want to use PdfDocument. | | * Most users will want to use PdfDocument. | |
| */ | | */ | |
| class PODOFO_API PdfWriter { | | class PODOFO_API PdfWriter { | |
| | | | |
| public: | | public: | |
| /** Create a PdfWriter object from a PdfParser object | | /** Create a PdfWriter object from a PdfParser object | |
| * \param pParser a pdf parser object | | * \param pParser a pdf parser object | |
| */ | | */ | |
| PdfWriter( PdfParser* pParser ); | | PdfWriter( PdfParser* pParser ); | |
| | | | |
|
| /** Create a new pdf file, based on an existing pdf file. | | | |
| * \param pDocument a PdfDocument | | | |
| */ | | | |
| PdfWriter( PdfDocument* pDocument ); | | | |
| | | | |
| /** Create a new pdf file, from an vector of PdfObjects | | /** Create a new pdf file, from an vector of PdfObjects | |
| * and a trailer object. | | * and a trailer object. | |
| * \param pVecObjects the vector of objects | | * \param pVecObjects the vector of objects | |
| * \param pTrailer a valid trailer object | | * \param pTrailer a valid trailer object | |
| */ | | */ | |
| PdfWriter( PdfVecObjects* pVecObjects, const PdfObject* pTrailer ); | | PdfWriter( PdfVecObjects* pVecObjects, const PdfObject* pTrailer ); | |
| | | | |
| virtual ~PdfWriter(); | | virtual ~PdfWriter(); | |
| | | | |
| /** Writes the complete document to a PDF file. | | /** Writes the complete document to a PDF file. | |
| | | | |
| skipping to change at line 241 | | skipping to change at line 235 | |
| | | | |
| /** Reorder and renumber all object as required for linearized PDF file
s. | | /** Reorder and renumber all object as required for linearized PDF file
s. | |
| * This function is very slow. | | * This function is very slow. | |
| * | | * | |
| * \param pLinearize linearization dictionary | | * \param pLinearize linearization dictionary | |
| * \param pHint primary hint stream dictionary | | * \param pHint primary hint stream dictionary | |
| * \param pPage first page to display in the document | | * \param pPage first page to display in the document | |
| * \param ppLast the pointer will be initialized to the last object | | * \param ppLast the pointer will be initialized to the last object | |
| * belonging to the first page | | * belonging to the first page | |
| */ | | */ | |
|
| void ReorderObjectsLinearized( PdfObject* pLinearize, NonPublic::PdfHin
tStream* pHint, PdfPage* pPage, PdfObject** ppLast ) PODOFO_LOCAL; | | //void ReorderObjectsLinearized( PdfObject* pLinearize, NonPublic::PdfH
intStream* pHint, PdfPage* pPage, PdfObject** ppLast ) PODOFO_LOCAL; | |
| | | | |
| /** Initialize m_pPagesTree with its correct value | | /** Initialize m_pPagesTree with its correct value | |
| * Always call this function befre accessing the pages tree. | | * Always call this function befre accessing the pages tree. | |
| */ | | */ | |
|
| void FetchPagesTree(); | | //void FetchPagesTree(); | |
| | | | |
| /** Find dependencies required for creating a linearized PDF of the cat
alog dictionary. | | /** Find dependencies required for creating a linearized PDF of the cat
alog dictionary. | |
| */ | | */ | |
|
| void FindCatalogDependencies( PdfObject* pCatalog, const PdfName & rNam
e, TPdfReferenceList* pList, bool bWithDependencies ) PODOFO_LOCAL; | | //void FindCatalogDependencies( PdfObject* pCatalog, const PdfName & rN
ame, TPdfReferenceList* pList, bool bWithDependencies ) PODOFO_LOCAL; | |
| | | | |
| /** Fill all keys in the linearization dictionary with their values | | /** Fill all keys in the linearization dictionary with their values | |
| * \param pLinearize a linearization dictionary | | * \param pLinearize a linearization dictionary | |
| * \param pHint the hint stream | | * \param pHint the hint stream | |
| * \param pPage the first page in the linerarized PDF file | | * \param pPage the first page in the linerarized PDF file | |
| * \param pLast pointer of the last object belonging to the first page | | * \param pLast pointer of the last object belonging to the first page | |
| * \param pVecXRefOffset xref table entries for previous entry | | * \param pVecXRefOffset xref table entries for previous entry | |
| */ | | */ | |
| // void FillLinearizationDictionary( PdfObject* pLinearize, PdfOutputDe
vice* pDevice, PdfPage* pPage, PdfObject* pLast, NonPublic::PdfHintStream*
pHint, TVecXRefOffset* pVecXRefOffset ) PODOFO_LOCAL; | | // void FillLinearizationDictionary( PdfObject* pLinearize, PdfOutputDe
vice* pDevice, PdfPage* pPage, PdfObject* pLast, NonPublic::PdfHintStream*
pHint, TVecXRefOffset* pVecXRefOffset ) PODOFO_LOCAL; | |
| | | | |
| | | | |
| skipping to change at line 275 | | skipping to change at line 269 | |
| bool m_bXRefStream; | | bool m_bXRefStream; | |
| | | | |
| PdfEncrypt* m_pEncrypt; ///< If not NULL encrypt all strings and
streams and create an encryption dictionary in the trailer | | 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 encryp
tion dictionary | | PdfObject* m_pEncryptObj; ///< Used to temporarly store the encryp
tion dictionary | |
| | | | |
| PdfString m_identifier; | | PdfString m_identifier; | |
| | | | |
| private: | | private: | |
| EPdfWriteMode m_eWriteMode; | | EPdfWriteMode m_eWriteMode; | |
| EPdfVersion m_eVersion; | | EPdfVersion m_eVersion; | |
|
| PdfPagesTree* m_pPagesTree; | | | |
| | | | |
| bool m_bLinearized; | | bool m_bLinearized; | |
| | | | |
| /** | | /** | |
| * This value is required when writing | | * This value is required when writing | |
| * a linearized PDF file. | | * a linearized PDF file. | |
| * It represents the offset of the whitespace | | * It represents the offset of the whitespace | |
| * character before the first line in the XRef | | * character before the first line in the XRef | |
| * section. | | * section. | |
| */ | | */ | |
| | | | |
End of changes. 6 change blocks. |
| 10 lines changed or deleted | | 3 lines changed or added | |
|
| PdfXObject.h | | PdfXObject.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| *
* | | *
* | |
| * You should have received a copy of the GNU Library General Public
* | | * You should have received a copy of the GNU Library General Public
* | |
| * License along with this program; if not, write to the
* | | * License along with this program; if not, write to the
* | |
| * Free Software Foundation, Inc.,
* | | * Free Software Foundation, Inc.,
* | |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* | |
| **************************************************************************
*/ | | **************************************************************************
*/ | |
| | | | |
| #ifndef _PDF_XOBJECT_H_ | | #ifndef _PDF_XOBJECT_H_ | |
| #define _PDF_XOBJECT_H_ | | #define _PDF_XOBJECT_H_ | |
| | | | |
|
| #include "PdfDefines.h" | | #include "podofo/base/PdfDefines.h" | |
| #include "PdfArray.h" | | #include "podofo/base/PdfArray.h" | |
| #include "PdfCanvas.h" | | #include "podofo/base/PdfCanvas.h" | |
| | | #include "podofo/base/PdfRect.h" | |
| | | | |
| #include "PdfElement.h" | | #include "PdfElement.h" | |
|
| #include "PdfRect.h" | | | |
| | | | |
| namespace PoDoFo { | | namespace PoDoFo { | |
| | | | |
| class PdfDictionary; | | class PdfDictionary; | |
|
| class PdfImageRef; | | | |
| class PdfObject; | | class PdfObject; | |
| class PdfMemDocument; | | class PdfMemDocument; | |
| | | | |
| /** A XObject is a content stream with several drawing commands and data | | /** A XObject is a content stream with several drawing commands and data | |
| * which can be used throughout a PDF document. | | * which can be used throughout a PDF document. | |
| * | | * | |
| * You can draw on a XObject like you would draw onto a page and can draw | | * You can draw on a XObject like you would draw onto a page and can draw | |
| * this XObject later again using a PdfPainter. | | * this XObject later again using a PdfPainter. | |
| * | | * | |
| * \see PdfPainter | | * \see PdfPainter | |
| */ | | */ | |
|
| class PODOFO_API PdfXObject : public PdfElement, public PdfCanvas { | | class PODOFO_DOC_API PdfXObject : public PdfElement, public PdfCanvas { | |
| public: | | public: | |
| /** Create a new XObject with a specified dimension | | /** Create a new XObject with a specified dimension | |
| * in a given document | | * in a given document | |
| * | | * | |
| * \param rRect the size of the XObject | | * \param rRect the size of the XObject | |
| * \param pParent the parent document of the XObject | | * \param pParent the parent document of the XObject | |
| * \param pszPrefix optional prefix for XObject-name | | * \param pszPrefix optional prefix for XObject-name | |
| */ | | */ | |
| PdfXObject( const PdfRect & rRect, PdfDocument* pParent, const char* ps
zPrefix = NULL ); | | PdfXObject( const PdfRect & rRect, PdfDocument* pParent, const char* ps
zPrefix = NULL ); | |
| | | | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 68 | |
| * | | * | |
| * \param rRect the size of the XObject | | * \param rRect the size of the XObject | |
| * \param pParent the parent vector of the XObject | | * \param pParent the parent vector of the XObject | |
| * \param pszPrefix optional prefix for XObject-name | | * \param pszPrefix optional prefix for XObject-name | |
| */ | | */ | |
| PdfXObject( const PdfRect & rRect, PdfVecObjects* pParent, const char*
pszPrefix = NULL ); | | PdfXObject( const PdfRect & rRect, PdfVecObjects* pParent, const char*
pszPrefix = NULL ); | |
| | | | |
| /** Create a new XObject from a page of another document | | /** Create a new XObject from a page of another document | |
| * in a given document | | * in a given document | |
| * | | * | |
|
| * \param rDoc the document to create the XObject from | | * \param rSourceDoc the document to create the XObject from | |
| * \param nPage the page-number in rDoc to create the XObject from | | * \param nPage the page-number in rDoc to create the XObject from | |
| * \param pParent the parent document of the XObject | | * \param pParent the parent document of the XObject | |
| * \param pszPrefix optional prefix for XObject-name | | * \param pszPrefix optional prefix for XObject-name | |
| * \param bUseTrimBox if true try to use trimbox for size of xo
bject | | * \param bUseTrimBox if true try to use trimbox for size of xo
bject | |
| */ | | */ | |
| PdfXObject( const PdfMemDocument & rSourceDoc, int nPage, PdfDocument*
pParent, const char* pszPrefix = NULL, bool bUseTrimBox = false ); | | PdfXObject( const PdfMemDocument & rSourceDoc, int nPage, PdfDocument*
pParent, const char* pszPrefix = NULL, bool bUseTrimBox = false ); | |
| | | | |
| /** Create a XObject from an existing PdfObject | | /** Create a XObject from an existing PdfObject | |
| * | | * | |
| * \param pObject an existing object which has to be | | * \param pObject an existing object which has to be | |
| | | | |
End of changes. 5 change blocks. |
| 7 lines changed or deleted | | 7 lines changed or added | |
|
| podofo.h | | podofo.h | |
| | | | |
| skipping to change at line 34 | | skipping to change at line 34 | |
| /** | | /** | |
| * This file can be used in client applications to include | | * This file can be used in client applications to include | |
| * all files required by PoDoFo at once. | | * all files required by PoDoFo at once. | |
| * | | * | |
| * Some symbols may be declared in the PoDoFo::NonPublic namespace. | | * Some symbols may be declared in the PoDoFo::NonPublic namespace. | |
| * Client applications must never rely on or use these symbols directly. | | * Client applications must never rely on or use these symbols directly. | |
| * On supporting platforms they will be excluded from the DLL interface, | | * On supporting platforms they will be excluded from the DLL interface, | |
| * and they are not guaranteed to continue to exist. | | * and they are not guaranteed to continue to exist. | |
| */ | | */ | |
| | | | |
|
| #include "PdfVersion.h" | | #include "podofo-base.h" | |
| #include "PdfDefines.h" | | | |
| #include "PdfAction.h" | | | |
| #include "PdfAcroForm.h" | | | |
| #include "PdfAnnotation.h" | | | |
| #include "PdfArray.h" | | | |
| #include "PdfCanvas.h" | | | |
| #include "PdfColor.h" | | | |
| #include "PdfContentsTokenizer.h" | | | |
| #include "PdfData.h" | | | |
| #include "PdfDataType.h" | | | |
| #include "PdfDate.h" | | | |
| #include "PdfDestination.h" | | | |
| #include "PdfDictionary.h" | | | |
| #include "PdfDifferenceEncoding.h" | | | |
| #include "PdfDocument.h" | | | |
| #include "PdfElement.h" | | | |
| #include "PdfEncoding.h" | | | |
| #include "PdfEncodingFactory.h" | | | |
| #include "PdfEncrypt.h" | | | |
| #include "PdfError.h" | | | |
| #include "PdfExtGState.h" | | | |
| #include "PdfField.h" | | | |
| #include "PdfFileSpec.h" | | | |
| #include "PdfFilter.h" | | | |
| #include "PdfFont.h" | | | |
| #include "PdfFontCache.h" | | | |
| #include "PdfFontFactory.h" | | | |
| #include "PdfFontMetrics.h" | | | |
| #include "PdfFontMetricsBase14.h" | | | |
| #include "PdfFontMetricsFreetype.h" | | | |
| #include "PdfFontMetricsObject.h" | | | |
| #include "PdfFontTTFSubset.h" | | | |
| #include "PdfFunction.h" | | | |
| #include "PdfImage.h" | | | |
| #include "PdfInfo.h" | | | |
| #include "PdfInputDevice.h" | | | |
| #include "PdfMemDocument.h" | | | |
| #include "PdfMemStream.h" | | | |
| #include "PdfName.h" | | | |
| #include "PdfNamesTree.h" | | | |
| #include "PdfObject.h" | | | |
| #include "PdfObjectStreamParserObject.h" | | | |
| #include "PdfOutlines.h" | | | |
| #include "PdfOutputDevice.h" | | | |
| #include "PdfPage.h" | | | |
| #include "PdfPagesTree.h" | | | |
| #include "PdfPagesTreeCache.h" | | | |
| #include "PdfPainter.h" | | | |
| #include "PdfPainterMM.h" | | | |
| #include "PdfParser.h" | | | |
| #include "PdfParserObject.h" | | | |
| #include "PdfRect.h" | | | |
| #include "PdfRefCountedBuffer.h" | | | |
| #include "PdfRefCountedInputDevice.h" | | | |
| #include "PdfShadingPattern.h" | | | |
| #include "PdfStream.h" | | | |
| #include "PdfStreamedDocument.h" | | | |
| #include "PdfString.h" | | | |
| #include "PdfTable.h" | | | |
| #include "PdfTokenizer.h" | | | |
| #include "PdfVariant.h" | | | |
| #include "PdfVecObjects.h" | | | |
| #include "PdfVersion.h" | | | |
| #include "PdfWriter.h" | | | |
| #include "PdfXObject.h" | | | |
| #include "PdfXRef.h" | | | |
| #include "PdfXRefStream.h" | | | |
| #include "PdfXRefStreamParserObject.h" | | | |
| | | | |
|
| #if 0 | | // Include files from PoDoFo-doc | |
| #ifndef _PODOFO_NO_NAMESPACE_ | | #include "doc/PdfAcroForm.h" | |
| | | #include "doc/PdfAction.h" | |
| | | #include "doc/PdfAnnotation.h" | |
| | | #include "doc/PdfContents.h" | |
| | | #include "doc/PdfDestination.h" | |
| | | #include "doc/PdfDifferenceEncoding.h" | |
| | | #include "doc/PdfDocument.h" | |
| | | #include "doc/PdfElement.h" | |
| | | #include "doc/PdfEncodingObjectFactory.h" | |
| | | #include "doc/PdfExtGState.h" | |
| | | #include "doc/PdfField.h" | |
| | | #include "doc/PdfFileSpec.h" | |
| | | #include "doc/PdfFontCache.h" | |
| | | #include "doc/PdfFontCID.h" | |
| | | #include "doc/PdfFontFactoryBase14Data.h" | |
| | | #include "doc/PdfFontFactory.h" | |
| | | #include "doc/PdfFont.h" | |
| | | #include "doc/PdfFontMetricsBase14.h" | |
| | | #include "doc/PdfFontMetricsFreetype.h" | |
| | | #include "doc/PdfFontMetrics.h" | |
| | | #include "doc/PdfFontMetricsObject.h" | |
| | | #include "doc/PdfFontSimple.h" | |
| | | #include "doc/PdfFontTrueType.h" | |
| | | #include "doc/PdfFontTTFSubset.h" | |
| | | #include "doc/PdfFontType1Base14.h" | |
| | | #include "doc/PdfFontType1.h" | |
| | | #include "doc/PdfFunction.h" | |
| | | #include "doc/PdfHintStream.h" | |
| | | #include "doc/PdfIdentityEncoding.h" | |
| | | #include "doc/PdfImage.h" | |
| | | #include "doc/PdfInfo.h" | |
| | | #include "doc/PdfMemDocument.h" | |
| | | #include "doc/PdfNamesTree.h" | |
| | | #include "doc/PdfOutlines.h" | |
| | | #include "doc/PdfPage.h" | |
| | | #include "doc/PdfPagesTreeCache.h" | |
| | | #include "doc/PdfPagesTree.h" | |
| | | #include "doc/PdfPainter.h" | |
| | | #include "doc/PdfPainterMM.h" | |
| | | #include "doc/PdfShadingPattern.h" | |
| | | #include "doc/PdfSignatureField.h" | |
| | | #include "doc/PdfSignOutputDevice.h" | |
| | | #include "doc/PdfStreamedDocument.h" | |
| | | #include "doc/PdfTable.h" | |
| | | #include "doc/PdfXObject.h" | |
| | | | |
| | | #ifdef _PODOFO_NO_NAMESPACE_ | |
| using namespace PoDoFo; | | using namespace PoDoFo; | |
| #endif /* _PODOFO_NO_NAMESPACE_ */ | | #endif /* _PODOFO_NO_NAMESPACE_ */ | |
|
| #endif | | | |
| | | | |
| #endif /* _PODOFO_H_ */ | | #endif /* _PODOFO_H_ */ | |
| | | | |
End of changes. 3 change blocks. |
| 72 lines changed or deleted | | 49 lines changed or added | |
|
| podofoapi.h | | podofoapi.h | |
| | | | |
| skipping to change at line 70 | | skipping to change at line 70 | |
| * __attribute__((pure)) for functions w/o side effects | | * __attribute__((pure)) for functions w/o side effects | |
| * (available as PODOFO_PURE_FUNCTION) | | * (available as PODOFO_PURE_FUNCTION) | |
| * | | * | |
| */ | | */ | |
| | | | |
| // Peter Petrov 26 April 2008 | | // Peter Petrov 26 April 2008 | |
| /* Automatically defined by CMake when building a shared library */ | | /* Automatically defined by CMake when building a shared library */ | |
| #if defined (podofo_EXPORTS) | | #if defined (podofo_EXPORTS) | |
| #define COMPILING_SHARED_PODOFO | | #define COMPILING_SHARED_PODOFO | |
| #undef USING_SHARED_PODOFO | | #undef USING_SHARED_PODOFO | |
|
| | | #if defined(podofo_EXPORTS) | |
| | | #define COMPILING_SHARED_PODOFO_BASE | |
| | | #define COMPILING_SHARED_PODOFO_DOC | |
| | | #endif | |
| #endif | | #endif | |
| | | | |
| /* Automatically defined by CMake when building a shared library */ | | /* Automatically defined by CMake when building a shared library */ | |
|
| | | //#if defined(podofo_shared_EXPORTS) | |
| #if defined(podofo_shared_EXPORTS) | | #if defined(podofo_shared_EXPORTS) | |
| #define COMPILING_SHARED_PODOFO | | #define COMPILING_SHARED_PODOFO | |
|
| | | #undef USING_SHARED_PODOFO | |
| #endif | | #endif | |
| | | | |
| /* Sanity check - can't be both compiling and using shared podofo */ | | /* Sanity check - can't be both compiling and using shared podofo */ | |
| #if defined(COMPILING_SHARED_PODOFO) && defined(USING_SHARED_PODOFO) | | #if defined(COMPILING_SHARED_PODOFO) && defined(USING_SHARED_PODOFO) | |
| #error "Both COMPILING_SHARED_PODOFO and USING_SHARED_PODOFO defined!" | | #error "Both COMPILING_SHARED_PODOFO and USING_SHARED_PODOFO defined!" | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * Define COMPILING_SHARED_PODOFO when building the PoDoFo library as a | | * Define COMPILING_SHARED_PODOFO when building the PoDoFo library as a | |
| * DLL. When building code that uses that DLL, define USING_SHARED_PODOFO. | | * DLL. When building code that uses that DLL, define USING_SHARED_PODOFO. | |
| * | | * | |
| * Building or linking to a static library does not require either | | * Building or linking to a static library does not require either | |
| * preprocessor symbol. | | * preprocessor symbol. | |
| */ | | */ | |
| #if defined(_WIN32) | | #if defined(_WIN32) | |
| #if defined(COMPILING_SHARED_PODOFO) | | #if defined(COMPILING_SHARED_PODOFO) | |
| #define PODOFO_API __declspec(dllexport) | | #define PODOFO_API __declspec(dllexport) | |
|
| #elif defined(USING_SHARED_PODOFO) | | #define PODOFO_DOC_API __declspec(dllexport) | |
| #define PODOFO_API __declspec(dllimport) | | #elif defined(USING_SHARED_PODOFO) | |
| | | #define PODOFO_API __declspec(dllimport) | |
| | | #define PODOFO_DOC_API __declspec(dllimport) | |
| #else | | #else | |
| #define PODOFO_API | | #define PODOFO_API | |
|
| | | #define PODOFO_DOC_API | |
| #endif | | #endif | |
| /* PODOFO_LOCAL doesn't mean anything on win32, it's to exclude | | /* PODOFO_LOCAL doesn't mean anything on win32, it's to exclude | |
| * symbols from the export table with gcc4. */ | | * symbols from the export table with gcc4. */ | |
| #define PODOFO_LOCAL | | #define PODOFO_LOCAL | |
| #else | | #else | |
| #if defined(PODOFO_HAVE_GCC_SYMBOL_VISIBILITY) | | #if defined(PODOFO_HAVE_GCC_SYMBOL_VISIBILITY) | |
| /* Forces inclusion of a symbol in the symbol table, so | | /* Forces inclusion of a symbol in the symbol table, so | |
| software outside the current library can use it. */ | | software outside the current library can use it. */ | |
| #define PODOFO_API __attribute__ ((visibility("default"))) | | #define PODOFO_API __attribute__ ((visibility("default"))) | |
|
| | | #define PODOFO_DOC_API __attribute__ ((visibility("default"))) | |
| /* Within a section exported with PODOFO_API, forces a symbol to be | | /* Within a section exported with PODOFO_API, forces a symbol to be | |
| private to the library / app. Good for private members. */ | | private to the library / app. Good for private members. */ | |
| #define PODOFO_LOCAL __attribute__ ((visibility("hidden"))) | | #define PODOFO_LOCAL __attribute__ ((visibility("hidden"))) | |
| /* Forces even stricter hiding of methods/functions. The function m
ust | | /* Forces even stricter hiding of methods/functions. The function m
ust | |
| * absolutely never be called from outside the module even via a fu
nction | | * absolutely never be called from outside the module even via a fu
nction | |
| * pointer.*/ | | * pointer.*/ | |
| #define PODOFO_INTERNAL __attribute__ ((visibility("internal"))) | | #define PODOFO_INTERNAL __attribute__ ((visibility("internal"))) | |
| #else | | #else | |
| #define PODOFO_API | | #define PODOFO_API | |
|
| | | #define PODOFO_DOC_API | |
| #define PODOFO_LOCAL | | #define PODOFO_LOCAL | |
| #define PODOFO_INTERNAL | | #define PODOFO_INTERNAL | |
| #endif | | #endif | |
| #endif | | #endif | |
| | | | |
| /* Throwable classes must always be exported by all binaries when | | /* Throwable classes must always be exported by all binaries when | |
| * using gcc. Marking exception classes with PODOFO_EXCEPTION_API | | * using gcc. Marking exception classes with PODOFO_EXCEPTION_API | |
| * ensures this. */ | | * ensures this. */ | |
| #ifdef _WIN32 | | #ifdef _WIN32 | |
| #define PODOFO_EXCEPTION_API(api) api | | #define PODOFO_EXCEPTION_API(api) api | |
| | | | |
| skipping to change at line 151 | | skipping to change at line 162 | |
| * (see CODINGSTYLE.txt) .*/ | | * (see CODINGSTYLE.txt) .*/ | |
| #define PODOFO_NOTHROW __attribute__((nothrow)) | | #define PODOFO_NOTHROW __attribute__((nothrow)) | |
| #else | | #else | |
| #define PODOFO_DEPRECATED | | #define PODOFO_DEPRECATED | |
| #define PODOFO_PURE_FUNCTION | | #define PODOFO_PURE_FUNCTION | |
| #define PODOFO_NOTHROW __declspec(nothrow) | | #define PODOFO_NOTHROW __declspec(nothrow) | |
| #endif | | #endif | |
| | | | |
| // Peter Petrov 27 April 2008 | | // Peter Petrov 27 April 2008 | |
| // Disable warnings | | // Disable warnings | |
|
| #ifdef _WIN32 | | #if defined(_WIN32) && defined(_MSC_VER) | |
| #pragma warning(disable: 4251) | | #pragma warning(disable: 4251) | |
| #pragma warning(disable: 4309) | | #pragma warning(disable: 4309) | |
| #endif // _WIN32 | | #endif // _WIN32 | |
| | | | |
| #endif // PODOFO_API_H | | #endif // PODOFO_API_H | |
| | | | |
End of changes. 8 change blocks. |
| 3 lines changed or deleted | | 14 lines changed or added | |
|