diff -up cups-filters-1.0.38/filter/pdftops.c.pdf-landscape cups-filters-1.0.38/filter/pdftops.c --- cups-filters-1.0.38/filter/pdftops.c.pdf-landscape 2013-09-03 15:33:54.000000000 +0100 +++ cups-filters-1.0.38/filter/pdftops.c 2013-09-17 14:58:59.460506475 +0100 @@ -273,6 +273,7 @@ main(int argc, /* I - Number of comm *pstops_options, /* Options for pstops filter */ *pstops_end; /* End of pstops filter option */ const char *cups_serverbin; /* CUPS_SERVERBIN environment variable */ + const char *content_type; /* CONTENT_TYPE environment variable */ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET) struct sigaction action; /* Actions for POSIX signals */ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */ @@ -438,6 +439,7 @@ main(int argc, /* I - Number of comm * Build the command-line for the pdftops or gs filter... */ + content_type = getenv("CONTENT_TYPE"); if (renderer == PDFTOPS) { pdf_argv[0] = (char *)"pdftops"; @@ -630,7 +632,9 @@ main(int argc, /* I - Number of comm * which contain pages of different sizes can be printed correctly */ - pdf_argv[pdf_argc++] = (char *)"-origpagesizes"; + /* Only do this for unprocessed PDF files */ + if (content_type && !strstr (content_type, "/vnd.cups-")) + pdf_argv[pdf_argc++] = (char *)"-origpagesizes"; } #endif /* HAVE_POPPLER_PDFTOPS_WITH_ORIGPAGESIZES */ else if (renderer == ACROREAD) @@ -640,7 +644,9 @@ main(int argc, /* I - Number of comm * which contain pages of different sizes can be printed correctly */ - pdf_argv[pdf_argc++] = (char *)"-choosePaperByPDFPageSize"; + /* Only do this for unprocessed PDF files */ + if (content_type && !strstr (content_type, "/vnd.cups-")) + pdf_argv[pdf_argc++] = (char *)"-choosePaperByPDFPageSize"; } /*