Created attachment 137056 [details]
I am writing a small utility to manipulate PDF files. It loads input files, let the user delete, duplicate or reorder pages and then calls poppler_page_render_for_printing in the desired output order, using a cairo_pdf_surface. It worked fine until testing with certain scanned PDF, where it outputs the same page each time.
I'll attach a C test program (compile with gcc test.c `pkg-config --cflags --libs poppler-glib cairo gobject-2.0 gio-2.0`) and two input PDF (zma_001.pdf and zma_002.pdf). Called as "./a.out zma_001.pdf zma_002.pdf output.pdf" is expected to create output.pdf with both input pages concatenated, but the first page appears twice (but clipped to the second page's dimensions).
The expected output is generated when using poppler_page_render instead of poppler_page_render_for_printing but this makes bigger files (maybe resamples the images?).
Created attachment 137057 [details]
input file 1
Created attachment 137058 [details]
input file 2
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.