+
+#else /* HAVE_CAIRO_PRINT */
+ if (ctx->format == EV_FILE_FORMAT_PS) {
+ ctx->ps_file = poppler_ps_file_new (pdf_document->document,
+ fc->filename, fc->first_page,
+ fc->last_page - fc->first_page + 1);
+ poppler_ps_file_set_paper_size (ctx->ps_file, fc->paper_width, fc->paper_height);
+ poppler_ps_file_set_duplex (ctx->ps_file, fc->duplex);
+ }
+#endif /* HAVE_CAIRO_PRINT */
+}
+
+static void
+pdf_document_file_exporter_begin_page (EvFileExporter *exporter)
+{
+ PdfDocument *pdf_document = PDF_DOCUMENT (exporter);
+ PdfPrintContext *ctx = pdf_document->print_ctx;
+
+ g_return_if_fail (pdf_document->print_ctx != NULL);
+
+ ctx->pages_printed = 0;
+
+#ifdef HAVE_CAIRO_PRINT
+ if (ctx->paper_width > ctx->paper_height) {
+ if (ctx->format == EV_FILE_FORMAT_PS) {
+ cairo_ps_surface_set_size (cairo_get_target (ctx->cr),
+ ctx->paper_height,
+ ctx->paper_width);
+ } else if (ctx->format == EV_FILE_FORMAT_PDF) {
+ cairo_pdf_surface_set_size (cairo_get_target (ctx->cr),
+ ctx->paper_height,
+ ctx->paper_width);
+ }
+ }
+#endif /* HAVE_CAIRO_PRINT */