From b554fa6573add1c72a18ba04f04cbf97ae98eda1 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 00:00:50 +0000 Subject: [PATCH 1/9] support Travis CI --- .travis.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..31cd008 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,18 @@ +language: cpp +compiler: gcc +before_install: + - sudo apt-get update -qq + - sudo apt-get install -qq libfontforge-dev libopenjpeg-dev libspiro-dev + - wget http://poppler.freedesktop.org/poppler-0.22.0.tar.gz + - tar -xf poppler-0.22.0.tar.gz + - cd poppler-0.22.0 + - ./configure --enable-xpdf-headers + - make + - sudo make install + - cd .. +before_script: + - cmake . +script: make +branches: + only: + - master \ No newline at end of file From a225ea3e13d3e3525106dd816e38f7aaffbc54b5 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 00:53:48 +0000 Subject: [PATCH 2/9] look for OS X Homebrew gettext --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6db0dc5..3fa6c52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ else() include_directories(${FONTFORGE_INCLUDE_DIRS}) # MacOSX gettext is in /opt/local/include - strange if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - find_path(GETTEXT_INCLUDE_PATH libintl.h) + find_path(GETTEXT_INCLUDE_PATH libintl.h HINTS "/usr/local/opt/gettext/include") # homebrew if(GETTEXT_INCLUDE_PATH) include_directories(${GETTEXT_INCLUDE_PATH}) else() From 88467667a224fc03713cb8be794695179bd81501 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 00:56:49 +0000 Subject: [PATCH 3/9] flag to override DRM --- src/Param.h | 1 + src/pdf2htmlEX.cc | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Param.h b/src/Param.h index 5f9a7d3..ae80ba7 100644 --- a/src/Param.h +++ b/src/Param.h @@ -18,6 +18,7 @@ struct Param // PDF stuff std::string owner_password, user_password; std::string input_filename, output_filename; + bool no_drm; // path std::string dest_dir, tmp_dir, data_dir; diff --git a/src/pdf2htmlEX.cc b/src/pdf2htmlEX.cc index af1df9a..8d60016 100644 --- a/src/pdf2htmlEX.cc +++ b/src/pdf2htmlEX.cc @@ -64,6 +64,7 @@ void parse_options (int argc, char **argv) .add("owner-password,o", ¶m.owner_password, "", "owner password (for encrypted files)", nullptr, true) .add("user-password,u", ¶m.user_password, "", "user password (for encrypted files)", nullptr, true) + .add("no-drm", ¶m.no_drm, false, "override document DRM settings") .add("dest-dir", ¶m.dest_dir, ".", "specify destination directory") .add("data-dir", ¶m.data_dir, PDF2HTMLEX_DATA_PATH, "specify data directory") @@ -192,7 +193,10 @@ int main(int argc, char **argv) // check for copy permission if (!doc->okToCopy()) { - throw "Copying of text from this document is not allowed."; + if (!param.no_drm) { + throw "Copying of text from this document is not allowed."; + } + cerr << "Document has copy-protection bit set." << endl; } param.first_page = min(max(param.first_page, 1), doc->getNumPages()); From 30577ee54619ff467bd1528cee89dbc89b927623 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 12:38:44 +0000 Subject: [PATCH 4/9] change no-drm parameter to int, updated manpage --- pdf2htmlEX.1.in | 3 +++ src/Param.h | 2 +- src/pdf2htmlEX.cc | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pdf2htmlEX.1.in b/pdf2htmlEX.1.in index aa9cdbc..3850590 100644 --- a/pdf2htmlEX.1.in +++ b/pdf2htmlEX.1.in @@ -35,6 +35,9 @@ Specify owner password .B -u, --user-password Specify user password .TP +.B --no-drm <0|1> (Default: 0) +Override document DRM settings +.TP .B --dest-dir (Default: .) Specify destination folder .TP diff --git a/src/Param.h b/src/Param.h index ae80ba7..2d22396 100644 --- a/src/Param.h +++ b/src/Param.h @@ -18,7 +18,7 @@ struct Param // PDF stuff std::string owner_password, user_password; std::string input_filename, output_filename; - bool no_drm; + int no_drm; // path std::string dest_dir, tmp_dir, data_dir; diff --git a/src/pdf2htmlEX.cc b/src/pdf2htmlEX.cc index 8d60016..94a4e1d 100644 --- a/src/pdf2htmlEX.cc +++ b/src/pdf2htmlEX.cc @@ -64,7 +64,7 @@ void parse_options (int argc, char **argv) .add("owner-password,o", ¶m.owner_password, "", "owner password (for encrypted files)", nullptr, true) .add("user-password,u", ¶m.user_password, "", "user password (for encrypted files)", nullptr, true) - .add("no-drm", ¶m.no_drm, false, "override document DRM settings") + .add("no-drm", ¶m.no_drm, 0, "override document DRM settings") .add("dest-dir", ¶m.dest_dir, ".", "specify destination directory") .add("data-dir", ¶m.data_dir, PDF2HTMLEX_DATA_PATH, "specify data directory") @@ -193,7 +193,7 @@ int main(int argc, char **argv) // check for copy permission if (!doc->okToCopy()) { - if (!param.no_drm) { + if (param.no_drm == 0) { throw "Copying of text from this document is not allowed."; } cerr << "Document has copy-protection bit set." << endl; From 723a7cfebb1f271e800ddb9d3250f3143e123a1e Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 12:54:40 +0000 Subject: [PATCH 5/9] Travis CI: using PPA for poppler --- .travis.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 31cd008..d8a52c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,15 @@ language: cpp compiler: gcc before_install: + - sudo add-apt-repository ppa:coolwanglu/pdf2htmlex - sudo apt-get update -qq - - sudo apt-get install -qq libfontforge-dev libopenjpeg-dev libspiro-dev - - wget http://poppler.freedesktop.org/poppler-0.22.0.tar.gz - - tar -xf poppler-0.22.0.tar.gz - - cd poppler-0.22.0 - - ./configure --enable-xpdf-headers + - sudo apt-get install -qq libpoppler-dev libfontforge-dev libspiro-dev +before_script: + - cmake . +script: - make - sudo make install - - cd .. -before_script: - - cmake . -script: make + - pdf2htmlex -v branches: only: - - master \ No newline at end of file + - master From 60f1d51688dfb388a78dc03145a29564d46738a6 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 12:58:58 +0000 Subject: [PATCH 6/9] Travis CI: --yes PPA for poppler --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d8a52c6..84dd736 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: cpp compiler: gcc before_install: - - sudo add-apt-repository ppa:coolwanglu/pdf2htmlex + - sudo add-apt-repository ppa:coolwanglu/pdf2htmlex --yes - sudo apt-get update -qq - sudo apt-get install -qq libpoppler-dev libfontforge-dev libspiro-dev before_script: From 91d87d3d14a6bdee64b1fc33a919ca8e48099fc3 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 13:02:57 +0000 Subject: [PATCH 7/9] Travis CI: print version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 84dd736..04fe0f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: script: - make - sudo make install - - pdf2htmlex -v + - /usr/local/bin/pdf2htmlEX -v branches: only: - master From 851f3872a1e67bf03b09cbed0f9f641d3a3fb602 Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 13:11:27 +0000 Subject: [PATCH 8/9] Travis CI status image in README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f7e60d..ce7cbbf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# pdf2htmlEX +# pdf2htmlEX + +[![Build Status](https://secure.travis-ci.org/coolwanglu/pdf2htmlEX.png)](http://travis-ci.org/coolwanglu/pdf2htmlEX) A beautiful demo is worth a thousand words: From f3d8b8a954c500443e7d067da3cbaf37f23c529d Mon Sep 17 00:00:00 2001 From: John Hewson Date: Fri, 25 Jan 2013 13:13:27 +0000 Subject: [PATCH 9/9] make -v flag exit with success --- src/pdf2htmlEX.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pdf2htmlEX.cc b/src/pdf2htmlEX.cc index 94a4e1d..162ffea 100644 --- a/src/pdf2htmlEX.cc +++ b/src/pdf2htmlEX.cc @@ -53,7 +53,7 @@ void show_version_and_exit(const char * dummy = nullptr) cerr << "Libraries: "; cerr << "poppler " << POPPLER_VERSION << ", "; cerr << "libfontforge " << ffw_get_version() << endl; - exit(EXIT_FAILURE); + exit(EXIT_SUCCESS); } void parse_options (int argc, char **argv)