Index: samples/pdfium_test.cc |
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc |
index f060eb018bfc1640330da2e03902ca4c78b1ff58..bf10675573ad48d48562320520e6acd34e4d60fc 100644 |
--- a/samples/pdfium_test.cc |
+++ b/samples/pdfium_test.cc |
@@ -48,6 +48,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. |
@@ -348,6 +349,13 @@ bool ParseCommandLine(const std::vector<std::string>& 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") { |
@@ -578,8 +586,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=<path> - override path to v8 external data\n" |
- " --scale=<number> - scale output size by number (e.g. 0.5)\n" |
+ " --bin-dir=<path> - override path to v8 external data\n" |
+ " --font-dir=<path> - override path to external fonts\n" |
+ " --scale=<number> - scale output size by number (e.g. 0.5)\n" |
#ifdef _WIN32 |
" --bmp - write page images <pdf-name>.<page-number>.bmp\n" |
" --emf - write page meta files <pdf-name>.<page-number>.emf\n" |
@@ -612,7 +621,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)); |