#include <stdio.h>
#include <memory.h>
#include <assert.h>
-#include "config.h"
#include "BitmapOutputDev.h"
#include "GFXOutputDev.h"
-#include "SplashBitmap.h"
-#include "SplashPattern.h"
-#include "Splash.h"
+
+#ifdef HAVE_POPPLER
+ #include "splash/SplashBitmap.h"
+ #include "splash/SplashPattern.h"
+ #include "splash/Splash.h"
+#else
+ #include "xpdf/config.h"
+ #include "SplashBitmap.h"
+ #include "SplashPattern.h"
+ #include "Splash.h"
+#endif
+
#include "../log.h"
#include "../png.h"
#include "../devices/record.h"
}
}
}
- writePNG(filename, (unsigned char*)b, width, height);
+ png_write(filename, (unsigned char*)b, width, height);
free(b);
}
line[x].a = bitmap->getAlpha(x,y);
}
}
- writePNG(filename, (unsigned char*)data, width, height);
+ png_write(filename, (unsigned char*)data, width, height);
free(data);
}
line[x].a = a;
}
}
- writePNG(filename, (unsigned char*)data, width, height);
+ png_write(filename, (unsigned char*)data, width, height);
free(data);
}
}
}
+GBool BitmapOutputDev::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),
+ void *abortCheckCbkData)
+{
+ this->setPage(page);
+ gfxdev->setPage(page);
+ return gTrue;
+}
-void BitmapOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, double crop_y1, double crop_x2, double crop_y2)
+void BitmapOutputDev::startPage(int pageNum, GfxState *state)
{
+ PDFRectangle *r = this->page->getCropBox();
double x1,y1,x2,y2;
- state->transform(crop_x1,crop_y1,&x1,&y1);
- state->transform(crop_x2,crop_y2,&x2,&y2);
+ state->transform(r->x1,r->y1,&x1,&y1);
+ state->transform(r->x2,r->y2,&x2,&y2);
if(x2<x1) {double x3=x1;x1=x2;x2=x3;}
if(y2<y1) {double y3=y1;y1=y2;y2=y3;}
this->width = (int)(x2-x1);
this->height = (int)(y2-y1);
- rgbdev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
- boolpolydev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
- booltextdev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
- clip0dev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
- clip1dev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
- gfxdev->startPage(pageNum, state, crop_x1, crop_y1, crop_x2, crop_y2);
+ rgbdev->startPage(pageNum, state);
+ boolpolydev->startPage(pageNum, state);
+ booltextdev->startPage(pageNum, state);
+ clip0dev->startPage(pageNum, state);
+ clip1dev->startPage(pageNum, state);
+ gfxdev->startPage(pageNum, state);
boolpolybitmap = boolpolydev->getBitmap();
stalepolybitmap = new SplashBitmap(boolpolybitmap->getWidth(), boolpolybitmap->getHeight(), 1, boolpolybitmap->getMode(), 0);
clip1dev->needNonText();
return rgbdev->needNonText();
}
-/*GBool BitmapOutputDev::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),
- void *abortCheckCbkData)
-{
- return gTrue;
-}*/
void BitmapOutputDev::setDefaultCTM(double *ctm)
{
boolpolydev->setDefaultCTM(ctm);
rgbdev->eoFill(state);
dbg_newdata("eofill");
}
-#if (xpdfMajorVersion*10000 + xpdfMinorVersion*100 + xpdfUpdateVersion) < 30207
-void BitmapOutputDev::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)
-{
- msg("<debug> tilingPatternFill");
- boolpolydev->tilingPatternFill(state, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep);
- checkNewBitmap(UNKNOWN_BOUNDING_BOX);
- rgbdev->tilingPatternFill(state, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep);
- dbg_newdata("tilingpatternfill");
-}
-#else
-void BitmapOutputDev::tilingPatternFill(GfxState *state, Gfx *gfx, Object *str,
+
+POPPLER_TILING_PATERN_RETURN BitmapOutputDev::tilingPatternFill(GfxState *state, POPPLER_TILING_PATERN_GFX Object *str,
int paintType, Dict *resDict,
double *mat, double *bbox,
int x0, int y0, int x1, int y1,
double xStep, double yStep)
{
msg("<debug> tilingPatternFill");
- boolpolydev->tilingPatternFill(state, gfx, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep);
+ boolpolydev->tilingPatternFill(state, POPPLER_TILING_PATERN_GFX_ARG str, paintType, resDict, mat,
+ bbox, x0, y0, x1, y1, xStep, yStep);
checkNewBitmap(UNKNOWN_BOUNDING_BOX);
- rgbdev->tilingPatternFill(state, gfx, str, paintType, resDict, mat, bbox, x0, y0, x1, y1, xStep, yStep);
+ rgbdev->tilingPatternFill(state, POPPLER_TILING_PATERN_GFX_ARG str, paintType, resDict, mat,
+ bbox, x0, y0, x1, y1, xStep, yStep);
dbg_newdata("tilingpatternfill");
-}
+#ifdef HAVE_POPPLER
+ return gTrue;
#endif
+}
GBool BitmapOutputDev::functionShadedFill(GfxState *state, GfxFunctionShading *shading)
{