|
From: Robert K. <rl...@al...> - 2021-09-22 22:48:05
|
On 9/21/21 12:02 PM, Michael Sweet wrote: > Robert, > >> On Sep 21, 2021, at 10:22 AM, Robert Krawitz <rl...@al...> wrote: >> >> On 9/21/21 10:01 AM, Till Kamppeter wrote: >>> On 21/09/2021 02:28, Robert Krawitz wrote: >>>>> Note that the retro-fit is not perfect, especially due to the restricted number of vendor-specific >>>>> options in PAPPL I could base my Printer Application only on the simplified PPDs and not on the >>>>> expert ones. >>>> >>>> What restriction is this? >>> >>> PAPPL only allows a fixed (hard-coded) maximum number of vendor-specific options (PAPPL_MAX_VENDOR = >>> 32) in addition to the standard IPP options for a printer. The number of options in the expert PPD >>> files is too large for this limit. >> >> What?????? Hard-coded limits in this day and age? I notice that there are a bunch of others. >> >> With this kind of limit, it would seem very difficult to build a proper RIP using PAPPL. > > The limits were explicitly chosen as a balance of capability vs. scaling, specifically for a "proper RIP" that might run on an embedded platform without swap/unlimited memory. I understand the concern about embedded platforms, but some printers (in particular, ESC/P2 printers without printer interleave) require substantial host memory to print, particularly at high resolution. If you're printing at 5760x2880 DPI with an 8-channel printer, that's a lot of memory just to print at all, particularly with a wide page. Is the purpose of this to limit the memory consumed by PAPPL, or to discourage printing applications that are resource-intensive? > See my other message to Till, but in the case of resolution we have two sets of values - raster data that is sent to the "RIP" and raster data that is generated by the RIP for the printer. As for the number of driver/RIP options, the point of IPP Everywhere is to enable printing from all kinds of clients, many of which don't have limited display/memory/CPU resources so we want to have presets/basic capabilities provided by all printers, with the expert stuff available but not required. PAPPL_MAX_VENDOR is 32, which *should* be enough for a native Gutenprint implementation (the PPD implementation doubles up many of the current settings). It's not enough for a full featured Gutenprint implementation; some printers (particularly Epson printers) have a lot of obscure options that we want to make available for people who need them. That doesn't mean they all have to be on one page. With both the CUPS driver and GIMP plugin we provide multiple pages with successive disclosure of complexity, as a former colleague describe it. As it happens, we get requests for even more options than we already provide, and I've said no to some of them. For example, someone recently wanted a way to remap channels; the black channel on his printer was malfunctioning, so he wanted to put that on another channel that he doesn't need. I suggested that he edit the appropriate .xml file. Some users, like the T-shirt printing crowd, really do need a lot of controls to do their printing, and I want to be able to provide those. If that means that users with more conventional printing needs choose to click the Advanced Color Settings 4 tab and find it confusing, I consider that acceptable; just don't use those features, and we've squirreled them out of the way so that you don't have to see them if you don't want to. On the subject of resolutions, many Epson printers use different ink size drop sets for 360, 720x360, and 720 DPI, so the results will be significantly different. Speaking for myself, at any rate, I want to provide this flexibility to users. And I can state that with fine detail line art (such as the 1 degree lines on the old CUPS test page, looks significantly different at 2880x2880 DPI than at 2880x1440 (which does have additional moire issues) or 1440x1440 DPI on those Epson printers with small enough drop sizes that support 2880 DPI in the length dimension. It does take longer to generate and send, but for someone who can use that degree of detail, it matters. And again, an option that someone doesn't need can be ignored; an option that isn't provided can't be done. >>> What I could do is that in the Snap I could build PAPPL with a higher limit (Snaps bring their own >>> libraries). >> >> That's not good. This would make it impossible to distribute the printer app via other mechanisms >> (e. g. RPM). I still really wouldn't like to do it, but vendoring PAPPL into Gutenprint and >> carrying a patch to eliminate the limits would at least be somewhat portable. If that broke the >> network protocol that wouldn't do, but then a snap would have the same problem. > > Please don't. Mini-XML as embedded in Gutenprint is hopelessly out of date, but at least the security exposure is limited. PAPPL provides network print service and web interfaces and is a much bigger target. That certainly isn't something I want to do, for those reasons and more. But the suggestion of some kind of web application to generate bundles of settings is extremely complicated itself. I'm not sure what a Gutenprint-specific web UI that allows people to tweak those knobs and create presets would mean, but that would seem to only increase complexity over having just one application. Where would the web UI back end run? If it's on the local system, that suggests that a server has to be running there, which makes for its own exposure. We don't have the resources to support a cloud infrastructure, and it creates additional dependencies (active internet connection that can reach a service) to boot. |