1
0
mirror of https://github.com/pdf2htmlEX/pdf2htmlEX.git synced 2024-07-07 18:30:34 +00:00

Some coding style improvements

This commit is contained in:
Duan Yao 2014-06-11 21:59:50 +08:00
parent 0586c88d26
commit edb0ddacea
3 changed files with 24 additions and 13 deletions

View File

@ -20,9 +20,18 @@ namespace pdf2htmlEX {
BackgroundRenderer * BackgroundRenderer::getBackgroundRenderer(const std::string & format, HTMLRenderer * html_renderer, const Param & param) BackgroundRenderer * BackgroundRenderer::getBackgroundRenderer(const std::string & format, HTMLRenderer * html_renderer, const Param & param)
{ {
if (format == "png" || format == "jpg") #ifdef ENABLE_LIBPNG
if(format == "png")
{
return new SplashBackgroundRenderer(format, html_renderer, param); return new SplashBackgroundRenderer(format, html_renderer, param);
}
#endif
#ifdef ENABLE_LIBJPEG
if(format == "jpg")
{
return new SplashBackgroundRenderer(format, html_renderer, param);
}
#endif
#if ENABLE_SVG #if ENABLE_SVG
if (format == "svg") if (format == "svg")
{ {

View File

@ -19,7 +19,11 @@
namespace pdf2htmlEX { namespace pdf2htmlEX {
using namespace std; using std::string;
using std::ifstream;
using std::ofstream;
using std::vector;
using std::unordered_map;
CairoBackgroundRenderer::CairoBackgroundRenderer(HTMLRenderer * html_renderer, const Param & param) CairoBackgroundRenderer::CairoBackgroundRenderer(HTMLRenderer * html_renderer, const Param & param)
: CairoOutputDev() : CairoOutputDev()
@ -30,10 +34,10 @@ CairoBackgroundRenderer::CairoBackgroundRenderer(HTMLRenderer * html_renderer, c
CairoBackgroundRenderer::~CairoBackgroundRenderer() CairoBackgroundRenderer::~CairoBackgroundRenderer()
{ {
for(auto i = bitmaps_ref_count.begin(); i != bitmaps_ref_count.end(); ++i) for(auto itr = bitmaps_ref_count.begin(); itr != bitmaps_ref_count.end(); ++itr)
{ {
if (i->second == 0) if (itr->second == 0)
html_renderer->tmp_files.add(this->get_bitmap_path(i->first)); html_renderer->tmp_files.add(this->get_bitmap_path(itr->first));
} }
} }
@ -182,8 +186,6 @@ void CairoBackgroundRenderer::embed_image(int pageno)
f_page << "\"/>"; f_page << "\"/>";
} }
// use object number as bitmap file name, without pageno prefix,
// because a bitmap may be shared by multiple pages.
const char* CairoBackgroundRenderer::get_bitmap_path(int id) const char* CairoBackgroundRenderer::get_bitmap_path(int id)
{ {
return html_renderer->str_fmt("%s/%d.jpg", param.dest_dir.c_str(), id); return html_renderer->str_fmt("%s/%d.jpg", param.dest_dir.c_str(), id);
@ -208,10 +210,10 @@ void CairoBackgroundRenderer::setMimeData(Stream *str, Object *ref, cairo_surfac
int imgId = ref->getRef().num; int imgId = ref->getRef().num;
auto uri = strdup((char*) html_renderer->str_fmt("%d.jpg", imgId)); auto uri = strdup((char*) html_renderer->str_fmt("%d.jpg", imgId));
auto st = cairo_surface_set_mime_data(image, CAIRO_MIME_TYPE_URI, auto st = cairo_surface_set_mime_data(image, CAIRO_MIME_TYPE_URI,
(unsigned char*) uri, strlen(uri), gfree, uri); (unsigned char*) uri, strlen(uri), free, uri);
if (st) if (st)
{ {
gfree(uri); free(uri);
return; return;
} }
bitmaps_in_current_page.push_back(imgId); bitmaps_in_current_page.push_back(imgId);
@ -228,7 +230,7 @@ void CairoBackgroundRenderer::setMimeData(Stream *str, Object *ref, cairo_surfac
string path = get_bitmap_path(imgId); string path = get_bitmap_path(imgId);
ofstream imgfile(path, ofstream::binary); ofstream imgfile(path, ofstream::binary);
imgfile.write(strBuffer, len); imgfile.write(strBuffer, len);
gfree(strBuffer); free(strBuffer);
} }
} }

View File

@ -12,7 +12,7 @@
#include <CairoOutputDev.h> #include <CairoOutputDev.h>
#include <cairo.h> #include <cairo.h>
#include <cairo-svg.h> #include <cairo-svg.h>
#include <map> #include <unordered_map>
#include <vector> #include <vector>
#include "pdf2htmlEX-config.h" #include "pdf2htmlEX-config.h"
@ -57,7 +57,7 @@ private:
const char* get_bitmap_path(int id); const char* get_bitmap_path(int id);
// map<id_of_bitmap_stream, usage_count_in_all_svgs> // map<id_of_bitmap_stream, usage_count_in_all_svgs>
// note: if a svg bg fallbacks to bitmap bg, its bitmaps are not taken into account. // note: if a svg bg fallbacks to bitmap bg, its bitmaps are not taken into account.
std::map<int, int> bitmaps_ref_count; std::unordered_map<int, int> bitmaps_ref_count;
// id of bitmaps' stream used by current page // id of bitmaps' stream used by current page
std::vector<int> bitmaps_in_current_page; std::vector<int> bitmaps_in_current_page;
}; };