Merge to XFA: Allow external font-path configuration from pdfium_test.

TBR=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1268323004 .

(cherry picked from commit 9311163b564785a3a3ccdcb09bd3b7d0b2976d1a)

Review URL: https://codereview.chromium.org/1368513002 .
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index f060eb0..bf10675 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -48,6 +48,7 @@
   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 @@
         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 @@
 
 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 @@
   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));