Do not Initialize v8 in fpdfsdk, since this has been done in xfa
[pdfium.git] / samples / pdfium_test.cc
index 72c8c5d..a9904ab 100644 (file)
@@ -290,6 +290,7 @@ void RenderPdf(const char* name, const char* pBuf, size_t len,
   (void) FPDFAvail_IsFormAvail(pdf_avail, &hints);
 
   FPDF_FORMHANDLE form = FPDFDOC_InitFormFillEnviroument(doc, &form_callbacks);
+  FPDF_LoadXFA(doc);
   FPDF_SetFormFieldHighlightColor(form, 0, 0xFFE4DD);
   FPDF_SetFormFieldHighlightAlpha(form, 100);
 
@@ -304,8 +305,14 @@ void RenderPdf(const char* name, const char* pBuf, size_t len,
   FORM_DoDocumentJSAction(form);
   FORM_DoDocumentOpenAction(form);
 
+  size_t rendered_pages = 0;
+  size_t bad_pages = 0;
   for (int i = 0; i < page_count; ++i) {
     FPDF_PAGE page = FPDF_LoadPage(doc, i);
+    if (!page) {
+        bad_pages ++;
+        continue;
+    }
     FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page);
     FORM_OnAfterLoadPage(page, form);
     FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_OPEN);
@@ -316,6 +323,8 @@ void RenderPdf(const char* name, const char* pBuf, size_t len,
     FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF);
 
     FPDF_RenderPageBitmap(bitmap, page, 0, 0, width, height, 0, 0);
+    rendered_pages ++;
+
     FPDF_FFLDraw(form, bitmap, page, 0, 0, width, height, 0, 0);
     int stride = FPDFBitmap_GetStride(bitmap);
     const char* buffer =
@@ -351,7 +360,8 @@ void RenderPdf(const char* name, const char* pBuf, size_t len,
   FPDF_CloseDocument(doc);
   FPDFAvail_Destroy(pdf_avail);
 
-  printf("Loaded, parsed and rendered %d pages.\n", page_count);
+  printf("Loaded, parsed and rendered %zu pages.\n", rendered_pages);
+  printf("Skipped %zu bad pages.\n", bad_pages);
 }
 
 int main(int argc, const char* argv[]) {