From c68d593d8ce7b1bc3a4976cf0247a226f84e1230 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Wed, 24 Oct 2012 22:19:59 +0800 Subject: [PATCH 1/5] .. --- src/include/pdf2htmlEX-config.h | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 src/include/pdf2htmlEX-config.h diff --git a/src/include/pdf2htmlEX-config.h b/src/include/pdf2htmlEX-config.h deleted file mode 100644 index 58569cc..0000000 --- a/src/include/pdf2htmlEX-config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * config.h - * Compile time constants - * - * by WangLu - */ - - -#ifndef PDF2HTMLEX_CONFIG_H__ -#define PDF2HTMLEX_CONFIG_H__ - -#include - -#define HAVE_CAIRO 0 - -namespace pdf2htmlEX { - -static const std::string PDF2HTMLEX_VERSION = "0.6"; -static const std::string PDF2HTMLEX_PREFIX = "/usr/local"; -static const std::string PDF2HTMLEX_DATA_PATH = "/usr/local""/share/pdf2htmlEX"; - -} // namespace pdf2htmlEX - -#endif //PDF2HTMLEX_CONFIG_H__ From 90fcf4ed08b524ac44d1a8ce74ba0eb629ebad79 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Wed, 24 Oct 2012 22:24:33 +0800 Subject: [PATCH 2/5] fix --fit-width/height --- src/HTMLRenderer/general.cc | 84 ++++++++++++++++++------------------- src/include/HTMLRenderer.h | 2 +- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/HTMLRenderer/general.cc b/src/HTMLRenderer/general.cc index f4f7a60..d4e4dc8 100644 --- a/src/HTMLRenderer/general.cc +++ b/src/HTMLRenderer/general.cc @@ -47,42 +47,6 @@ HTMLRenderer::HTMLRenderer(const Param * param) setErrorCallback(&dummy, nullptr); } - /* - * determine scale factors - */ - { - double zoom = 1.0; - - vector zoom_factors; - - if(_is_positive(param->zoom)) - { - zoom_factors.push_back(param->zoom); - } - - if(_is_positive(param->fit_width)) - { - zoom_factors.push_back((param->fit_width) / preprocessor.get_max_width()); - } - - if(_is_positive(param->fit_height)) - { - zoom_factors.push_back((param->fit_height) / preprocessor.get_max_height()); - } - - if(zoom_factors.empty()) - { - zoom = 1.0; - } - else - { - zoom = *min_element(zoom_factors.begin(), zoom_factors.end()); - } - - text_scale_factor1 = max(zoom, param->font_size_multiplier); - text_scale_factor2 = zoom / text_scale_factor1; - } - ffw_init(param->debug); cur_mapping = new int32_t [0x10000]; cur_mapping2 = new char* [0x100]; @@ -103,10 +67,7 @@ void HTMLRenderer::process(PDFDoc *doc) cur_doc = doc; xref = doc->getXRef(); - cerr << "Preprocessing: "; - preprocessor.process(doc); - - + pre_process(doc); cerr << "Working: "; BackgroundRenderer * bg_renderer = nullptr; @@ -116,8 +77,6 @@ void HTMLRenderer::process(PDFDoc *doc) bg_renderer->startDoc(doc); } - pre_process(); - for(int i = param->first_page; i <= param->last_page ; ++i) { if(param->split_pages) @@ -258,8 +217,47 @@ void HTMLRenderer::endPage() { html_fout << "" << endl; } -void HTMLRenderer::pre_process() +void HTMLRenderer::pre_process(PDFDoc * doc) { + cerr << "Preprocessing: "; + preprocessor.process(doc); + + /* + * determine scale factors + */ + { + double zoom = 1.0; + + vector zoom_factors; + + if(_is_positive(param->zoom)) + { + zoom_factors.push_back(param->zoom); + } + + if(_is_positive(param->fit_width)) + { + zoom_factors.push_back((param->fit_width) / preprocessor.get_max_width()); + } + + if(_is_positive(param->fit_height)) + { + zoom_factors.push_back((param->fit_height) / preprocessor.get_max_height()); + } + + if(zoom_factors.empty()) + { + zoom = 1.0; + } + else + { + zoom = *min_element(zoom_factors.begin(), zoom_factors.end()); + } + + text_scale_factor1 = max(zoom, param->font_size_multiplier); + text_scale_factor2 = zoom / text_scale_factor1; + } + // we may output utf8 characters, so always use binary { /* diff --git a/src/include/HTMLRenderer.h b/src/include/HTMLRenderer.h index 9feb54a..54e7654 100644 --- a/src/include/HTMLRenderer.h +++ b/src/include/HTMLRenderer.h @@ -150,7 +150,7 @@ class HTMLRenderer : public OutputDev //////////////////////////////////////////////////// // misc //////////////////////////////////////////////////// - void pre_process(); + void pre_process(PDFDoc * doc); void post_process(); // set flags From 76df0f4e9784f2321525149e78e0df1a05f81e75 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Wed, 24 Oct 2012 22:30:52 +0800 Subject: [PATCH 3/5] progress indicator --- src/HTMLRenderer/general.cc | 10 ++++++---- src/Preprocessor.cc | 7 +++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/HTMLRenderer/general.cc b/src/HTMLRenderer/general.cc index d4e4dc8..9080e0f 100644 --- a/src/HTMLRenderer/general.cc +++ b/src/HTMLRenderer/general.cc @@ -69,7 +69,6 @@ void HTMLRenderer::process(PDFDoc *doc) pre_process(doc); - cerr << "Working: "; BackgroundRenderer * bg_renderer = nullptr; if(param->process_nontext) { @@ -77,8 +76,11 @@ void HTMLRenderer::process(PDFDoc *doc) bg_renderer->startDoc(doc); } + int page_count = (param->last_page - param->first_page); for(int i = param->first_page; i <= param->last_page ; ++i) { + cerr << "Working: " << (i-param->first_page) << "/" << page_count << '\r' << flush; + if(param->split_pages) { auto page_fn = str_fmt("%s/%s%d.page", param->dest_dir.c_str(), param->output_filename.c_str(), i); @@ -106,9 +108,10 @@ void HTMLRenderer::process(PDFDoc *doc) { html_fout.close(); } - - cerr << "." << flush; } + if(page_count >= 0) + cerr << "Working: " << page_count << "/" << page_count; + cerr << endl; post_process(); @@ -219,7 +222,6 @@ void HTMLRenderer::endPage() { void HTMLRenderer::pre_process(PDFDoc * doc) { - cerr << "Preprocessing: "; preprocessor.process(doc); /* diff --git a/src/Preprocessor.cc b/src/Preprocessor.cc index f96b602..b2a9677 100644 --- a/src/Preprocessor.cc +++ b/src/Preprocessor.cc @@ -41,14 +41,17 @@ Preprocessor::~Preprocessor(void) void Preprocessor::process(PDFDoc * doc) { + int page_count = (param->last_page - param->first_page); for(int i = param->first_page; i <= param->last_page ; ++i) { + cerr << "Preprocessing: " << (i-param->first_page) << "/" << page_count << '\r' << flush; + doc->displayPage(this, i, DEFAULT_DPI, DEFAULT_DPI, 0, true, false, false, nullptr, nullptr, nullptr, nullptr); - - cerr << "." << flush; } + if(page_count >= 0) + cerr << "Preprocessing: " << page_count << "/" << page_count; cerr << endl; } From 9af57035e73d399cf537321f4081b4fc54a2dc47 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Sat, 27 Oct 2012 22:30:26 +0800 Subject: [PATCH 4/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0a9e10..4e5cd89 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# pdf2html**EX** +# pdf2htmlEX A beautiful demo is worth a thousand words: From 9f5cd8a0f48f1f290242cea33d42f1d75cd4dfa2 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Thu, 1 Nov 2012 02:00:48 +0800 Subject: [PATCH 5/5] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4e5cd89..ad25446 100644 --- a/README.md +++ b/README.md @@ -149,11 +149,12 @@ pdf2htmlEX is inspired by the following projects: ## Contact -* Lu Wang - * Suggestions and questions are **welcome**. - * Please read [**FAQ**](https://github.com/coolwanglu/pdf2htmlEX/wiki/FAQ) before sending an email to me. Or your message might be ignored. +* Mailing list + * Please read [**FAQ**](https://github.com/coolwanglu/pdf2htmlEX/wiki/FAQ) before sending emails. Or your message might be ignored. * Please use the **latest master branch**. - * Expect me to be much more user-friendly than pdf2htmlEX. + +* Lu Wang + * Please use the mailing list above unless for personal enquiries. * Accepting messages in **Chinese**, **English** or **Japanese**.