Valentyna, and anyone else affected, could you attach a sample djvu file and also instructions how you print the djvu file, so that we can reproduce the problem and perhaps improve the patch somewhat? This is especially important as we want to carry on the CUPS filters when CUPS will not use PPD files any more.
As the Ghostscript call you are modifying does not more than counting the pages (there is another one for the actual rasterization) could you also try to modify the patch by not calling cupsRasterInterpretPPD() for extracting the default page size from the PPD and instead, simply insert arbitrary height and width, like "-dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792"? This would allow you to remove the "if (ppd)" and so your fix would also work for using the filter without PPD. Could you try this out? Do you still get fast execution and correct page counts (= filter outputs all pages)? ** Changed in: cups-filters (Ubuntu) Status: Confirmed => Incomplete -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to cups-filters in Ubuntu. https://bugs.launchpad.net/bugs/1920730 Title: gstoraster: Ghostscript runs to long while converting djvu files to Xerox`s 3210 format Status in cups-filters package in Ubuntu: Incomplete Bug description: My OS: Description: Ubuntu 20.04.2 LTS Release: 20.04 Package version: cups-filters version 1.27.4-1 When I try to print djvu files on my Xerox WorkCentre 3210 gstoraster filter, which calls ghostscript inside runs to long while converting djvu files to Xerox`s 3210 format. E.x.: For 155 pages of djvu files, it runs more then 15 minutes. I found a solution by adding -dDEVICEWIDTHPOINTS -dDEVICEHEIGHTPOINTS params to ghostscript command inside gstoraster filter. Now the time of converting the same file is about 30 seconds. I`ve made patch which solves this problem. --- a/filter/gstoraster.c +++ b/filter/gstoraster.c @@ -733,8 +733,17 @@ char output[31] = ""; int pagecount; size_t bytes; - snprintf(gscommand, 65536, "%s -q -dNOPAUSE -dBATCH -sDEVICE=bbox %s 2>&1 | grep -c HiResBoundingBox", - CUPS_GHOSTSCRIPT, filename); + // Ghostscript runs to long while converting djvu files to Xerox`s 3210 format + // Using -dDEVICEWIDTHPOINTS -dDEVICEHEIGHTPOINTS params solves the problem + if (ppd) { + cupsRasterInterpretPPD(&h,ppd,num_options,options,0); + snprintf(gscommand, 65536, "%s -q -dNOPAUSE -dBATCH -dDEVICEWIDTHPOINTS=%d -dDEVICEHEIGHTPOINTS=%d -sDEVICE=bbox %s 2>&1 | grep -c HiResBoundingBox", + CUPS_GHOSTSCRIPT, h.PageSize[0], h.PageSize[1], filename); + } + else { + snprintf(gscommand, 65536, "%s -q -dNOPAUSE -dBATCH -sDEVICE=bbox %s 2>&1 | grep -c HiResBoundingBox", + CUPS_GHOSTSCRIPT, filename); + } FILE *pd = popen(gscommand, "r"); if (!pd) { To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cups-filters/+bug/1920730/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp