diff --git a/CMakeLists.txt b/CMakeLists.txt index ffccdd9..324591d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,16 @@ include_directories(${POPPLER_INCLUDE_DIRS}) link_directories(${POPPLER_LIBRARY_DIRS}) set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${POPPLER_LIBRARIES}) +find_path(CAIRO_OUTPUTDEV_INCLUDE_PATH CairoOutputDev.h PATHS + ${POPPLER_INCLUDE_DIRS} NO_DEFAULT_PATH) +if(CAIRO_OUTPUTDEV_INCLUDE_PATH) + message("Found CairoOutputDev.h: ${POPPLER_INCLUDE_DIRS}/CairoOutputDev.h") + set(HAVE_CAIRO 1) +else() + set(HAVE_CAIRO 0) +endif() + + # fontforge starts using pkg-config 'correctly' since 2.0.0 pkg_check_modules(FONTFORGE libfontforge>=2.0.0) if(FONTFORGE_FOUND) @@ -134,7 +144,10 @@ add_executable(pdf2htmlEX src/include/ffw.h src/ffw.c src/include/BackgroundRenderer.h - src/BackgroundRenderer.cc + src/include/SplashBackgroundRenderer.h + src/SplashBackgroundRenderer.cc + src/include/CairoBackgroundRenderer.h + src/CairoBackgroundRenderer.cc src/include/Preprocessor.h src/Preprocessor.cc src/include/util.h diff --git a/src/BackgroundRenderer.cc b/src/SplashBackgroundRenderer.cc similarity index 100% rename from src/BackgroundRenderer.cc rename to src/SplashBackgroundRenderer.cc diff --git a/src/include/CairoBackgroundRenderer.h b/src/include/CairoBackgroundRenderer.h new file mode 100644 index 0000000..dfa47c1 --- /dev/null +++ b/src/include/CairoBackgroundRenderer.h @@ -0,0 +1,37 @@ +/* + * Splash Background renderer + * Render all those things not supported as Image, with Splash + * + * Copyright (C) 2012 Lu Wang + */ + + +#ifndef SPLASH_BACKGROUND_RENDERER_H__ +#define SPLASH_BACKGROUND_RENDERER_H__ + +#include +#include + +namespace pdf2htmlEX { + +// Based on BackgroundRenderer from poppler +class SplashBackgroundRenderer : public SplashOutputDev +{ +public: + static const SplashColor white; + + SplashBackgroundRenderer() + :SplashOutputDev(splashModeRGB8, 4, gFalse, (SplashColorPtr)&white, gTrue, gTrue) + { } + + virtual ~SplashBackgroundRenderer() { } + + 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); +}; + +} + +#endif //SPLASH_BACKGROUND_RENDERER_H__ diff --git a/src/include/SplashBackgroundRenderer.h b/src/include/SplashBackgroundRenderer.h new file mode 100644 index 0000000..119046f --- /dev/null +++ b/src/include/SplashBackgroundRenderer.h @@ -0,0 +1,38 @@ +/* + * Splash Background renderer + * Render all those things not supported as Image, with Splash + * + * by WangLu + * 2012.08.06 + */ + + +#ifndef BACKGROUND_RENDERER_H__ +#define BACKGROUND_RENDERER_H__ + +#include +#include + +namespace pdf2htmlEX { + +// Based on BackgroundRenderer from poppler +class SplashBackgroundRenderer : public SplashOutputDev +{ +public: + SplashBackgroundRenderer() + { + SplashColor color; + color[0] = color[1] = color[2] = 255; + SplashOutputDev(splashModeRGB8, 4, gFlase, color, gTrue, gTrue)` + } + virtual ~BackgroundRenderer() { } + + 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); +}; + +} + +#endif //BACKGROUND_RENDERER_H__