From d6d36b6ced682318b47d489bfb7ba56a1db382de Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 27 Sep 2009 20:59:16 +0000 Subject: C linearization example git-svn-id: svn+q:///qpdf/trunk@739 71b93d88-0707-0410-a8cf-f5a4172ac649 --- examples/pdf-linearize.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 examples/pdf-linearize.c (limited to 'examples/pdf-linearize.c') diff --git a/examples/pdf-linearize.c b/examples/pdf-linearize.c new file mode 100644 index 00000000..ca49a4d9 --- /dev/null +++ b/examples/pdf-linearize.c @@ -0,0 +1,74 @@ +/* + * This is an example program to linearize a PDF file using the C API. + */ + +#include +#include +#include +#include + +static char const* whoami = 0; + +static void usage() +{ + fprintf(stderr, "Usage: %s infile infile-password outfile\n", whoami); + exit(2); +} + +int main(int argc, char* argv[]) +{ + char* infile = argv[1]; + char* password = argv[2]; + char* outfile = argv[3]; + qpdf_data qpdf = qpdf_init(); + int warnings = 0; + int errors = 0; + char* p = 0; + + if ((p = strrchr(argv[0], '/')) != NULL) + { + whoami = p + 1; + } + else if ((p = strrchr(argv[0], '\\')) != NULL) + { + whoami = p + 1; + } + else + { + whoami = argv[0]; + } + + if (argc != 4) + { + usage(); + } + + if (((qpdf_read(qpdf, infile, password) & QPDF_ERRORS) == 0) && + ((qpdf_init_write(qpdf, outfile) & QPDF_ERRORS) == 0)) + { + qpdf_set_static_ID(qpdf, QPDF_TRUE); + qpdf_set_linearization(qpdf, QPDF_TRUE); + qpdf_write(qpdf); + } + while (qpdf_more_warnings(qpdf)) + { + warnings = 1; + printf("warning: %s\n", qpdf_next_warning(qpdf)); + } + while (qpdf_more_errors(qpdf)) + { + errors = 1; + printf("error: %s\n", qpdf_next_error(qpdf)); + } + qpdf_cleanup(&qpdf); + if (errors) + { + return 2; + } + else if (warnings) + { + return 3; + } + + return 0; +} -- cgit v1.2.3-54-g00ecf