Add context to file load failures in pdfium_test.
authorDan Sinclair <dsinclair@chromium.org>
Tue, 27 Oct 2015 17:02:59 +0000 (13:02 -0400)
committerDan Sinclair <dsinclair@chromium.org>
Tue, 27 Oct 2015 17:02:59 +0000 (13:02 -0400)
Currently if pdfium_test fails to load the document it just says it failed. This
CL adds some extra context by looking at the error set by the load and reporting
it to the user.

R=tsepez@chromium.org

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

samples/pdfium_test.cc

index 66dd3f2..0a1693a 100644 (file)
@@ -390,7 +390,35 @@ void RenderPdf(const std::string& name, const char* pBuf, size_t len,
   }
 
   if (!doc) {
-    fprintf(stderr, "Load pdf docs unsuccessful.\n");
+    unsigned long err = FPDF_GetLastError();
+    fprintf(stderr, "Load pdf docs unsuccessful: ");
+    switch (err) {
+      case FPDF_ERR_SUCCESS:
+        fprintf(stderr, "Success");
+        break;
+      case FPDF_ERR_UNKNOWN:
+        fprintf(stderr, "Unknown error");
+        break;
+      case FPDF_ERR_FILE:
+        fprintf(stderr, "File not found or could not be opened");
+        break;
+      case FPDF_ERR_FORMAT:
+        fprintf(stderr, "File not in PDF format or corrupted");
+        break;
+      case FPDF_ERR_PASSWORD:
+        fprintf(stderr, "Password required or incorrect password");
+        break;
+      case FPDF_ERR_SECURITY:
+        fprintf(stderr, "Unsupported security scheme");
+        break;
+      case FPDF_ERR_PAGE:
+        fprintf(stderr, "Page not found or content error");
+        break;
+      default:
+        fprintf(stderr, "Unknown error %ld", err);
+    }
+    fprintf(stderr, ".\n");
+
     FPDFAvail_Destroy(pdf_avail);
     return;
   }