Created attachment 137056 [details] Test program 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?). Thanks
Created attachment 137057 [details] input file 1
Created attachment 137058 [details] input file 2
Created attachment 137578 [details] [review] derive image surface UNIQUE_ID from its contents In CairoOutputDev::setMimeData we set CAIRO_MIME_TYPE_UNIQUE_ID to "poppler-surface-{ref.gen}-{ref.num}", and the same ref number is likely reused in several files, especially with scanned documents. Set the ID to "poppler-surface-{digest}-{ref.gen}-{ref.num}" to avoid merging unrelated images in the output surface.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/poppler/poppler/issues/371.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.