files->clear();
int cur_arg = 1;
- if (cur_arg < argc) {
+ for (; cur_arg < argc; ++cur_arg) {
if (strcmp(argv[cur_arg], "--ppm") == 0)
*output_format = OUTPUT_PPM;
#ifdef _WIN32
- if (strcmp(argv[cur_arg], "--emf") == 0)
+ else if (strcmp(argv[cur_arg], "--emf") == 0)
*output_format = OUTPUT_EMF;
- if (strcmp(argv[cur_arg], "--bmp") == 0)
+ else if (strcmp(argv[cur_arg], "--bmp") == 0)
*output_format = OUTPUT_BMP;
#endif
- cur_arg++;
+ else
+ break;
}
- if (cur_arg >= argc)
+ if (cur_arg > 2) // Multiple options.
+ return false;
+
+ if (cur_arg >= argc) // No input files.
return false;
for (int i = cur_arg; i < argc; i++)
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);
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 =
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[]) {
OutputFormat format = OUTPUT_NONE;
std::list<const char*> files;
if (!ParseCommandLine(argc, argv, &format, &files)) {
- printf("Usage: pdfium_test [OPTIONS] [FILE]\n");
+ printf("Usage: pdfium_test [OPTION] [FILE]...\n");
printf("--ppm write page images <pdf-name>.<page-number>.ppm\n");
#ifdef _WIN32
printf("--bmp write page images <pdf-name>.<page-number>.bmp\n");