From: kramm Date: Sun, 9 Dec 2007 17:01:08 +0000 (+0000) Subject: new output device, for testing purposes X-Git-Tag: buttons-working~466 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=1bb328806bae46eaa54a793370ed3e71910482c6 new output device, for testing purposes --- diff --git a/lib/pdf/DummyOutputDev.cc b/lib/pdf/DummyOutputDev.cc new file mode 100644 index 0000000..76a5a49 --- /dev/null +++ b/lib/pdf/DummyOutputDev.cc @@ -0,0 +1,377 @@ +/* DummyOutputDev.h + + Output Device which serves as "passthrough" + + Copyright (c) 2007 Matthias Kramm + + Swftools 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. + + Swftools 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 swftools; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include +#include +#include +#include "config.h" +#include "DummyOutputDev.h" +#include "GFXOutputDev.h" +#include "SplashBitmap.h" +#include "SplashPattern.h" +#include "Splash.h" +#include "../log.h" + +DummyOutputDev::DummyOutputDev(OutputDev*target) +{ + this->rgbdev = target; +} +DummyOutputDev::~DummyOutputDev() +{ + if(this->rgbdev) { + delete this->rgbdev;this->rgbdev= 0; + } +} +void DummyOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, double crop_y1, double crop_x2, double crop_y2) +{ + rgbdev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2); +} + +void DummyOutputDev::endPage() +{ + rgbdev->endPage(); +} + +GBool DummyOutputDev::upsideDown() +{ + return rgbdev->upsideDown(); +} + +GBool DummyOutputDev::useDrawChar() +{ + return rgbdev->useDrawChar(); +} + +GBool DummyOutputDev::useTilingPatternFill() +{ + return rgbdev->useTilingPatternFill(); +} + +GBool DummyOutputDev::useShadedFills() +{ + return rgbdev->useShadedFills(); +} + +GBool DummyOutputDev::useDrawForm() +{ + return rgbdev->useDrawForm(); +} + +GBool DummyOutputDev::interpretType3Chars() +{ + return rgbdev->interpretType3Chars(); +} + +GBool DummyOutputDev::needNonText() +{ + return rgbdev->needNonText(); +} +void DummyOutputDev::setDefaultCTM(double *ctm) +{ + rgbdev->setDefaultCTM(ctm); +} +void DummyOutputDev::saveState(GfxState *state) +{ + rgbdev->saveState(state); +} +void DummyOutputDev::restoreState(GfxState *state) +{ + rgbdev->restoreState(state); +} +void DummyOutputDev::updateAll(GfxState *state) +{ + rgbdev->updateAll(state); +} +void DummyOutputDev::updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32) +{ + rgbdev->updateCTM(state,m11,m12,m21,m22,m31,m32); +} +void DummyOutputDev::updateLineDash(GfxState *state) +{ + rgbdev->updateLineDash(state); +} +void DummyOutputDev::updateFlatness(GfxState *state) +{ + rgbdev->updateFlatness(state); +} +void DummyOutputDev::updateLineJoin(GfxState *state) +{ + rgbdev->updateLineJoin(state); +} +void DummyOutputDev::updateLineCap(GfxState *state) +{ + rgbdev->updateLineCap(state); +} +void DummyOutputDev::updateMiterLimit(GfxState *state) +{ + rgbdev->updateMiterLimit(state); +} +void DummyOutputDev::updateLineWidth(GfxState *state) +{ + rgbdev->updateLineWidth(state); +} +void DummyOutputDev::updateStrokeAdjust(GfxState *state) +{ + rgbdev->updateStrokeAdjust(state); +} +void DummyOutputDev::updateFillColorSpace(GfxState *state) +{ + rgbdev->updateFillColorSpace(state); +} +void DummyOutputDev::updateStrokeColorSpace(GfxState *state) +{ + rgbdev->updateStrokeColorSpace(state); +} +void DummyOutputDev::updateFillColor(GfxState *state) +{ + rgbdev->updateFillColor(state); +} +void DummyOutputDev::updateStrokeColor(GfxState *state) +{ + rgbdev->updateStrokeColor(state); +} +void DummyOutputDev::updateBlendMode(GfxState *state) +{ + rgbdev->updateBlendMode(state); +} +void DummyOutputDev::updateFillOpacity(GfxState *state) +{ + rgbdev->updateFillOpacity(state); +} +void DummyOutputDev::updateStrokeOpacity(GfxState *state) +{ + rgbdev->updateStrokeOpacity(state); +} +void DummyOutputDev::updateFillOverprint(GfxState *state) +{ + rgbdev->updateFillOverprint(state); +} +void DummyOutputDev::updateStrokeOverprint(GfxState *state) +{ + rgbdev->updateStrokeOverprint(state); +} +void DummyOutputDev::updateTransfer(GfxState *state) +{ + rgbdev->updateTransfer(state); +} +void DummyOutputDev::updateFont(GfxState *state) +{ + rgbdev->updateFont(state); +} +void DummyOutputDev::updateTextMat(GfxState *state) +{ + rgbdev->updateTextMat(state); +} +void DummyOutputDev::updateCharSpace(GfxState *state) +{ + rgbdev->updateCharSpace(state); +} +void DummyOutputDev::updateRender(GfxState *state) +{ + rgbdev->updateRender(state); +} +void DummyOutputDev::updateRise(GfxState *state) +{ + rgbdev->updateRise(state); +} +void DummyOutputDev::updateWordSpace(GfxState *state) +{ + rgbdev->updateWordSpace(state); +} +void DummyOutputDev::updateHorizScaling(GfxState *state) +{ + rgbdev->updateHorizScaling(state); +} +void DummyOutputDev::updateTextPos(GfxState *state) +{ + rgbdev->updateTextPos(state); +} +void DummyOutputDev::updateTextShift(GfxState *state, double shift) +{ + rgbdev->updateTextShift(state, shift); +} +void DummyOutputDev::stroke(GfxState *state) +{ + rgbdev->stroke(state); +} +void DummyOutputDev::fill(GfxState *state) +{ + rgbdev->fill(state); +} +void DummyOutputDev::eoFill(GfxState *state) +{ + rgbdev->eoFill(state); +} +#if (xpdfMajorVersion < 3) || (xpdfMinorVersion < 2) || (xpdfUpdateVersion < 7) +void DummyOutputDev::tilingPatternFill(GfxState *state, Object *str, + int paintType, Dict *resDict, + double *mat, double *bbox, + int x0, int y0, int x1, int y1, + double xStep, double yStep) +{ + rgbdev->tilingPatternFill(state, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep); +} +#else +void DummyOutputDev::tilingPatternFill(GfxState *state, Gfx *gfx, Object *str, + int paintType, Dict *resDict, + double *mat, double *bbox, + int x0, int y0, int x1, int y1, + double xStep, double yStep) +{ + rgbdev->tilingPatternFill(state, gfx, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep); +} +#endif + +GBool DummyOutputDev::functionShadedFill(GfxState *state, GfxFunctionShading *shading) +{ + return rgbdev->functionShadedFill(state, shading); +} +GBool DummyOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading) +{ + return rgbdev->axialShadedFill(state, shading); +} +GBool DummyOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading) +{ + return rgbdev->radialShadedFill(state, shading); +} + +void DummyOutputDev::clip(GfxState *state) +{ + rgbdev->clip(state); +} +void DummyOutputDev::eoClip(GfxState *state) +{ + rgbdev->eoClip(state); +} +void DummyOutputDev::clipToStrokePath(GfxState *state) +{ + rgbdev->clipToStrokePath(state); +} + +void DummyOutputDev::beginStringOp(GfxState *state) +{ + rgbdev->beginStringOp(state); +} +void DummyOutputDev::endStringOp(GfxState *state) +{ + rgbdev->endStringOp(state); +} +void DummyOutputDev::beginString(GfxState *state, GString *s) +{ + rgbdev->beginString(state, s); +} +void DummyOutputDev::endString(GfxState *state) +{ + rgbdev->endString(state); +} +void DummyOutputDev::drawChar(GfxState *state, double x, double y, + double dx, double dy, + double originX, double originY, + CharCode code, int nBytes, Unicode *u, int uLen) +{ + rgbdev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen); +} +void DummyOutputDev::drawString(GfxState *state, GString *s) +{ + rgbdev->drawString(state, s); +} +void DummyOutputDev::endTextObject(GfxState *state) +{ + rgbdev->endTextObject(state); +} +GBool DummyOutputDev::beginType3Char(GfxState *state, double x, double y, + double dx, double dy, + CharCode code, Unicode *u, int uLen) +{ + return rgbdev->beginType3Char(state, x, y, dx, dy, code, u, uLen); +} +void DummyOutputDev::type3D0(GfxState *state, double wx, double wy) +{ + rgbdev->type3D0(state, wx, wy); +} +void DummyOutputDev::type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury) +{ + rgbdev->type3D1(state, wx, wy, llx, lly, urx, ury); +} +void DummyOutputDev::endType3Char(GfxState *state) +{ + rgbdev->endType3Char(state); +} +void DummyOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, + int width, int height, GBool invert, + GBool inlineImg) +{ + rgbdev->drawImageMask(state, ref, str, width, height, invert, inlineImg); +} +void DummyOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, + int width, int height, GfxImageColorMap *colorMap, + int *maskColors, GBool inlineImg) +{ + rgbdev->drawImage(state, ref, str, width, height, colorMap, maskColors, inlineImg); +} +void DummyOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, + int width, int height, + GfxImageColorMap *colorMap, + Stream *maskStr, int maskWidth, int maskHeight, + GBool maskInvert) +{ + rgbdev->drawMaskedImage(state, ref, str, width, height, colorMap, maskStr, maskWidth, maskHeight, maskInvert); +} +void DummyOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, + int width, int height, + GfxImageColorMap *colorMap, + Stream *maskStr, + int maskWidth, int maskHeight, + GfxImageColorMap *maskColorMap) +{ + rgbdev->drawSoftMaskedImage(state, ref, str, width, height, colorMap, maskStr, maskWidth, maskHeight, maskColorMap); +} +void DummyOutputDev::drawForm(Ref id) +{ + rgbdev->drawForm(id); +} + +void DummyOutputDev::processLink(Link *link, Catalog *catalog) +{ +} + +void DummyOutputDev::beginTransparencyGroup(GfxState *state, double *bbox, + GfxColorSpace *blendingColorSpace, + GBool isolated, GBool knockout, + GBool forSoftMask) +{ + rgbdev->beginTransparencyGroup(state, bbox, blendingColorSpace, isolated, knockout, forSoftMask); +} +void DummyOutputDev::endTransparencyGroup(GfxState *state) +{ + rgbdev->endTransparencyGroup(state); +} +void DummyOutputDev::paintTransparencyGroup(GfxState *state, double *bbox) +{ + rgbdev->paintTransparencyGroup(state,bbox); +} +void DummyOutputDev::setSoftMask(GfxState *state, double *bbox, GBool alpha, Function *transferFunc, GfxColor *backdropColor) +{ + rgbdev->setSoftMask(state, bbox, alpha, transferFunc, backdropColor); +} +void DummyOutputDev::clearSoftMask(GfxState *state) +{ + rgbdev->clearSoftMask(state); +} diff --git a/lib/pdf/DummyOutputDev.h b/lib/pdf/DummyOutputDev.h new file mode 100644 index 0000000..cb8d7ac --- /dev/null +++ b/lib/pdf/DummyOutputDev.h @@ -0,0 +1,170 @@ +/* DummyOutputDev.cc + Output Device which serves as "passthrough" + This file is part of swftools. + + Copyright (c) 2007 Matthias Kramm + + Swftools 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. + + Swftools 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 swftools; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef __DummyOutputDev_h__ +#define __DummyOutputDev_h__ + +#include "../gfxdevice.h" +#include "../gfxsource.h" +#include "../gfxtools.h" + +#include "config.h" +#include "GFXOutputDev.h" +#include "InfoOutputDev.h" +#include "PDFDoc.h" +#include "CommonOutputDev.h" +#include "SplashOutputDev.h" + +class DummyOutputDev: public OutputDev { +public: + DummyOutputDev(OutputDev*target); + virtual ~DummyOutputDev(); + + // OutputDev: + virtual GBool upsideDown(); + virtual GBool useDrawChar(); + virtual GBool useTilingPatternFill(); + virtual GBool useShadedFills(); + virtual GBool useDrawForm(); + virtual GBool interpretType3Chars(); + virtual GBool needNonText(); + virtual void setDefaultCTM(double *ctm); +/* virtual GBool checkPageSlice(Page *page, double hDPI, double vDPI, + int rotate, GBool useMediaBox, GBool crop, + int sliceX, int sliceY, int sliceW, int sliceH, + GBool printing, Catalog *catalog, + GBool (*abortCheckCbk)(void *data) = NULL, + void *abortCheckCbkData = NULL);*/ + + virtual void startPage(int pageNum, GfxState *state, double x1,double y1,double x2,double y2); + virtual void endPage(); + + virtual void saveState(GfxState *state); + virtual void restoreState(GfxState *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 updateStrokeAdjust(GfxState *state); + virtual void updateFillColorSpace(GfxState *state); + virtual void updateStrokeColorSpace(GfxState *state); + virtual void updateFillColor(GfxState *state); + virtual void updateStrokeColor(GfxState *state); + virtual void updateBlendMode(GfxState *state); + virtual void updateFillOpacity(GfxState *state); + virtual void updateStrokeOpacity(GfxState *state); + virtual void updateFillOverprint(GfxState *state); + virtual void updateStrokeOverprint(GfxState *state); + virtual void updateTransfer(GfxState *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); + + virtual void stroke(GfxState *state); + virtual void fill(GfxState *state); + virtual void eoFill(GfxState *state); +#if (xpdfMajorVersion < 3) || (xpdfMinorVersion < 2) || (xpdfUpdateVersion < 7) + virtual void tilingPatternFill(GfxState *state, Object *str, + int paintType, Dict *resDict, + double *mat, double *bbox, + int x0, int y0, int x1, int y1, + double xStep, double yStep); +#else + virtual void tilingPatternFill(GfxState *state, Gfx *gfx, Object *str, + int paintType, Dict *resDict, + double *mat, double *bbox, + int x0, int y0, int x1, int y1, + double xStep, double yStep); +#endif + + virtual GBool functionShadedFill(GfxState *state, + GfxFunctionShading *shading); + virtual GBool axialShadedFill(GfxState *state, GfxAxialShading *shading); + virtual GBool radialShadedFill(GfxState *state, GfxRadialShading *shading); + + virtual void clip(GfxState *state); + virtual void eoClip(GfxState *state); + virtual void clipToStrokePath(GfxState *state); + + virtual void beginStringOp(GfxState *state); + virtual void endStringOp(GfxState *state); + virtual void beginString(GfxState *state, GString *s); + virtual void endString(GfxState *state); + 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, GString *s); + virtual GBool beginType3Char(GfxState *state, double x, double y, + double dx, double dy, + CharCode code, Unicode *u, int uLen); + virtual void endType3Char(GfxState *state); + virtual void endTextObject(GfxState *state); + + 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); + + 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); + + virtual void drawForm(Ref id); + + virtual void beginTransparencyGroup(GfxState *state, double *bbox, + GfxColorSpace *blendingColorSpace, + GBool isolated, GBool knockout, + GBool forSoftMask); + virtual void endTransparencyGroup(GfxState *state); + virtual void paintTransparencyGroup(GfxState *state, double *bbox); + virtual void setSoftMask(GfxState *state, double *bbox, GBool alpha, Function *transferFunc, GfxColor *backdropColor); + virtual void clearSoftMask(GfxState *state); + + virtual void processLink(Link *link, Catalog *catalog); + + OutputDev*rgbdev; +private: +}; + +#endif