You can subscribe to this list here.
2000 |
Jan
(111) |
Feb
(412) |
Mar
(133) |
Apr
(187) |
May
(377) |
Jun
(355) |
Jul
(129) |
Aug
(316) |
Sep
(412) |
Oct
(258) |
Nov
(260) |
Dec
(228) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(291) |
Feb
(497) |
Mar
(341) |
Apr
(105) |
May
(127) |
Jun
(97) |
Jul
(348) |
Aug
(195) |
Sep
(353) |
Oct
(516) |
Nov
(454) |
Dec
(99) |
2002 |
Jan
(125) |
Feb
(232) |
Mar
(222) |
Apr
(160) |
May
(147) |
Jun
(97) |
Jul
(199) |
Aug
(275) |
Sep
(411) |
Oct
(355) |
Nov
(371) |
Dec
(326) |
2003 |
Jan
(314) |
Feb
(181) |
Mar
(166) |
Apr
(90) |
May
(192) |
Jun
(137) |
Jul
(91) |
Aug
(57) |
Sep
(59) |
Oct
(67) |
Nov
(202) |
Dec
(158) |
2004 |
Jan
(67) |
Feb
(81) |
Mar
(142) |
Apr
(124) |
May
(190) |
Jun
(245) |
Jul
(124) |
Aug
(199) |
Sep
(182) |
Oct
(92) |
Nov
(285) |
Dec
(173) |
2005 |
Jan
(111) |
Feb
(74) |
Mar
(90) |
Apr
(275) |
May
(133) |
Jun
(106) |
Jul
(215) |
Aug
(142) |
Sep
(131) |
Oct
(135) |
Nov
(75) |
Dec
(76) |
2006 |
Jan
(173) |
Feb
(96) |
Mar
(127) |
Apr
(226) |
May
(227) |
Jun
(83) |
Jul
(101) |
Aug
(122) |
Sep
(118) |
Oct
(27) |
Nov
(76) |
Dec
(58) |
2007 |
Jan
(204) |
Feb
(137) |
Mar
(115) |
Apr
(50) |
May
(135) |
Jun
(111) |
Jul
(57) |
Aug
(40) |
Sep
(36) |
Oct
(36) |
Nov
(77) |
Dec
(145) |
2008 |
Jan
(159) |
Feb
(52) |
Mar
(77) |
Apr
(59) |
May
(80) |
Jun
(105) |
Jul
(119) |
Aug
(225) |
Sep
(58) |
Oct
(173) |
Nov
(64) |
Dec
(94) |
2009 |
Jan
(61) |
Feb
(13) |
Mar
(70) |
Apr
(115) |
May
(48) |
Jun
(50) |
Jul
(34) |
Aug
(74) |
Sep
(30) |
Oct
(95) |
Nov
(132) |
Dec
(12) |
2010 |
Jan
(40) |
Feb
(22) |
Mar
(10) |
Apr
(5) |
May
(10) |
Jun
(73) |
Jul
(73) |
Aug
(74) |
Sep
(117) |
Oct
(33) |
Nov
(34) |
Dec
(41) |
2011 |
Jan
(42) |
Feb
(38) |
Mar
(60) |
Apr
(6) |
May
(26) |
Jun
(52) |
Jul
(16) |
Aug
(21) |
Sep
(49) |
Oct
(48) |
Nov
(64) |
Dec
(121) |
2012 |
Jan
(112) |
Feb
(81) |
Mar
(92) |
Apr
(37) |
May
(57) |
Jun
(142) |
Jul
(65) |
Aug
(43) |
Sep
(33) |
Oct
(81) |
Nov
(130) |
Dec
(63) |
2013 |
Jan
(63) |
Feb
(32) |
Mar
(80) |
Apr
(48) |
May
(44) |
Jun
(79) |
Jul
(86) |
Aug
(91) |
Sep
(43) |
Oct
(95) |
Nov
(130) |
Dec
(117) |
2014 |
Jan
(283) |
Feb
(206) |
Mar
(90) |
Apr
(57) |
May
(105) |
Jun
(66) |
Jul
(87) |
Aug
(30) |
Sep
(54) |
Oct
(125) |
Nov
(45) |
Dec
(36) |
2015 |
Jan
(58) |
Feb
(51) |
Mar
(59) |
Apr
(75) |
May
(70) |
Jun
(52) |
Jul
(58) |
Aug
(72) |
Sep
(184) |
Oct
(157) |
Nov
(91) |
Dec
(90) |
2016 |
Jan
(89) |
Feb
(61) |
Mar
(57) |
Apr
(86) |
May
(46) |
Jun
(63) |
Jul
(71) |
Aug
(60) |
Sep
(207) |
Oct
(139) |
Nov
(76) |
Dec
(68) |
2017 |
Jan
(112) |
Feb
(91) |
Mar
(138) |
Apr
(79) |
May
(36) |
Jun
(20) |
Jul
(105) |
Aug
(71) |
Sep
(51) |
Oct
(114) |
Nov
(148) |
Dec
(79) |
2018 |
Jan
(118) |
Feb
(107) |
Mar
(111) |
Apr
(127) |
May
(60) |
Jun
(63) |
Jul
(49) |
Aug
(18) |
Sep
(134) |
Oct
(68) |
Nov
(91) |
Dec
(27) |
2019 |
Jan
(41) |
Feb
(63) |
Mar
(37) |
Apr
(42) |
May
(44) |
Jun
(81) |
Jul
(53) |
Aug
(21) |
Sep
(62) |
Oct
(55) |
Nov
(41) |
Dec
(57) |
2020 |
Jan
(14) |
Feb
(29) |
Mar
(33) |
Apr
(20) |
May
(19) |
Jun
(9) |
Jul
(5) |
Aug
(23) |
Sep
(30) |
Oct
(29) |
Nov
(58) |
Dec
(139) |
2021 |
Jan
(62) |
Feb
(117) |
Mar
(13) |
Apr
(17) |
May
(23) |
Jun
(28) |
Jul
(7) |
Aug
(29) |
Sep
(56) |
Oct
(21) |
Nov
(36) |
Dec
(14) |
2022 |
Jan
(10) |
Feb
(28) |
Mar
(18) |
Apr
(19) |
May
(18) |
Jun
(3) |
Jul
(14) |
Aug
(11) |
Sep
(12) |
Oct
(4) |
Nov
|
Dec
(5) |
2023 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2024 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
(51) |
Aug
(31) |
Sep
(10) |
Oct
(14) |
Nov
(12) |
Dec
(14) |
2025 |
Jan
(17) |
Feb
(5) |
Mar
(30) |
Apr
(2) |
May
(4) |
Jun
(9) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael S. <ms...@ms...> - 2021-09-24 01:45:46
|
Robert, > On Sep 23, 2021, at 6:06 PM, Robert Krawitz <rl...@al...> wrote: > > On 9/23/21 5:34 PM, Michael Sweet wrote: >> Robert, >> >>> On Sep 23, 2021, at 7:54 AM, Robert Krawitz <rl...@al...> wrote: >>>> ... >>>> No, but having fixed limits does make memory usage *predictable*. >>> >>> Well, other than that the underlying driver might not have such predictable memory usage. >> >> Well, I can't do anything about the drivers themselves, just PAPPL. :) > > Sure, but what kind of devices are you looking at where even dynamic arrays that for most drivers > won't exceed maybe a dozen elements and even Gutenprint (which isn't designed to run on such > devices) won't exceed a few hundred will blow out memory? Drivers that are complex enough to need > very large numbers of settings aren't likely to run in a very tightly memory constrained environment > anyway. The minimal device I'm targeting has at least 128MB of RAM - sufficient for most consumer printers. > >>> So I could have one set of options for the density settings and so forth, and I'm limited to 30 sets >>> of options (or one set of options for each group of options, such as Basic Printer Options, Basic >>> Color Options, Advanced Color Options 1, and so forth)? Because that's not what it looked like. >> >> The usual way is for one attribute = one value (or set of values). Collections allow you to define more complex values. > > Complex values, not complex settings. That's really not going to be sufficient. Robert, there is more than one way to do a thing. If I look at the 112 Epson Stylus Pro 10000 options, I see a LOT of value/fine-value pairs (not necessary with IPP) and settings that should be grouped in collections. Thus those 112 PPD options map to various standard IPP attributes and *3* vendor attributes: - StpVacuumIntensity -> stp-vacuum-intensity (although it should probably be a media-col member attribute) "stp-output-col (collection)": - StpBandEnhancement -> stp-output-col.stp-band-enhancement - StpBrightness/StpFineBrightness -> stp-output-col.stp-brightness - StpColorCorrection -> stp-output-col.stp-color-correction - StpColorPrecision -> stp-output-col.stp-color-precision - StpContrast/StpFineContrast -> stp-output-col.stp-contrast - StpDitherAlgorithm -> stp-output-col.stp-dither-algorithm - StpImageType -> stp-output-col.stp-image-type - StpPrintingDirection -> stp-output-col.stp-printing-direction - StpQuality -> stp-output-col.stp-print-quality - StpSaturation/StpFineSaturation -> stp-output-col.stp-saturation - StpWeave -> stp-output-col.stp-weave "stp-ink-col (collection)": - StpGCRXxx/StpFineGCRXxx -> stp-ink-col.stp-gcr-xxx - StpInkLimit/StpFineInkLimit -> stp-ink-col.stp-ink-limit - StpInkSet -> stp-ink-col.stp-ink-set - StpInkType -> stp-ink-col.stp-ink-type - StpSubchannelCutoff/StpFineSubchannelCutoff -> stp-ink-col.stp-subchannel-cutoff - StpXxxBalance/StpFineXxxBalance -> stp-ink-col.stp-xxx-balance - StpXxxDensity/StpFineXxxDensity -> stp-ink-col.stp-xxx-density - StpXxxGamma/StpFineXxxGamma -> stp-ink-col.stp-xxx-gamma - StpXxxScale/StpFineXxxScale -> stp-ink-col.stp-xxx-scale - StpXxxTrans/StpFineXxxTrans -> stp-ink-col.stp-xxx-trans - StpXxxValue/StpFineXxxValue -> stp-ink-col.stp-xxx-value >>>> ... >>>> You already have a GTK+ UI, and modern web UI has similar capabilities. >>> >>> I'd just as soon use the existing GTK+ UI rather than have to write a new web application. >> >> Well, that is ultimately your call. > > Is this going to seamlessly provide the extra settings to users? Or will they have to use the web > app to edit something to save as a named setting, but won't be able to change it on the fly? This > sounds very painful for users with sophisticated needs. The web interface (or printer application GUI) is there for the users to test and (hopefully) save presets for the settings they'll use from ordinary apps/devices. You can be sure that most applications will NOT provide the full set of controls for Gutenprint-specific attributes, so it is on you to provide a way for users to access them. You might even have the application pop up a print confirmation/preview window when something is printed. >>> Even a local TCP port (http or https://localhost) has its problems, since it means that something >>> running under a different UID can access it. A lot of browsers strongly discourage use of http >>> these days, and https means getting a certificate. Just a whole lot of hoops to jump through for >>> what looks to me to be dubious benefit. >> >> Well, again PAPPL handles all of this for you, and yes I understand that browsers have totally screwed things up WRT IoT device access - that is something I've been fighting for the last 10 years - but the standards call for web UI because that at least is portable. > > Ugh. Tons and tons of JavaScript or the like. Please, you don't need Javascript to do a web UI. And honestly if you can handle GTK+ you shouldn't have any problems doing HTML forms. ________________________ Michael Sweet |
From: Robert K. <rl...@al...> - 2021-09-23 22:06:32
|
On 9/23/21 5:34 PM, Michael Sweet wrote: > Robert, > >> On Sep 23, 2021, at 7:54 AM, Robert Krawitz <rl...@al...> wrote: >>> ... >>> No, but having fixed limits does make memory usage *predictable*. >> >> Well, other than that the underlying driver might not have such predictable memory usage. > > Well, I can't do anything about the drivers themselves, just PAPPL. :) Sure, but what kind of devices are you looking at where even dynamic arrays that for most drivers won't exceed maybe a dozen elements and even Gutenprint (which isn't designed to run on such devices) won't exceed a few hundred will blow out memory? Drivers that are complex enough to need very large numbers of settings aren't likely to run in a very tightly memory constrained environment anyway. >> So I could have one set of options for the density settings and so forth, and I'm limited to 30 sets >> of options (or one set of options for each group of options, such as Basic Printer Options, Basic >> Color Options, Advanced Color Options 1, and so forth)? Because that's not what it looked like. > > The usual way is for one attribute = one value (or set of values). Collections allow you to define more complex values. Complex values, not complex settings. That's really not going to be sufficient. >>> ... >>> You already have a GTK+ UI, and modern web UI has similar capabilities. >> >> I'd just as soon use the existing GTK+ UI rather than have to write a new web application. > > Well, that is ultimately your call. Is this going to seamlessly provide the extra settings to users? Or will they have to use the web app to edit something to save as a named setting, but won't be able to change it on the fly? This sounds very painful for users with sophisticated needs. >> Even a local TCP port (http or https://localhost) has its problems, since it means that something >> running under a different UID can access it. A lot of browsers strongly discourage use of http >> these days, and https means getting a certificate. Just a whole lot of hoops to jump through for >> what looks to me to be dubious benefit. > > Well, again PAPPL handles all of this for you, and yes I understand that browsers have totally screwed things up WRT IoT device access - that is something I've been fighting for the last 10 years - but the standards call for web UI because that at least is portable. Ugh. Tons and tons of JavaScript or the like. |
From: Michael S. <ms...@ms...> - 2021-09-23 21:34:28
|
Robert, > On Sep 23, 2021, at 7:54 AM, Robert Krawitz <rl...@al...> wrote: >> ... >> No, but having fixed limits does make memory usage *predictable*. > > Well, other than that the underlying driver might not have such predictable memory usage. Well, I can't do anything about the drivers themselves, just PAPPL. :) > ... > So I could have one set of options for the density settings and so forth, and I'm limited to 30 sets > of options (or one set of options for each group of options, such as Basic Printer Options, Basic > Color Options, Advanced Color Options 1, and so forth)? Because that's not what it looked like. The usual way is for one attribute = one value (or set of values). Collections allow you to define more complex values. >> ... >> You already have a GTK+ UI, and modern web UI has similar capabilities. > > I'd just as soon use the existing GTK+ UI rather than have to write a new web application. Well, that is ultimately your call. > Even a local TCP port (http or https://localhost) has its problems, since it means that something > running under a different UID can access it. A lot of browsers strongly discourage use of http > these days, and https means getting a certificate. Just a whole lot of hoops to jump through for > what looks to me to be dubious benefit. Well, again PAPPL handles all of this for you, and yes I understand that browsers have totally screwed things up WRT IoT device access - that is something I've been fighting for the last 10 years - but the standards call for web UI because that at least is portable. >>> 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. >> >> I'm not sure I understand what you're saying? > > I don't understand what the architecture would look like. What exactly would this web UI do? It is there to manage the printer(s) and job(s), print test pages, monitor supply levels, manage ICC color profiles and other resources, and configure defaults/media/etc. > Where would the back end run? The printer application *is* the back end. This is not a cloud-based web server, this is a HTTP/HTTPS service that is hosted by the application courtesy of PAPPL. > The printing application is a normal binary, presenting a UI. A web > application means a server somewhere. It is NOT a "web application" that you would put up on a web server someplace. It is an embedded web server running inside the printer application, and that EWS hosts a (simple) web-based user interface - think the CUPS web interface, but simpler. > Why should there be a web UI in addition to the printing application UI? Because people are going to be using printer applications as classic RIPs, to share printers with their family and co-workers, etc. And the only way to interact with the printer on the network is via IPP or HTTP/HTTPS. >>> Where >>> would the web UI back end run? >> >> It is part of the printer application. IPP runs over HTTP. And a web interface is a required part >> of AirPrint, Mopria, and IPP Everywhere. > > It sounds like this would be separate from the main UI.\ It is a separate component of the same executable. ________________________ Michael Sweet |
From: Till K. <til...@gm...> - 2021-09-23 15:57:14
|
On 23/09/2021 03:45, Robert Krawitz wrote: > > Aye, there's the bottom line. If PAPPL restrictions don't allow us to properly meet the needs of > our user base, then that's just not an option for us. I desperately want to get away from PPD > files; I've never cared for them and I've been ranting off and on about the subject for 20 years > now. But replacing them with something that's actually a lot less capable is a non-starter. We'd > be better off basing it on libgutenprintui2 and properly CUPS-enabling that. > The only restriction which is in the way for us seems to be the number of vendor-specific options. I have simply raised it in the source code of the PAPPL in my Printer Application Snap and now one has access to all options (see my other mail on this list). My Gutenprint Printer Application is ready for testing in the Snap Store. Internally, it uses PPD files, as it is a CUPS-driver-retro-fit type of Printer Application, but in the user experience with it, the PPD files are completely invisible. So it is some working model to try out how a Gutenprint Printer Application based on PAPPL which gives access to all the options looks like. It also does the mapping from standard IPP attributes to appropriate PPD option settings, allowing both sophisticated all-bells-and-whistles printing and printing from restricted clients which only use standard IPP attributes and symmetric resolutions. A native Gutenprint Printer Application would have the same functionality but without the restriction to what PPDs can represent you have much more liberty how to present the options in the web interface. Please test my Gutenprint Printer Application with different printer models and report issues and feature requests, and also post pull requests on https://github.com/OpenPrinting/gutenprint-printer-app/ Till |
From: Iago M. <iag...@gm...> - 2021-09-23 14:41:45
|
Hi, Do you have any plans on supporting Epson L3110? I get it working using L310 driver, but the quality and speed print are so low. Thanks for your help -- Best regards, Iago Machado Carneiro Leite |
From: Till K. <til...@gm...> - 2021-09-23 12:36:55
|
First off, I have made my retro-fitting Gutenprint Printer Application supporting the expert PPDs of Gutenprint now. It uses simplified or expert PPDs depending on how many vendor-specific options (PAPPL_MAX_VENDOR) the installed PAPPL supports. If it is 256 or more, the expert PPDs are used, otherwise the simplified ones. In the snapcraft.yaml for my Snap I modify the PAPPL_MAX_VENDOR in the PAPPL source code to 256 before compiling PAPPL. I have to build PAPPL myself anyway for the Snap, as there is no Ubuntu LTS package of it, I want to always have the newest version, I patch it anyway for string option support. So the Snap as it is in the Snap Store now supports all these options! And for users of devices with small, simple print dialogs (like phones) have the best possible control with standard IPP attributes (which are automatically converted to PPD option settings). Note that on the "Printing Defaults" page of the web interface, the options with names and choices written in all-lowercase (starting after "Resolution") are the Gutenprint-specific options, the ones at the top (names with uppercase first letters) are standard IPP attributes. All PPD options appear in a long list and their settings are supplied to the command lines of called CUPS filters, especially ratertogutenprint. To print a fine-art drawing with 5760x2880 dpi on a printer which uses this resolution you can set this resolution explicitly via the "resolution" Gutenprint option (not the "Resolution" IPP attribute) on the "Printing Defaults" page, or you simply set "quality" to "best", which sets thhe resolution to 5760x2880 dpi, too, you set the "Print Quality" IPP attribute to "High" which sets several options, including "resolution=5760x2880dpi" and "quality=best". The input file should be ideally sent as vector-graphics PDF. The Printer Application has also functionality to upscale and downscale Raster input, so if a client sends 1440x1440 dpi PWG Raster and the print mode is using 5760x2880 dpi, the print data gets upscaled, in a fully streaming process to neither require the full 1440x1440-dpi nor the full 5760x2880-dpi page in memory. See more below. On 23/09/2021 02:51, Robert Krawitz wrote: >> As I understand, the limitations are also done with clients in mind. If you have a low-resource >> client, and your Printer Application reports a 5760x2880 dpi resolution for PWG Raster input, the >> client could have problems rendering this. > > That's absolutely true, but it's not a reason to restrict all clients. > You can always send a job as PDF and select the desired resolution, and Ghostscript renders in that resolution then (see above). > It depends upon what you're doing. Gutenprint does offer quality presets, which vary with the > printer and paper type. For photos, the ideal output resolution depends upon the printer. With the > CcMmYKkk printers with 3-4 pl drops, 1440x720 usually does just fine. With 4 color (or CMYKRB) > printers with 1 pl drops, it needs to be a lot higher, although input resolution doesn't. If you're > printing extremely detailed line art, though, the higher resolution the better. > All options are available now and should behave as under CUPS. And rendering PDF input in high-resolution and up-/down-scaling Apple/PWG Raster is no problem. >> libpappl-retrofit usually reports 3 resolutions for each printer, one for draft, one for normal, and >> one for high quality, selecting the appropriate one when the input data is an image (JPEG, PNG). > > But there are more kinds of outputs than that; there are typically about 6-8 quality presets > (economy draft, draft, normal, high, photo, photo high, and best IIRC). > The Printer Application supports both standard IPP job attributes and detailed settings. If you client allows only standard attributes you can use them, there are reasonable choices of the 6-8 Gutenprint quality levels mapped to the three IPP quality levels. If your client gives full access to all options (or if you change defaults by the Printer Application's web interface) you can yuse the "quality" Gutenprint option and selct from all the 6-8 quality levels. In general, if a Gutenprint option is set to "automatic-selection" (the default) it receives mapping from the print-color-mode, print-quality, and print-content-optimize job IPP attributes, any other choice overrides the mapping. >> If the input is PDF or PostScript, the driver uses anything what it needs, not necessarily one of >> the 3 reported resolutions. So sending a line drawing (vector graphics) in PDF and printing in >> highest possible quality, can make Ghostscript render in 5760x2880 for example. > > Yep. But you don't ever want to send higher resolution to the driver than the printing resolution. > You do not do it actually. The PDF input file is for example a drawing with fine lines, and patterns, all defined as resolution-independent vector graphics. The Printer Application uses the same workflow as CUPS internally, letting GhostScript render with the resolution selected by the driver settings, so no higher resolution than needed (assuming the user does not do unreasonable choices on the "Printing Defaults" page). Photos (JPEG, PNG) you send as-is and the Printer Application converts resolution to what the driver requests, APPLE/PWG Raster gets usually sent in one of the IPP-reported resolutions, but this print format is most probably used by simpler clients and not by clients where you do fine-art editing with Inkscape or so, but here also resolution-re-scaling will take place as needed. > And there's the rub -- it simply isn't going to run well at high quality settings on low spec > clients. A router with 256 MB RAM just is not going to be able to print to an Epson R1800 at high > resolution; the RAM is just insufficient. I doubt whether 32 options or 320 is going to make nearly > as much difference. > Yes, you will not run this Printer Application on a router (is there a router with access to the Snap Store?), but rather on the PC on which you are creating your artwork or on a more powerful server (order of magnitude of a PC). The memory occupation from PAPPL is negligible, so the Snap using the vendor-option-number-enhanced version of PAPPL should be no problem. For distros a PAPPL with dynamic resources would really come in handy. And the dynamic PAPPL would stay small if it runs a small driver (like for label printers). >> You do not need an extra application. You can add web interface pages to the Printer Application. >> See my PostScript Printer Application. It has one extra page for the system (to upload PPD files) >> and one extra page for the printers ("Device Settings", to configure installable accessories). You >> could add one or more pages for the printers to create presets of advanced adjustments, as I have >> already described with more detail in another e-mail. > > Then I don't understand what this "web interface pages" is. > You know the web interface of PAPPL and of my (retro-fitting) Printer Applications, which is pretty much the same. On the main page (http://localhost:8000/) you see the general options on the left and the printers set up on the right. Each button you see leads to a sub-page where you can adjust settings, on teh left for the system (the whole Printer Application), on the right for each printer, for the printer-specific settings. One page I often mention here is the "Printing Defaults" page (a printer-specific one) with all the PPD options for the printer. The Gutenprint Printer Application (the retro-fitting one as it is now) has exactly the pages provided by PAPPL, the PostScript Printer Application has pages added by me, "Add PPD file" on the left (for the system) and "Device Settings" at each printer on the right, for configuring the installable accessories of the printer. These are the web interface pages, and you can add your own ones for the native Gutenprint Printer Application. Simply test my Printer Applications by getting them from the Snap Store. Till |
From: Robert K. <rl...@al...> - 2021-09-23 11:54:39
|
On 9/22/21 9:51 PM, Michael Sweet wrote: > Robert, > >> On Sep 22, 2021, at 6:47 PM, Robert Krawitz <rl...@al... <mailto:rl...@al...>> wrote: >>> ... >>> 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? > > No, but having fixed limits does make memory usage *predictable*. Well, other than that the underlying driver might not have such predictable memory usage. >>> 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. > > Understand that how Gutenprint exposes options in PPD files isn't how it has to expose them over > IPP. More specifically, IPP has collection attributes (think of them as dictionaries) that cam > contain any number of (typically related) member attributes. So just because you need to have 30 PPD > options to describe transfer curves doesn't mean that you have to have 30 IPP attributes. Group the > options in IPP collections, and include a member attribute for named presets for these collections - > that supports stock and custom "easy" settings as well as complete control over a particular > category of options. So I could have one set of options for the density settings and so forth, and I'm limited to 30 sets of options (or one set of options for each group of options, such as Basic Printer Options, Basic Color Options, Advanced Color Options 1, and so forth)? Because that's not what it looked like. > My point is simply that printing resolution != rasterization resolution. And yes you could report > 2880x2880 DPI with the current PAPPL, no problem, but you'll need to upsample to 5760x2880 DPI if > that is the printing resolution a user chooses, being fully prepared to do so from 360 dpi if that > is what the Client sends you. Which is perfectly acceptable. >> 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. > > You already have a GTK+ UI, and modern web UI has similar capabilities. I'd just as soon use the existing GTK+ UI rather than have to write a new web application. Even a local TCP port (http or https://localhost) has its problems, since it means that something running under a different UID can access it. A lot of browsers strongly discourage use of http these days, and https means getting a certificate. Just a whole lot of hoops to jump through for what looks to me to be dubious benefit. >> 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. > > I'm not sure I understand what you're saying? I don't understand what the architecture would look like. What exactly would this web UI do? Where would the back end run? The printing application is a normal binary, presenting a UI. A web application means a server somewhere. Why should there be a web UI in addition to the printing application UI? >> Where >> would the web UI back end run? > > It is part of the printer application. IPP runs over HTTP. And a web interface is a required part > of AirPrint, Mopria, and IPP Everywhere. It sounds like this would be separate from the main UI.\ |
From: Michael S. <ms...@ms...> - 2021-09-23 01:52:07
|
Robert, > On Sep 22, 2021, at 6:47 PM, Robert Krawitz <rl...@al...> wrote: >> ... >> 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? No, but having fixed limits does make memory usage *predictable*. >> 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. Understand that how Gutenprint exposes options in PPD files isn't how it has to expose them over IPP. More specifically, IPP has collection attributes (think of them as dictionaries) that cam contain any number of (typically related) member attributes. So just because you need to have 30 PPD options to describe transfer curves doesn't mean that you have to have 30 IPP attributes. Group the options in IPP collections, and include a member attribute for named presets for these collections - that supports stock and custom "easy" settings as well as complete control over a particular category of options. (honestly you could put everything in a single collection, but I don't think that is actually a good idea) > ... > 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. Nothing prevents you from supporting all resolutions. But modern Clients can typically only rasterize at 1:1 resolutions (certainly this is the case for all AirPrint clients), and Windows' Mopria class driver only supports a small number of resolutions they decide are OK - 300, 360, 600, and 720 dpi right now. (not even the super-common 203dpi of label and some dye-sub printers...) My point is simply that printing resolution != rasterization resolution. And yes you could report 2880x2880 DPI with the current PAPPL, no problem, but you'll need to upsample to 5760x2880 DPI if that is the printing resolution a user chooses, being fully prepared to do so from 360 dpi if that is what the Client sends you. > ... > 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. You already have a GTK+ UI, and modern web UI has similar capabilities. > 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. I'm not sure I understand what you're saying? > Where > would the web UI back end run? It is part of the printer application. IPP runs over HTTP. And a web interface is a required part of AirPrint, Mopria, and IPP Everywhere. > 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. There is no need for cloud crap. This is a local application. Typically only listening on localhost (unless you configure it to share on the local network), and PAPPL is taking care of 99% of the security issues for you. (the other 1% depends on what kind of extra web UI you provide, but for Gutenprint I don't see there being anything that PAPPL doesn't already handle for you...) ________________________ Michael Sweet |
From: Robert K. <rl...@al...> - 2021-09-23 01:45:29
|
On 9/22/21 9:11 PM, Solomon Peachy wrote: > On Thu, Sep 23, 2021 at 01:21:21AM +0200, Till Kamppeter wrote: >> As I understand, the limitations are also done with clients in mind. If you >> have a low-resource client, and your Printer Application reports a 5760x2880 >> dpi resolution for PWG Raster input, the client could have problems >> rendering this. > > Let's be clear here, even a $5 Raspberry Pi Zero has sufficient > resources (RAM and CPU oomph) to RIP all but the most specialized (eg > max resolution wide format banner printing) output on Epson devices. Actually, the wide format printers (17"+) are less of a problem -- they all do weaving (interleaving) inside the printer, and all we need is enough buffering for one row of each color. The most demanding ones are the high resolution prosumer printers, a step below the pro ones, where there needs to be enough buffering for a lot of rows, where "lot of" depends on the printer resolution in more ways than one would realize. Particularly bad are things like the R1800 (which is why I used that as an example) where it's really necessary to print at very high resolution to get decent photo output, because there are no light inks to generate smooth tones with larger drop sizes. > (And when you're spending >$20K on such a printer, it's reasonable to > expect that the system it's plugged into is more capable than a RPi Zero) A lot of routers have less RAM than the Raspberry Pi 0, and RAM's more of an issue than CPU. And I could see someone wanting to run a printer app there, if they're using it as a print server. But they wouldn't be able to do anything very sophisticated, and that's not what I think we should be targeting. > A printer may have a raw hardware resolution of 5760x2800, and you would > want to use every bit of that when printing containing fine line details > but very little color variation. Whereas for a photograph, continuous > color tones matter more than fine detail, and the necessity of dithering > reduces the usable "image" resolution to a fraction of the hardware > resolution. Even with that 5760x2880 hardware resolution there's > probably little point in supplying an photograph that's much over > 300dpi. Yes, and as far as that goes I think input resolution and printing resolution should be decoupled, as long as the input resolution is not allowed to exceed the output resolution. But some people need that very high input resolution. > Ultimately the question is "what is Gutenprint used for" -- if it's just > "enable folks use their ancient pre-IPP printer to print office > documents and grand-cat photos" then what you've implemented today with > the simplified PPDs is fine -- and a "native" version would presumably > face the same sorts of restrictions, at least if we're to use stock > upstream PAPPL as its base. Interestingly, in the office (where I was last >18 months ago) we had some high end ImageRunner printers that someone was trying to print a large PDF file on it and the thing choked; it basically got hung up forever trying to render the PDF. That was right around the time I finally got color PCL printing working (and was sort of the impetus for it). Our PCL driver is pretty unsophisticated; it's raster-only, but it worked fine and I printed the person's PDF for him. He was suitably impressed. > However, I strongly believe that today the majority of the Gutenprint > userbase are folks with specialized needs, using Gutenprint as a highly > capable RIP that happens to be a CUPS driver. What they care about is > accessible functionality; take that away (or make it substantially > harder to use) they might as well just go back to using official > manufacturer SDKs under Windows. I agree. We do get a fair number of questions from people who are desperate to hook up their old printers to a modern Mac, where the vendor doesn't support any Mac OS beyond 10.6 or so and never will. But we also get plenty of tickets from people who want to do interesting things with it, sometimes things that can't be done with the OEM drivers, because those drivers are designed to support OEM inks and papers (which is where the OEMs make their real money) and can't do things like white underlay coats and truly absurd quantities of third party inks that are necessary to successfully print to T-shirts and the like. I don't mind having good defaults and making the app easy to use for end users who want to do basic things, but I draw the line -- hard -- at dumbing down the app because somebody /might/ stumble across something obscure and get themselves in trouble. Particularly given how many printers are supposed to be IPP printers these days (although I don't know that the typical cheap home printers are yet), I'd rather target 1,200 people who want to do something interesting than 1,200,000 or 120,000,000 people who don't really need Gutenprint because they're running on OEM-supported printers and doing just fine (bonus points if you know the reference!) > Don't get me wrong, there are some substantial benefits from the > integrated printer application approach vs the loosely-coupled set of > filters but at the end of the day we need to meet our users' needs. Aye, there's the bottom line. If PAPPL restrictions don't allow us to properly meet the needs of our user base, then that's just not an option for us. I desperately want to get away from PPD files; I've never cared for them and I've been ranting off and on about the subject for 20 years now. But replacing them with something that's actually a lot less capable is a non-starter. We'd be better off basing it on libgutenprintui2 and properly CUPS-enabling that. |
From: Solomon P. <pi...@sh...> - 2021-09-23 01:11:12
|
On Thu, Sep 23, 2021 at 01:21:21AM +0200, Till Kamppeter wrote: > As I understand, the limitations are also done with clients in mind. If you > have a low-resource client, and your Printer Application reports a 5760x2880 > dpi resolution for PWG Raster input, the client could have problems > rendering this. Let's be clear here, even a $5 Raspberry Pi Zero has sufficient resources (RAM and CPU oomph) to RIP all but the most specialized (eg max resolution wide format banner printing) output on Epson devices. (And when you're spending >$20K on such a printer, it's reasonable to expect that the system it's plugged into is more capable than a RPi Zero) That said, "printer hardware resolution" and "input data resolution" are only loosely coupled and their relation depends entirely on what you're trying to print/produce. A printer may have a raw hardware resolution of 5760x2800, and you would want to use every bit of that when printing containing fine line details but very little color variation. Whereas for a photograph, continuous color tones matter more than fine detail, and the necessity of dithering reduces the usable "image" resolution to a fraction of the hardware resolution. Even with that 5760x2880 hardware resolution there's probably little point in supplying an photograph that's much over 300dpi. Ultimately the question is "what is Gutenprint used for" -- if it's just "enable folks use their ancient pre-IPP printer to print office documents and grand-cat photos" then what you've implemented today with the simplified PPDs is fine -- and a "native" version would presumably face the same sorts of restrictions, at least if we're to use stock upstream PAPPL as its base. However, I strongly believe that today the majority of the Gutenprint userbase are folks with specialized needs, using Gutenprint as a highly capable RIP that happens to be a CUPS driver. What they care about is accessible functionality; take that away (or make it substantially harder to use) they might as well just go back to using official manufacturer SDKs under Windows. Don't get me wrong, there are some substantial benefits from the integrated printer application approach vs the loosely-coupled set of filters but at the end of the day we need to meet our users' needs. - Solomon -- Solomon Peachy pizza at shaftnet dot org (email&xmpp) @pizza:shaftnet dot org (matrix) High Springs, FL speachy (libra.chat) |
From: Robert K. <rl...@al...> - 2021-09-23 00:51:12
|
On 9/22/21 7:21 PM, Till Kamppeter wrote: > I think also the 32 vendor options can be very restrictive, here are some thoughts on what I do and > what one can do. > > On 23/09/2021 00:47, Robert Krawitz wrote: >> >> 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? > > As I understand, the limitations are also done with clients in mind. If you have a low-resource > client, and your Printer Application reports a 5760x2880 dpi resolution for PWG Raster input, the > client could have problems rendering this. That's absolutely true, but it's not a reason to restrict all clients. > My current Gutenprint retro-fit Printer Application would expose 360 dpi for draft, 720 dpi for > normal, and 1440 dpi for high quality. Clients then would render in these resolutions. Inside the > Printer Application Gutenprint will dither with any resolution it is capable of, for example with > 5760x2880 dpi. It depends upon what you're doing. Gutenprint does offer quality presets, which vary with the printer and paper type. For photos, the ideal output resolution depends upon the printer. With the CcMmYKkk printers with 3-4 pl drops, 1440x720 usually does just fine. With 4 color (or CMYKRB) printers with 1 pl drops, it needs to be a lot higher, although input resolution doesn't. If you're printing extremely detailed line art, though, the higher resolution the better. > libpappl-retrofit usually reports 3 resolutions for each printer, one for draft, one for normal, and > one for high quality, selecting the appropriate one when the input data is an image (JPEG, PNG). But there are more kinds of outputs than that; there are typically about 6-8 quality presets (economy draft, draft, normal, high, photo, photo high, and best IIRC). > If the input is PDF or PostScript, the driver uses anything what it needs, not necessarily one of > the 3 reported resolutions. So sending a line drawing (vector graphics) in PDF and printing in > highest possible quality, can make Ghostscript render in 5760x2880 for example. Yep. But you don't ever want to send higher resolution to the driver than the printing resolution. > If a PPD file has a "Resolution" option, you can access all the resolutions it offers, on the > "Printing Defaults" page there will be a "Resolution" entry near the top for the reported > resolutions, but also a "resolution entry more down which is set to "automatic-selection". Select > anything else here to access the advanced resolutions. > > If there is no "Resolution" option in the PPD, resolution is set by some other PPD options > ("Quality"?). Also this option you find down the list, defaulting to "automatic-selection". Set it > to something else to get more detailed quality control than only the draft/normal/high of the > standard IPP attribute. > > The Gutenprint Printer Application itself needs the same high amount of memory and CPU power as the > CUPS driver. And there's the rub -- it simply isn't going to run well at high quality settings on low spec clients. A router with 256 MB RAM just is not going to be able to print to an Epson R1800 at high resolution; the RAM is just insufficient. I doubt whether 32 options or 320 is going to make nearly as much difference. >> 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. > > You do not need an extra application. You can add web interface pages to the Printer Application. > See my PostScript Printer Application. It has one extra page for the system (to upload PPD files) > and one extra page for the printers ("Device Settings", to configure installable accessories). You > could add one or more pages for the printers to create presets of advanced adjustments, as I have > already described with more detail in another e-mail. Then I don't understand what this "web interface pages" is. > By the way, I will add two additional interfaces for adding web interface pages to > libpappl-retrofit, one for extra pages for the system, one for extra pages for the printers. > > Till |
From: Till K. <til...@gm...> - 2021-09-22 23:21:30
|
I think also the 32 vendor options can be very restrictive, here are some thoughts on what I do and what one can do. On 23/09/2021 00:47, Robert Krawitz wrote: > > 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? > As I understand, the limitations are also done with clients in mind. If you have a low-resource client, and your Printer Application reports a 5760x2880 dpi resolution for PWG Raster input, the client could have problems rendering this. My current Gutenprint retro-fit Printer Application would expose 360 dpi for draft, 720 dpi for normal, and 1440 dpi for high quality. Clients then would render in these resolutions. Inside the Printer Application Gutenprint will dither with any resolution it is capable of, for example with 5760x2880 dpi. libpappl-retrofit usually reports 3 resolutions for each printer, one for draft, one for normal, and one for high quality, selecting the appropriate one when the input data is an image (JPEG, PNG). If the input is PDF or PostScript, the driver uses anything what it needs, not necessarily one of the 3 reported resolutions. So sending a line drawing (vector graphics) in PDF and printing in highest possible quality, can make Ghostscript render in 5760x2880 for example. If a PPD file has a "Resolution" option, you can access all the resolutions it offers, on the "Printing Defaults" page there will be a "Resolution" entry near the top for the reported resolutions, but also a "resolution entry more down which is set to "automatic-selection". Select anything else here to access the advanced resolutions. If there is no "Resolution" option in the PPD, resolution is set by some other PPD options ("Quality"?). Also this option you find down the list, defaulting to "automatic-selection". Set it to something else to get more detailed quality control than only the draft/normal/high of the standard IPP attribute. The Gutenprint Printer Application itself needs the same high amount of memory and CPU power as the CUPS driver. >> 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. > See above. Send vector fine art as PDF and Ghostscript Gutenprint use the final resolution right away inside the Printer Application. >>>> 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. You do not need an extra application. You can add web interface pages to the Printer Application. See my PostScript Printer Application. It has one extra page for the system (to upload PPD files) and one extra page for the printers ("Device Settings", to configure installable accessories). You could add one or more pages for the printers to create presets of advanced adjustments, as I have already described with more detail in another e-mail. By the way, I will add two additional interfaces for adding web interface pages to libpappl-retrofit, one for extra pages for the system, one for extra pages for the printers. Till |
From: Robert K. <rl...@al...> - 2021-09-22 23:00:36
|
On 9/22/21 12:53 PM, Till Kamppeter wrote: > On 21/09/2021 17:01, Michael Sweet wrote: >> Till, >> >> The point should not be to propagate hundreds or thousands of printer-specific knobs to trip up >> the user (even expert users!) I disagree. I'm fine with a simplified UI for people who don't want to do anything fancy, and I'm fine with that containing a basic set of resolutions. But it's very important to me that people who want to do advanced things should be able to without jumping through gratuitous hoops. Re your comment in a previous message that "it would be a pain to scroll through that many options (in one long list) on a phone", phones aren't likely to have a Gutenprint port, and iPhones definitely won't (due to app store policies). And I don't propose one long list of options, about:config style >> It makes more sense to provide a Gutenprint-specific web UI that allows (expert) users to do test >> prints and tweak those knobs. Once you are happy with the settings, save them with a name ("Bob's >> Photo Preset") and expose the presets as single vendor extension attribute, which then shows up in >> the print dialog. > > Makes much more sense to me. How would this work? Where would the web server run? This sounds like it would make life very complicated for people who want to do advanced things, just so that people who only want to do simple printing don't get curious about an "Advanced Options" box, check it, then get overwhelmed by what's available. I have no problem with presets, certainly. The GIMP plugin does this and it has always worked fine. What I don't want is for someone to have to use a separate application to create them that either needs a web server on the local machine (with all the security problems that go with that) or that they need to be online for to connect to some cloud infrastructure that has to be maintained. > In the retro-fitting Gutenprint Printer Application I will continue with the simplified PPDs for > now, as the retro-fit is an interim solution where we should not spend too much time on. > > I suggest for the native GutenPrint Printer Application an additional web interface page for the > printers (as I did with the PostScript Printer Application where I have added "Device Settings" to > configure the installable accessories). > > One could add an "Advanced Settings" page, where one can set all these extra options, with tabs for > the logical groups of the options, a better way to adjust numeric values (instead of 2 enumerated > choices for coarse and fine adjustment), buttons for saving the settings under a name (preset), for > switching between prsets, removing/renaming/copying/cloning presets. And if there is at least one > preset, the "Printing Defaults" get an "Advanced Settings" vendor option, where one can choose > between "Default" and each of the save presets. The "coarse" and "fine" adjustments are a hack due to the lack of an appropriate facility in PPD files. In the GIMP plugin there's none of that; it's just a bunch of sliders |
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. |
From: Till K. <til...@gm...> - 2021-09-22 16:53:32
|
On 21/09/2021 17:01, Michael Sweet wrote: > Till, > > The point should not be to propagate hundreds or thousands of printer-specific knobs to trip up the user (even expert users!) > > It makes more sense to provide a Gutenprint-specific web UI that allows (expert) users to do test prints and tweak those knobs. Once you are happy with the settings, save them with a name ("Bob's Photo Preset") and expose the presets as single vendor extension attribute, which then shows up in the print dialog. > Makes much more sense to me. In the retro-fitting Gutenprint Printer Application I will continue with the simplified PPDs for now, as the retro-fit is an interim solution where we should not spend too much time on. I suggest for the native GutenPrint Printer Application an additional web interface page for the printers (as I did with the PostScript Printer Application where I have added "Device Settings" to configure the installable accessories). One could add an "Advanced Settings" page, where one can set all these extra options, with tabs for the logical groups of the options, a better way to adjust numeric values (instead of 2 enumerated choices for coarse and fine adjustment), buttons for saving the settings under a name (preset), for switching between prsets, removing/renaming/copying/cloning presets. And if there is at least one preset, the "Printing Defaults" get an "Advanced Settings" vendor option, where one can choose between "Default" and each of the save presets. Till |
From: Till K. <til...@gm...> - 2021-09-22 16:31:28
|
On 21/09/2021 17:38, Michael Sweet via Gimp-print-devel wrote: > > Go ahead, but it'll get closed as "wontfix". Sorry to be so blunt, but PAPPL runs in embedded environments with hard memory limits far below what you'd have on a smartphone, tablet, or desktop/server computer. Moreover, supporting an arbitrary number of options/values is a path to madness for both the UI designer (that has to deal with unrealistic numbers of options that have to be laid out automatically) and the end user (who has to figure out WTF they all do...) > OK, it would be a pain to scroll through that many options (in one long list) on a phone ... >> Another limit which I observed is that only 4 resolutions can get registered. Also works with practically all drivers except Gutenprint. And for one PPD (Epson Stylus Photo TX810FW - CUPS+Gutenprint v5.3.4 Simplified) I saw also irregularities with the list of paper types, some showing twice and a sub-process of the Printer Application crashing when one changes the paper type. I did not check, but for me it smells like the number of paper types is overrunning the limit here. The problem with the paper types is that the ppd-cache.c functions (these are the same in libcups and libppd) assign the same PWG name to different PPD names of some paper types (variations of glossy photo paper). I have now simply skipped the duplicates. > > PAPPL_MAX_MEDIA is 256. > These are the paper sizes, no problem with them. > The number of resolution is limited for two reasons: > > 1. Apple Raster only supports symmetric resolutions > 2. Sending raster data at full device resolution doesn't make sense (generally limit to 720dpi for photos/images and 1440dpi for lines) since big raster data takes a lot longer to send and dithering limits the amount of edge detail that is possible. So for printers that support 360, 720x360, 720, 1440x720, 1440, 2880x1440, 2880, and 5760x1440dpi should probably only report 360, 720, and 1440 dpi raster data and then upscale as needed. (I can update PAPPL to support the driver adding printer-resolution-default/-supported values while PAPPL exports the resolution values in the pwg-raster-document-resolution-supported and urf-supported attributes) > I have now added a limitation for the PAPPL-reported input resolutions in libpappl-retrofit: 360 dpi for draft, 720 dpi for normal, and 1440 dpi for high print quality. Internally, the resolutions of APPL/PWG Raster input are converted to whatever the driver needs. PDF and PostScript input is directly rendered in the resolution which the driver requests. >> What do you mean with "vendoring PAPPL into Gutenprint"? > > I highly recommend against embedding PAPPL. The same was done to Mini-XML and the embedded version is hopelessly out of date compared to the current release... > I am also against this practice, it is a nightmare for packaging and security fix handling. > Each value is limited to 32767 bytes by the wire protocol, but otherwise this is true in theory. However, you can cause some pretty serious DoS issues by sending large numbers of values or large numbers of attributes, even on desktop clients. OK. Till |
From: Michael S. <ms...@ms...> - 2021-09-21 16:03:04
|
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. 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). >> 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. ________________________ Michael Sweet |
From: Michael S. <ms...@ms...> - 2021-09-21 15:39:02
|
All, > On Sep 21, 2021, at 11:06 AM, Till Kamppeter <til...@gm...> wrote: > > On 21/09/2021 16:22, Robert Krawitz wrote: >>> 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. >> > > We should report a bug. Go ahead, but it'll get closed as "wontfix". Sorry to be so blunt, but PAPPL runs in embedded environments with hard memory limits far below what you'd have on a smartphone, tablet, or desktop/server computer. Moreover, supporting an arbitrary number of options/values is a path to madness for both the UI designer (that has to deal with unrealistic numbers of options that have to be laid out automatically) and the end user (who has to figure out WTF they all do...) > Another limit which I observed is that only 4 resolutions can get registered. Also works with practically all drivers except Gutenprint. And for one PPD (Epson Stylus Photo TX810FW - CUPS+Gutenprint v5.3.4 Simplified) I saw also irregularities with the list of paper types, some showing twice and a sub-process of the Printer Application crashing when one changes the paper type. I did not check, but for me it smells like the number of paper types is overrunning the limit here. PAPPL_MAX_MEDIA is 256. The number of resolution is limited for two reasons: 1. Apple Raster only supports symmetric resolutions 2. Sending raster data at full device resolution doesn't make sense (generally limit to 720dpi for photos/images and 1440dpi for lines) since big raster data takes a lot longer to send and dithering limits the amount of edge detail that is possible. So for printers that support 360, 720x360, 720, 1440x720, 1440, 2880x1440, 2880, and 5760x1440dpi should probably only report 360, 720, and 1440 dpi raster data and then upscale as needed. (I can update PAPPL to support the driver adding printer-resolution-default/-supported values while PAPPL exports the resolution values in the pwg-raster-document-resolution-supported and urf-supported attributes) > And was Gutenprint not Mike's baby? a long time ago now... > The limits not only affect my (interim) retro-fit but also your native Printer Application. > >> With this kind of limit, it would seem very difficult to build a proper RIP using PAPPL. >>> 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. > > What do you mean with "vendoring PAPPL into Gutenprint"? I highly recommend against embedding PAPPL. The same was done to Mini-XML and the embedded version is hopelessly out of date compared to the current release... >> If that broke the >> network protocol that wouldn't do, but then a snap would have the same problem. > > The network protocol cannot break by raising these limits, AFAIK IPP has no limits for the number of attributes and the number of values for each attribute. Each value is limited to 32767 bytes by the wire protocol, but otherwise this is true in theory. However, you can cause some pretty serious DoS issues by sending large numbers of values or large numbers of attributes, even on desktop clients. ________________________ Michael Sweet |
From: Michael S. <ms...@ms...> - 2021-09-21 15:17:42
|
Till, The point should not be to propagate hundreds or thousands of printer-specific knobs to trip up the user (even expert users!) It makes more sense to provide a Gutenprint-specific web UI that allows (expert) users to do test prints and tweak those knobs. Once you are happy with the settings, save them with a name ("Bob's Photo Preset") and expose the presets as single vendor extension attribute, which then shows up in the print dialog. > On Sep 21, 2021, at 10:01 AM, Till Kamppeter <til...@gm...> 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 I could do is that in the Snap I could build PAPPL with a higher limit (Snaps bring their own libraries). > > Till > ________________________ Michael Sweet |
From: Robert K. <rl...@al...> - 2021-09-21 15:13:32
|
On 9/21/21 11:06 AM, Till Kamppeter wrote: > On 21/09/2021 16:22, Robert Krawitz wrote: >>> 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. >> > We should report a bug. > > Another limit which I observed is that only 4 resolutions can get registered. Also works with > practically all drivers except Gutenprint. And for one PPD (Epson Stylus Photo TX810FW - > CUPS+Gutenprint v5.3.4 Simplified) I saw also irregularities with the list of paper types, some > showing twice and a sub-process of the Printer Application crashing when one changes the paper type. > I did not check, but for me it smells like the number of paper types is overrunning the limit here. > > And was Gutenprint not Mike's baby? Mike wrote the original Print plugin for GIMP which I took and started the Gimp-Print (renamed Gutenprint with release 5.0) project around. Mike wrote the original CUPS driver for Gutenprint working with the rest of the team. > The limits not only affect my (interim) retro-fit but also your native Printer Application. Yes. That's a problem. >> With this kind of limit, it would seem very difficult to build a proper RIP using PAPPL. >> >>> 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. > > What do you mean with "vendoring PAPPL into Gutenprint"? Putting a copy of PAPPL into the Gutenprint source with these limits lifted. Same kind of thing that a lot of projects have done with dcraw. >> If that broke the >> network protocol that wouldn't do, but then a snap would have the same problem. > > The network protocol cannot break by raising these limits, AFAIK IPP has no limits for the number of > attributes and the number of values for each attribute. |
From: Till K. <til...@gm...> - 2021-09-21 15:06:43
|
On 21/09/2021 16:22, Robert Krawitz wrote: >> 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. > We should report a bug. Another limit which I observed is that only 4 resolutions can get registered. Also works with practically all drivers except Gutenprint. And for one PPD (Epson Stylus Photo TX810FW - CUPS+Gutenprint v5.3.4 Simplified) I saw also irregularities with the list of paper types, some showing twice and a sub-process of the Printer Application crashing when one changes the paper type. I did not check, but for me it smells like the number of paper types is overrunning the limit here. And was Gutenprint not Mike's baby? The limits not only affect my (interim) retro-fit but also your native Printer Application. > With this kind of limit, it would seem very difficult to build a proper RIP using PAPPL. > >> 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. What do you mean with "vendoring PAPPL into Gutenprint"? > If that broke the > network protocol that wouldn't do, but then a snap would have the same problem. The network protocol cannot break by raising these limits, AFAIK IPP has no limits for the number of attributes and the number of values for each attribute. Till |
From: Robert K. <rl...@al...> - 2021-09-21 14:22:40
|
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. > 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. |
From: Till K. <til...@gm...> - 2021-09-21 14:01:56
|
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 I could do is that in the Snap I could build PAPPL with a higher limit (Snaps bring their own libraries). Till |
From: Gene C. <gen...@gm...> - 2021-09-21 00:42:27
|
OOPS! I apologize, I was trying to let Scott Boyd, the local expert about this, and inadvertently sent it to you! I am so sorry, as an attorney (but definitely not an expert on this) I should have been more careful! But I waill say, this sounds like a neat thing to me! If it weren't open-source I would suggest consulting an IP attorney -not me, though, i am an IP attorney, but I m most decidedly not an "ambulance chaser". Have a great day, and again, my bad! Gene Cavanaugh On Mon, Sep 20, 2021 at 5:29 PM Robert Krawitz <rl...@al...> wrote: > On 9/20/21 6:32 PM, Till Kamppeter wrote: > > Hi, > > > > I have created a Gutenprint Printer Application by retro-fitting > Gutenprint's CUPS driver into a > > Printer Application using PAPPL (https://github.com/michaelrsweet/pappl) > and my CUPS driver > > retro-fit library pappl-retrofit ( > https://github.com/OpenPrinting/pappl-retrofit): > > > > https://github.com/OpenPrinting/gutenprint-printer-app > > https://snapcraft.io/gutenprint-printer-app > > > > Note that this is only an interim effort, as the right way to make a > Printer Application out of > > Gutenprint is a native Printer Apoplication, not using PPDs, the CUPS > filter, and the CUPS backend > > of Gutenprint, but instead, use only PAPPL and libgutenprint. Therefore > I will maintain this Printer > > Application only as long as there is no native Gutenprint Printer > Application from the Gutenprint > > project, once that is there, I will discontinue my Printer Application. > > > > 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? > > > _______________________________________________ > Gimp-print-devel mailing list > Gim...@li... > https://lists.sourceforge.net/lists/listinfo/gimp-print-devel > |
From: Robert K. <rl...@al...> - 2021-09-21 00:29:05
|
On 9/20/21 6:32 PM, Till Kamppeter wrote: > Hi, > > I have created a Gutenprint Printer Application by retro-fitting Gutenprint's CUPS driver into a > Printer Application using PAPPL (https://github.com/michaelrsweet/pappl) and my CUPS driver > retro-fit library pappl-retrofit (https://github.com/OpenPrinting/pappl-retrofit): > > https://github.com/OpenPrinting/gutenprint-printer-app > https://snapcraft.io/gutenprint-printer-app > > Note that this is only an interim effort, as the right way to make a Printer Application out of > Gutenprint is a native Printer Apoplication, not using PPDs, the CUPS filter, and the CUPS backend > of Gutenprint, but instead, use only PAPPL and libgutenprint. Therefore I will maintain this Printer > Application only as long as there is no native Gutenprint Printer Application from the Gutenprint > project, once that is there, I will discontinue my Printer Application. > > 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? |