summaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
Diffstat (limited to 'samples')
-rw-r--r--samples/pdfium_test.cc53
1 files changed, 25 insertions, 28 deletions
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index f244d8a440..da2d1f6977 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -7,7 +7,6 @@
#include <stdlib.h>
#include <string.h>
-#include <list>
#include <sstream>
#include <string>
#include <utility>
@@ -95,10 +94,10 @@ static void WritePpm(const char* pdf_name, int num, const void* buffer_void,
fprintf(fp, "P6\n# PDF test render\n%d %d\n255\n", width, height);
// Source data is B, G, R, unused.
// Dest data is R, G, B.
- char* result = new char[out_len];
+ std::vector<char> result(out_len);
for (int h = 0; h < height; ++h) {
const char* src_line = buffer + (stride * h);
- char* dest_line = result + (width * h * 3);
+ char* dest_line = result.data() + (width * h * 3);
for (int w = 0; w < width; ++w) {
// R
dest_line[w * 3] = src_line[(w * 4) + 2];
@@ -108,8 +107,7 @@ static void WritePpm(const char* pdf_name, int num, const void* buffer_void,
dest_line[(w * 3) + 2] = src_line[w * 4];
}
}
- fwrite(result, out_len, 1, fp);
- delete[] result;
+ fwrite(result.data(), out_len, 1, fp);
fclose(fp);
}
@@ -362,10 +360,11 @@ void ExampleUnsupportedHandler(UNSUPPORT_INFO*, int type) {
}
bool ParseCommandLine(const std::vector<std::string>& args,
- Options* options, std::list<std::string>* files) {
- if (args.empty()) {
+ Options* options,
+ std::vector<std::string>* files) {
+ if (args.empty())
return false;
- }
+
options->exe_path = args[0];
size_t cur_idx = 1;
for (; cur_idx < args.size(); ++cur_idx) {
@@ -447,9 +446,9 @@ bool ParseCommandLine(const std::vector<std::string>& args,
break;
}
}
- for (size_t i = cur_idx; i < args.size(); i++) {
+ for (size_t i = cur_idx; i < args.size(); i++)
files->push_back(args[i]);
- }
+
return true;
}
@@ -528,9 +527,9 @@ bool RenderPage(const std::string& name,
const Options& options,
const std::string& events) {
FPDF_PAGE page = FPDF_LoadPage(doc, page_index);
- if (!page) {
+ if (!page)
return false;
- }
+
FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page);
FORM_OnAfterLoadPage(page, form);
FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_OPEN);
@@ -539,9 +538,9 @@ bool RenderPage(const std::string& name,
SendPageEvents(form, page, events);
double scale = 1.0;
- if (!options.scale_factor_as_string.empty()) {
+ if (!options.scale_factor_as_string.empty())
std::stringstream(options.scale_factor_as_string) >> scale;
- }
+
int width = static_cast<int>(FPDF_GetPageWidth(page) * scale);
int height = static_cast<int>(FPDF_GetPageHeight(page) * scale);
int alpha = FPDFPage_HasTransparency(page) ? 1 : 0;
@@ -648,9 +647,9 @@ void RenderPdf(const std::string& name,
if (FPDFAvail_IsLinearized(pdf_avail) == PDF_LINEARIZED) {
doc = FPDFAvail_GetDocument(pdf_avail, nullptr);
if (doc) {
- while (nRet == PDF_DATA_NOTAVAIL) {
+ while (nRet == PDF_DATA_NOTAVAIL)
nRet = FPDFAvail_IsDocAvail(pdf_avail, &hints);
- }
+
if (nRet == PDF_DATA_ERROR) {
fprintf(stderr, "Unknown error in checking if doc was available.\n");
return;
@@ -724,20 +723,19 @@ void RenderPdf(const std::string& name,
for (int i = 0; i < page_count; ++i) {
if (bIsLinearized) {
nRet = PDF_DATA_NOTAVAIL;
- while (nRet == PDF_DATA_NOTAVAIL) {
+ while (nRet == PDF_DATA_NOTAVAIL)
nRet = FPDFAvail_IsPageAvail(pdf_avail, i, &hints);
- }
+
if (nRet == PDF_DATA_ERROR) {
fprintf(stderr, "Unknown error in checking if page %d is available.\n",
i);
return;
}
}
- if (RenderPage(name, doc, form, i, options, events)) {
+ if (RenderPage(name, doc, form, i, options, events))
++rendered_pages;
- } else {
+ else
++bad_pages;
- }
}
FORM_DoDocumentAAction(form, FPDFDOC_AACTION_WC);
@@ -781,19 +779,20 @@ static void ShowConfig() {
printf("%s\n", config.c_str());
}
-static const char usage_string[] =
+static const char kUsageString[] =
"Usage: pdfium_test [OPTION] [FILE]...\n"
" --show-config - print build options and exit\n"
" --send-events - send input described by .evt file\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"
- " --txt - write page text in UTF32-LE <pdf-name>.<page-number>.txt\n"
#ifdef _WIN32
" --bmp - write page images <pdf-name>.<page-number>.bmp\n"
" --emf - write page meta files <pdf-name>.<page-number>.emf\n"
#endif // _WIN32
+ " --txt - write page text in UTF32-LE <pdf-name>.<page-number>.txt\n"
" --png - write page images <pdf-name>.<page-number>.png\n"
+ " --ppm - write page images <pdf-name>.<page-number>.ppm\n"
#ifdef PDF_ENABLE_SKIA
" --skp - write page images <pdf-name>.<page-number>.skp\n"
#endif
@@ -802,9 +801,9 @@ static const char usage_string[] =
int main(int argc, const char* argv[]) {
std::vector<std::string> args(argv, argv + argc);
Options options;
- std::list<std::string> files;
+ std::vector<std::string> files;
if (!ParseCommandLine(args, &options, &files)) {
- fprintf(stderr, "%s", usage_string);
+ fprintf(stderr, "%s", kUsageString);
return 1;
}
@@ -851,9 +850,7 @@ int main(int argc, const char* argv[]) {
FSDK_SetUnSpObjProcessHandler(&unsuppored_info);
- while (!files.empty()) {
- std::string filename = files.front();
- files.pop_front();
+ for (const std::string& filename : files) {
size_t file_length = 0;
std::unique_ptr<char, pdfium::FreeDeleter> file_contents =
GetFileContents(filename.c_str(), &file_length);