diff options
Diffstat (limited to 'sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx')
-rw-r--r-- | sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx deleted file mode 100644 index 0fd43c5..0000000 --- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx +++ /dev/null @@ -1,299 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * OpenOffice.org - a multi-platform office productivity suite - * - * The Contents of this file are made available subject to - * the terms of GNU General Public License Version 2. - * - * - * GNU General Public License, version 2 - * ============================================= - * Copyright 2005 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - ************************************************************************/ - -#ifndef INCLUDED_PDFI_OUTDEV_HXX -#define INCLUDED_PDFI_OUTDEV_HXX - -#if defined __GNUC__ -#pragma GCC system_header -#elif defined __SUNPRO_CC -#pragma disable_warn -#elif defined _MSC_VER -#pragma warning(push, 1) -#endif - -#include "GfxState.h" -#include "GfxFont.h" -#include "UnicodeMap.h" -#include "Link.h" -#include "Object.h" -#include "OutputDev.h" -#ifndef SYSTEM_POPPLER -# include "parseargs.h" -#endif -#include "GlobalParams.h" -#include "PDFDoc.h" - -#if defined __SUNPRO_CC -#pragma enable_warn -#elif defined _MSC_VER -#pragma warning(pop) -#endif - -#include <boost/unordered_map.hpp> -#include <vector> - -class GfxPath; -class GfxFont; -class PDFDoc; -#ifndef SYSTEM_POPPLER -#define POPPLER_CHECK_VERSION(major,minor,micro) (0) -typedef GString GooString; -#else -#include <glib/poppler-features.h> -#endif - -namespace pdfi -{ - struct FontAttributes - { - FontAttributes( const GooString& familyName_, - bool isEmbedded_, - bool isBold_, - bool isItalic_, - bool isUnderline_, - double size_ ) : - familyName(), - isEmbedded(isEmbedded_), - isBold(isBold_), - isItalic(isItalic_), - isUnderline(isUnderline_), - size(size_) - { - familyName.append(const_cast<GooString*>(&familyName_)); - } - - FontAttributes() : - familyName(), - isEmbedded(false), - isBold(false), - isItalic(false), - isUnderline(false), - size(0.0) - {} - - // xdpf goo stuff is so totally borked... - // ...need to hand-code assignment - FontAttributes( const FontAttributes& rSrc ) : - familyName(), - isEmbedded(rSrc.isEmbedded), - isBold(rSrc.isBold), - isItalic(rSrc.isItalic), - isUnderline(rSrc.isUnderline), - size(rSrc.size) - { - familyName.append(const_cast<GooString*>(&rSrc.familyName)); - } - - FontAttributes& operator=( const FontAttributes& rSrc ) - { - familyName.clear(); - familyName.append(const_cast<GooString*>(&rSrc.familyName)); - - isEmbedded = rSrc.isEmbedded; - isBold = rSrc.isBold; - isItalic = rSrc.isItalic; - isUnderline = rSrc.isUnderline; - size = rSrc.size; - - return *this; - } - - bool operator==(const FontAttributes& rFont) const - { - return const_cast<GooString*>(&familyName)->cmp( - const_cast<GooString*>(&rFont.familyName))==0 && - isEmbedded == rFont.isEmbedded && - isBold == rFont.isBold && - isItalic == rFont.isItalic && - isUnderline == rFont.isUnderline && - size == rFont.size; - } - - GooString familyName; - bool isEmbedded; - bool isBold; - bool isItalic; - bool isUnderline; - double size; - }; - - class PDFOutDev : public OutputDev - { - // not owned by this class - PDFDoc* m_pDoc; - mutable boost::unordered_map< long long, - FontAttributes > m_aFontMap; - UnicodeMap* m_pUtf8Map; - - int parseFont( long long nNewId, GfxFont* pFont, GfxState* state ) const; - void writeFontFile( GfxFont* gfxFont ) const; - void printPath( GfxPath* pPath ) const; - - public: - explicit PDFOutDev( PDFDoc* pDoc ); - - //----- get info about output device - - // Does this device use upside-down coordinates? - // (Upside-down means (0,0) is the top left corner of the page.) - virtual GBool upsideDown() { return gTrue; } - - // Does this device use drawChar() or drawString()? - virtual GBool useDrawChar() { return gTrue; } - - // Does this device use beginType3Char/endType3Char? Otherwise, - // text in Type 3 fonts will be drawn with drawChar/drawString. - virtual GBool interpretType3Chars() { return gFalse; } - - // Does this device need non-text content? - virtual GBool needNonText() { return gTrue; } - - //----- initialization and control - - // Set default transform matrix. - virtual void setDefaultCTM(double *ctm); - - // Start a page. - virtual void startPage(int pageNum, GfxState *state); - - // End a page. - virtual void endPage(); - - // Dump page contents to display. - // virtual void dump() {} - - //----- coordinate conversion - - // Convert between device and user coordinates. - // virtual void cvtDevToUser(double dx, double dy, double *ux, double *uy); - // virtual void cvtUserToDev(double ux, double uy, int *dx, int *dy); - - #if POPPLER_CHECK_VERSION(0, 17, 0) - virtual void processLink(AnnotLink *link, Catalog *catalog); - #else - //----- link borders - virtual void processLink(Link *link, Catalog *catalog); - #endif - - //----- save/restore graphics state - virtual void saveState(GfxState *state); - virtual void restoreState(GfxState *state); - - //----- update graphics state - // virtual void updateAll(GfxState *state); - virtual void updateCTM(GfxState *state, double m11, double m12, - double m21, double m22, double m31, double m32); - virtual void updateLineDash(GfxState *state); - virtual void updateFlatness(GfxState *state); - virtual void updateLineJoin(GfxState *state); - virtual void updateLineCap(GfxState *state); - virtual void updateMiterLimit(GfxState *state); - virtual void updateLineWidth(GfxState *state); - virtual void updateFillColor(GfxState *state); - virtual void updateStrokeColor(GfxState *state); - virtual void updateFillOpacity(GfxState *state); - virtual void updateStrokeOpacity(GfxState *state); - virtual void updateBlendMode(GfxState *state); - - //----- update text state - virtual void updateFont(GfxState *state); - // virtual void updateTextMat(GfxState *state); - // virtual void updateCharSpace(GfxState *state) {} - virtual void updateRender(GfxState *state); - // virtual void updateRise(GfxState *state) {} - // virtual void updateWordSpace(GfxState *state) {} - // virtual void updateHorizScaling(GfxState *state) {} - // virtual void updateTextPos(GfxState *state) {} - // virtual void updateTextShift(GfxState *state, double shift) {} - - //----- path painting - virtual void stroke(GfxState *state); - virtual void fill(GfxState *state); - virtual void eoFill(GfxState *state); - - //----- path clipping - virtual void clip(GfxState *state); - virtual void eoClip(GfxState *state); - - //----- text drawing - virtual void drawChar(GfxState *state, double x, double y, - double dx, double dy, - double originX, double originY, - CharCode code, int nBytes, Unicode *u, int uLen); - virtual void drawString(GfxState *state, GooString *s); - virtual void endTextObject(GfxState *state); - - //----- image drawing - virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, - int width, int height, GBool invert, - GBool inlineImg); - virtual void drawImage(GfxState *state, Object *ref, Stream *str, - int width, int height, GfxImageColorMap *colorMap, - int *maskColors, GBool inlineImg); - virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, - int width, int height, - GfxImageColorMap *colorMap, - Stream *maskStr, int maskWidth, int maskHeight, - GBool maskInvert); - virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, - int width, int height, - GfxImageColorMap *colorMap, - Stream *maskStr, - int maskWidth, int maskHeight, - GfxImageColorMap *maskColorMap); - - //----- OPI functions - // virtual void opiBegin(GfxState *state, Dict *opiDict); - // virtual void opiEnd(GfxState *state, Dict *opiDict); - - //----- Type 3 font operators - // virtual void type3D0(GfxState *state, double wx, double wy) {} - // virtual void type3D1(GfxState *state, double wx, double wy, - // double llx, double lly, double urx, double ury) {} - - //----- PostScript XObjects - // virtual void psXObject(Stream *psStream, Stream *level1Stream) {} - - void setPageNum( int nNumPages ); - }; -} - -extern FILE* g_binary_out; - -// note: if you ever hcange Output_t, please keep in mind that the current code -// relies on it being of 8 bit size -typedef char Output_t; -typedef std::vector< Output_t > OutputBuffer; - -#endif /* INCLUDED_PDFI_OUTDEV_HXX */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |