Fedora Account System
Red Hat Associate
Red Hat Customer
Since upgrading from F14 to F15, PDFShuffler displays only black squares when importing PDF documents. PDF page contents are not visible. pdfshuffler.noarch 0:0.5.1-1.fc15
same for me. I didn't use it in F14 but I'm using F15 rc3 and pdfshuffler-0.5.1-1.fc15.noarch tried with some pdf documents and I only see a black square for all of them... FWIW I can instead open without any problem them in evince, for example
ping?
Created attachment 501501 [details] screen shot showing black boxes instead of PDF content
Here is the error: Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib64/python2.7/threading.py", line 530, in __bootstrap_inner self.run() File "/usr/bin/pdfshuffler", line 964, in run thumbnail = self.load_pdf_thumbnail(pdfdoc, npage, angle, crop) File "/usr/bin/pdfshuffler", line 1010, in load_pdf_thumbnail pixbuf.fill(0xffffffff) NameError: global name 'pixbuf' is not defined
Upstream bug: https://sourceforge.net/tracker/?func=detail&aid=3293749&group_id=235357&atid=1095819
The line 1010 is in exception branch, so does not cause the error with black boxes. Change pixbuf.fill to thumbnail.fill eliminates the error "NameError: global name 'pixbuf' is not defined" and blocks turn to white. The cause of the "black" boxes is the line 987 "page.render_to_pixbuf(0,0,pix_w,pix_h,self.scale,0,thumbnail)" in which an exception occurs. I've read there are some changes in poppler's API at 0.16 version. Have those changes reflected in pypoppler 0.12.1?
Seems that current pypoppler is broken. I added some debug prints in exception branch of function "load_pdf_thumbnail" in pdfshuffler. Running line 987: page.render_to_pixbuf(0,0,pix_w,pix_h,self.scale,0,thumbnail) I've got the exception: <type 'exceptions.TypeError'> Poppler.Page.render_to_pixbuf() takes at most 6 arguments (7 given) It is a strange, because poppler C function takes SEVEN arguments. Look at http://pkgs.fedoraproject.org/gitweb/?p=pypoppler.git;a=blob;f=76_75.diff;h=3aa6716d6812cc1c0d314649e45a8953c9608dc5;hb=a5019313241294a006ff5d42bfe1be626a290ab2 ([pypoppler.git] / 76_75.diff). It is a patch for poppler.override. There are only six arguments in lines 15 and 21 are extracted from the python function line. The seventh argument - the pixbuf pointer - is omitted and assigned to NULL (line 19). If I try to call thumbnail = page.render_to_pixbuf(0,0,pix_w,pix_h,self.scale,0) I've got the exception: (pdfshuffler:7230): Poppler-CRITICAL **: void poppler_page_render_to_pixbuf(PopplerPage*, int, int, int, int, double, int, GdkPixbuf*): assertion `pixbuf != NULL' failed So, the patch 76_75.diff from pypoppler.git has to be revised!
I've rebuilt pypoppler without 76_75.diff and pdfshuffler starts work as expected. What are we waiting for?
Created attachment 512072 [details] Spec file to rebuild pypoppler for pdfshuffler
Thanks
pypoppler-0.12.1-12.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/pypoppler-0.12.1-12.fc15
Package pypoppler-0.12.1-12.fc15: * should fix your issue, * was pushed to the Fedora 15 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing pypoppler-0.12.1-12.fc15' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/pypoppler-0.12.1-12.fc15 then log in and leave karma (feedback).
pypoppler-0.12.1-12.fc15 has been pushed to the Fedora 15 stable repository. If problems still persist, please make note of it in this bug report.
Reopened as Bug 769732 - Bug is now on Fedora 16