diff options
Diffstat (limited to 'filters/kword/pdf/xpdf/xpdf/OutputDev.cpp')
-rw-r--r-- | filters/kword/pdf/xpdf/xpdf/OutputDev.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/filters/kword/pdf/xpdf/xpdf/OutputDev.cpp b/filters/kword/pdf/xpdf/xpdf/OutputDev.cpp new file mode 100644 index 000000000..84f7a2ac9 --- /dev/null +++ b/filters/kword/pdf/xpdf/xpdf/OutputDev.cpp @@ -0,0 +1,103 @@ +//======================================================================== +// +// OutputDev.cpp +// +// Copyright 1996-2002 Glyph & Cog, LLC +// +//======================================================================== + +#include <aconf.h> + +#ifdef USE_GCC_PRAGMAS +#pragma implementation +#endif + +#include <stddef.h> +#include "Object.h" +#include "Stream.h" +#include "GfxState.h" +#include "OutputDev.h" + +//------------------------------------------------------------------------ +// OutputDev +//------------------------------------------------------------------------ + +void OutputDev::setDefaultCTM(const double *ctm) { + int i; + double det; + + for (i = 0; i < 6; ++i) { + defCTM[i] = ctm[i]; + } + det = 1 / (defCTM[0] * defCTM[3] - defCTM[1] * defCTM[2]); + defICTM[0] = defCTM[3] * det; + defICTM[1] = -defCTM[1] * det; + defICTM[2] = -defCTM[2] * det; + defICTM[3] = defCTM[0] * det; + defICTM[4] = (defCTM[2] * defCTM[5] - defCTM[3] * defCTM[4]) * det; + defICTM[5] = (defCTM[1] * defCTM[4] - defCTM[0] * defCTM[5]) * det; +} + +void OutputDev::cvtDevToUser(int dx, int dy, double *ux, double *uy) { + *ux = defICTM[0] * dx + defICTM[2] * dy + defICTM[4]; + *uy = defICTM[1] * dx + defICTM[3] * dy + defICTM[5]; +} + +void OutputDev::cvtUserToDev(double ux, double uy, int *dx, int *dy) { + *dx = (int)(defCTM[0] * ux + defCTM[2] * uy + defCTM[4] + 0.5); + *dy = (int)(defCTM[1] * ux + defCTM[3] * uy + defCTM[5] + 0.5); +} + +void OutputDev::updateAll(GfxState *state) { + updateLineDash(state); + updateFlatness(state); + updateLineJoin(state); + updateLineCap(state); + updateMiterLimit(state); + updateLineWidth(state); + updateFillColor(state); + updateStrokeColor(state); + updateFont(state); +} + +GBool OutputDev::beginType3Char(GfxState */*state*/, + CharCode /*code*/, Unicode */*u*/, int /*uLen*/) { + return gFalse; +} + +void OutputDev::drawImageMask(GfxState */*state*/, Object */*ref*/, + Stream *str, int width, int height, GBool /*invert*/, + GBool inlineImg) { + int i, j; + + if (inlineImg) { + str->reset(); + j = height * ((width + 7) / 8); + for (i = 0; i < j; ++i) + str->getChar(); + str->close(); + } +} + +void OutputDev::drawImage(GfxState */*state*/, Object */*ref*/, Stream *str, + int width, int height, GfxImageColorMap *colorMap, + int */*maskColors*/, GBool inlineImg) { + int i, j; + + if (inlineImg) { + str->reset(); + j = height * ((width * colorMap->getNumPixelComps() * + colorMap->getBits() + 7) / 8); + for (i = 0; i < j; ++i) + str->getChar(); + str->close(); + } +} + +#ifdef OPI_SUPPORT +void OutputDev::opiBegin(GfxState */*state*/, Dict */*opiDict*/) { +} + +void OutputDev::opiEnd(GfxState */*state*/, Dict */*opiDict*/) { +} +#endif |