From 9311163b564785a3a3ccdcb09bd3b7d0b2976d1a Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Thu, 13 Aug 2015 11:52:45 -0700 Subject: Allow external font-path configuration from pdfium_test. R=thestig@chromium.org Committed: https://pdfium.googlesource.com/pdfium/+/d8b5e73d8609b74e6a995ee1768d20d47bd4b089 Review URL: https://codereview.chromium.org/1268323004 . --- samples/pdfium_test.cc | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'samples/pdfium_test.cc') diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc index 0d76b63f26..5a171c3933 100644 --- a/samples/pdfium_test.cc +++ b/samples/pdfium_test.cc @@ -46,6 +46,7 @@ struct Options { std::string scale_factor_as_string; std::string exe_path; std::string bin_directory; + std::string font_directory; }; // Reads the entire contents of a file into a newly malloc'd buffer. @@ -347,7 +348,15 @@ bool ParseCommandLine(const std::vector& args, return false; } options->output_format = OUTPUT_PNG; + } else if (cur_arg.size() > 11 && + cur_arg.compare(0, 11, "--font-dir=") == 0) { + if (!options->font_directory.empty()) { + fprintf(stderr, "Duplicate --font-dir argument\n"); + return false; + } + options->font_directory = cur_arg.substr(11); } + #ifdef _WIN32 else if (cur_arg == "--emf") { if (options->output_format != OUTPUT_NONE) { @@ -560,8 +569,9 @@ void RenderPdf(const std::string& name, const char* pBuf, size_t len, static const char usage_string[] = "Usage: pdfium_test [OPTION] [FILE]...\n" - " --bin-dir= - override path to v8 external data\n" - " --scale= - scale output size by number (e.g. 0.5)\n" + " --bin-dir= - override path to v8 external data\n" + " --font-dir= - override path to external fonts\n" + " --scale= - scale output size by number (e.g. 0.5)\n" #ifdef _WIN32 " --bmp - write page images ..bmp\n" " --emf - write page meta files ..emf\n" @@ -599,7 +609,17 @@ int main(int argc, const char* argv[]) { v8::V8::SetSnapshotDataBlob(&snapshot); #endif // V8_USE_EXTERNAL_STARTUP_DATA - FPDF_InitLibrary(); + if (!options.font_directory.empty()) { + const char* path_array[2]; + path_array[0] = options.font_directory.c_str(); + path_array[1] = nullptr; + FPDF_LIBRARY_CONFIG config; + config.version = 1; + config.m_pUserFontPaths = path_array; + FPDF_InitLibraryWithConfig(&config); + } else { + FPDF_InitLibrary(); + } UNSUPPORT_INFO unsuppored_info; memset(&unsuppored_info, '\0', sizeof(unsuppored_info)); -- cgit v1.2.3