Printing
Pages: 1 2 3 4 5 6 7 8 9 10 11 ... 13
Dave Higton (1515) 3525 posts |
If someone wanted to buy a new printer now for use under RISC OS, what should s/he buy? Printer drivers, including those supplied by our great hope Gutenprint, don’t appear to have been updated in years. In my case, Uniprint isn’t an acceptable route as I’m not prepared to buy a Windows box. On a more specific subtopic, I began to read about IPP, as it looked like an emerging standard, but I couldn’t find many models of printer that support it directly. Looks like HP only, in fact. But does IPP do anything more than transport a stream in a printer manufacturer’s proprietary format? |
Grahame Parish (436) 481 posts |
I’d also be interested in an updated Gutenprint supporting newer printers, or a application that can convert from recent Linux CUPS or GP printer definitions into a format usable by the GP version we already have available via MWSoftware. |
Steffen Huber (91) 1953 posts |
AFAIK, IPP is only a transport (in effect, printing over http IIRC), not a generic print data format abstraction. At the moment, your choice on RISC OS is pretty much “PostScript”, or “use Linux as a print server and send PostScript to it”. From the “workarounds’r’us” department: many printers can now print PDF directly, from the printer’s internal website via file upload or directly from an USB stick. So if your RISC OS machine can create a PDF, this is a possible route. |
Rick Murray (539) 13840 posts |
IPP Everywhere specifies both a transport, capabilities, and bitmap format to use to send data. Unfortunately most IPP printers around support AirPrint which is basically the same thing, using a proprietary “URF” bitmap format, which isn’t documented. We’d have it made if we supported AirPrint. |
Dave Higton (1515) 3525 posts |
I suppose the question is whether there are enough printer models that support AirPrint, at prices that would interest us. Remembering that Apple usually means a hefty price premium, of course. Some reverse engineering work has been done on the URF/Unirast encoding scheme, as well as the particular dialect of IPP that AirPrint appears to be; so, if it actually does represent something useful to us, it’s technically possible to implement it. All it takes is time and effort :-) |
Rick Murray (539) 13840 posts |
Maybe the higher end of printers. The lower end are either capable of handling PDFs at all, or are only able to create them (basically scan-to-PDF). My laser has no scanner so it has no built-in support for PDF. Only URF and it’s own format. It may be that some sort of renderer technology needs to be licenced in order to print the content of PDFs, but this isn’t necessary if one wants to simply create a set of images in PDF format. Thus, the cheap printers aren’t likely to have this sort of functionality.
You’ve been slightly misinformed. Okay, not about the premium, you’re right about that. But about the degree of support. To this end, any WiFi capable printer must support both Android and iOS. Failure to do so will mean that one side of the press or the other would savage the product in reviews. It’s a de facto standard by the virtue of every Apple mobile device that is capable of printing doing so. That’s why your twenty-five quid HP inkjet is compatible. All of my WiFi printers worked with AirPrint – a cheap Canon, a cheap HP, and a cheap Samsung laser. They’re on my blog if you’re interested in model numbers, but generally speaking “cheap and cheerful with WiFi” pretty much sums them up.
Practically nothing. There is one site with terse description and a suggested encoder/decoder in source form. However much of the file format is pure guesswork based upon what appears to be two sample files. Crucially, however, cobbling together some code to translate sprites into URF is accepted by the decoder (and decoded backwards, I guess it’s like BMP and goes the other way up) but is rejected by the printer as being invalid. Furthermore, when you start poking around the printers, there’s a way (IPP protocol port?) to extract information about the printer’s capabilities by simply looking for this port (so no farting around with the Bonjour protocol, just netscan for the port). All of the printers support URF. All of the printers specify which types of URF they support. There are about as many types of URF as there are sprite formats, and quite likely for the same reason. Sadly, the PC is no use. Using the supplied drivers and printing to file creates a perfectly useful output (indeed, one that was successfully thrown to the Samsung to generate a page), but the drivers used an internal proprietary format instead of URF. The ideal situation would be to print to both devices using the iPad and capture that, but since we’re basically going WiFi device → router → WiFi device, I’m not sure I have anything that could be usefully inserted in the middle of that to snoop on the traffic to get some live samples of URF in other formats and page sizes. There is some sort of support in Debian (CUPS?), but it’s experimental and might only be that one format that works on printers that understand that particular type of raster image…
Rather the opposite, it looks. I think AirPrint is a superset of original IPP and the IPP everywhere initiative is a superset of AirPrint attempting to encode that into an open specification. IPP Everywhere defines a raster format called PWG. The problem here is that my HP inkjet (which is fairly new and has recent firmware) does support this, but the other two (being a little older) do not. That’s not an issue for the Canon as I don’t use it any more (HP’s Instank Ink means I pay a flat fee for as much ink as I need, rather than the £££ for cartridges that run out just when you need them). I suppose it might be interesting for RISC OS Developments to attempt to reach out to Apple (or maybe one of the less annoying printer makers?) to see what is involved in getting access to documentation on the AirPrint protocol and URF. I don’t expect it to go very far (if it was easy, it would already be properly supported in Linux), but it’s a possibility to consider. How I know all of this: I have printers with WiFi that support AirPrint. I spend half of my summer holiday last year trying to get the damn things talking to RISC OS. Port scanning the network and extracting information from the available printers was actually pretty easy. The IPP protocol is basically HTTP with a binary payload. Getting them to actually put ink on the page (other than random incomprehensible error messages) was an entirely different proposition. As was the question of whether to spew URF to the raw port (9000/9100, whatever) or attempt to wrap it in PCL. All printing via IPP failed, there’s some sort of queuing/handshake business going on there that I’m clearly not doing correctly. |
Steve Pampling (1551) 8170 posts |
For everything I’ve seen on the network at work the probe method is to query the SNMP in the printer.
Or HTTPS with… |
Chris Evans (457) 1614 posts |
Requirements? If colour is not essential then a monochrome laser (PCL5,6 and or PostScript) ready available and cheaper in the long run than inkjet! If the quality of Lasers colour output is good enough i.e. you don’t need the best possible photo realism then suitable colour lasers are stocked by… Once consumables including paper (lasers can use cheap paper, inkjets need much better quality to get the best photo output) are factored in, Colour lasers can in the long run be cheaper! They normally come with the equivalent of well over £100 worth of consumables compared to an inkjet. If you do need the best possible photo realism then RISC OS is probably not your best choice of OS. Though with a suitable gutenprint driver you should get better than a colour laser but it will be slow even on the fastest RISC OS computers (Pi 3, Titanium or IGEPv5 based RapidO) |
Steffen Huber (91) 1953 posts |
There seems to be an MIT-licenced Java/Kotlin implementation if IPP by HP: https://github.com/HPInc/jipp From a quick glance, it contains all the information necessary from protocol to data format. |
David Feugey (2125) 2709 posts |
No, almost all printers dedicated to workplace.
I never managed to get PCL working under RISC OS. For PostScript, beware of the unsupported BRScript from Brother. Kyocera printers should work and there are simply the best for price/page. |
Chris Hughes (2123) 336 posts |
I would recommend a laser printer for use with RISC OS. unless you want photo quality photos then you area bit stuck. I use both a Kyocera Mono Laxer with the PS3 driver from MW software plus I use a Brother colour duplex printer with again the PS3 driver which works fine with BRScript on the brother – worked for past five years without issue. I could use PCL with either of the printers as well, but use dupples and are on the network. (no wi-fi). There are PCL drive and postscript drivers including duplex on the !Store – free. |
Steve Pampling (1551) 8170 posts |
Strange, I had an HP5L in use (until a liquid spillage to its innards caused its demise) that was replaced with an HP6L which wore out on the heavy load I gave it1 The replacement for that was also HP and is tucked away somewhere as I very rarely print anything these days. All were operating as PCL devices. 1 Local CAMRA publications and paperwork. If our payroll people would accept the on-call timesheets in the spreadsheet format they are printed from then I’d not even touch a printer even once a month. |
Raik (463) 2061 posts |
I use a Samsung C480W (laser color) via WIFI and remoteprinterfs and Martins PS3 driver with RISC OS. |
Steve Pampling (1551) 8170 posts |
There are others https://github.com/topics/ipp is where I presume you started. I gave it a glance last night and wondered “what scope for taking the C implementations and porting?”
Possibly useful for the information although I would suspect the info from the IPP Working Group is probably definitive. Along with RFC2911 and more recently RFC3996 |
Raik (463) 2061 posts |
There was a ipp driver for RISC OS in 2005 programmed by David Lambley. |
Dave Higton (1515) 3525 posts |
There are several strands that must all be in place for success: 1: There must be a reasonable choice of printers out there at prices we are prepared to pay. I, for example, am not in the market for an office printer. My uses are definitely low print volume. 2: IPP, IPP Everyhere and/or AirPrint must work, in order to negotiate with the printer and deliver the bitstream. It appears that the documentation for IPP and IPP Everywhere is in the public domain, and probably adequate. It looks like there’s no particular difficulty, but perhaps a lot of “handle-cranking”. The protocols are textual and not encrypted (other than optionally https) so we can understand what is being coded for. 3: The bitstream encoding or encodings must work. My skim-reading of the topic suggests that URF and PDF should be supported – is that correct? URF is definitely a raster format, but we have to reply on some reverse engineering. PDF and anything else, I don’t know about. 4: The whole thing has to integrate with the RISC OS Printers system. Is this well enough documented? I don’t think many people have worked on printer drivers. |
Steffen Huber (91) 1953 posts |
You can simply use David Pilling’s SPrinter as a template, which prints to a Sprite (and hence could be used as a source to convert into URF or whatever): https://www.davidpilling.com/wiki/index.php/SPrinter I think David also wrote a rather long article in Foundation RISC User about writing printer drivers. |
Steffen Huber (91) 1953 posts |
It would allow near-trivial implementation of a UniPrint-like scenario for both Linux and Windows “servers”. If it works. I don’t have currently enough free time to sensibly pursue this, I don’t even know how far my Oki laser printer supports IPP (I always thought it was “PostScript or PDF or PCL over http”). |
Steffen Huber (91) 1953 posts |
All the laser printers I ever owned were successfully operated via RISC OS via PCL (both Acorn standard and Andreas Dehmel’s extended PCL Dumper as well as CC’s TurboDriver), starting with an Epson EPL4300 in – I think – 1992. After that, various HP and Oki devices. Currently, an Oki. However, always B&W only. Colour PCL is nowadays usually PCLXL, which is unsupported on RISC OS (although there was a prototype implementation by Martin Würthner based on Ghostscript, but I think he ran into technical problems). |
Steve Pampling (1551) 8170 posts |
I was thinking more of the Java element, unless you have a fully developed Java runtime for RISC OS.
Apparently renamed as PCL6 Enhanced by HP but third party implementations tend to refer to PCL XL or PXL – the latter being something I think Rick (or Dave H) mentioned a while back. Some data on the PCL XL standard at Undocprint – at the bottom of the page the PDF links are OK, the link to the HP site for the Official HP PCL SDK Download Site is broken. Edit: One PDF is 265 pages of specification for PCL XL the other is 38 pages of class 3.0 supplement |
Rick Murray (539) 13840 posts |
Here’s my little program to port-scan (local network only) for IPP printers and dump the results: http://heyrick.ddns.net/files/FindIPP.ff8 And here’s a dump of the scan on my network (with identifiers removed). Small because it’s verbose. Copy-paste it into an editor if you want to read it in detail. *FindIPP Looking for IPP enabled printers... Checking 192.168.1.1...connected, interrogating... IPP protocol in use is 1.1 Status code is &0000 Request ID is &00000001 operation-attributes-tag: charset : attributes-charset = "utf-8" naturalLanguage : attributes-natural-language = "en-us" printer-attributes-tag: integer : marker-change-time = "0" dateTime : printer-current-time = ".ã....." nameWithoutLanguage : printer-error-policy = "retry-job" boolean : printer-is-accepting-jobs = "True" boolean : printer-is-shared = "True" nameWithoutLanguage : printer-op-policy = "default" enum : printer-state = "3" integer : printer-state-change-time = "234" textWithoutLanguage : printer-state-message = "" keyword : printer-state-reasons = "none" enum : printer-type = "4" integer : printer-up-time = "8" uri : printer-uri-supported = "ipp://192.168.1.1:631/printers/gateway-usb-printer" integer : queued-job-count = "0" keyword : uri-authentication-supported = "requesting-user-name" keyword : uri-security-supported = "none" nameWithoutLanguage : printer-name = "gateway-usb-printer" textWithoutLanguage : printer-location = "" textWithoutLanguage : printer-info = "My Gateway Printer" uri : printer-more-info = "ipp://LIVEBOX:631/printers/gateway-usb-printer" integer : job-quota-period = "0" integer : job-k-limit = "0" integer : job-page-limit = "0" keyword : auth-info-required = "none" uri : device-uri = "file:/dev/usb/lp0" textWithoutLanguage : printer-make-and-model = "Local Raw Printer" enum : finishings-supported = "3" enum : finishings-default = "3" mimeMediaType : document-format-supported = "application/octet-stream" integer : copies-default = "1" mimeMediaType : document-format-default = "application/octet-stream" keyword : job-hold-until-default = "no-hold" integer : job-priority-default = "50" integer : number-up-default = "1" {undef&13} : orientation-requested-default = "" integer : notify-lease-duration-default = "128" keyword : notify-events-default = "job-completed" charset : charset-configured = "us-ascii" charset : charset-supported = "us-ascii" charset : (continued) "utf-8" keyword : compression-supported = "none" rangeOfInteger : copies-supported = "" textWithoutLanguage : cups-version = "1.3.9" naturalLanguage : generated-natural-language-supported = "en-us" keyword : ipp-versions-supported = "1.0" keyword : (continued) "1.1" keyword : job-hold-until-supported = "no-hold" keyword : (continued) "indefinite" keyword : (continued) "day-time" keyword : (continued) "evening" keyword : (continued) "night" keyword : (continued) "second-shift" keyword : (continued) "third-shift" keyword : (continued) "weekend" integer : job-priority-supported = "100" nameWithoutLanguage : job-sheets-supported = "none" keyword : multiple-document-handling-supported = "separate-documents-uncollated-copies" keyword : (continued) "separate-documents-collated-copies" boolean : multiple-document-jobs-supported = "True" integer : multiple-operation-time-out = "60" naturalLanguage : natural-language-configured = "en-us" keyword : notify-attributes-supported = "printer-state-change-time" keyword : (continued) "notify-lease-expiration-time" keyword : (continued) "notify-subscriber-user-name" rangeOfInteger : notify-lease-duration-supported = "" integer : notify-max-events-supported = "100" keyword : notify-events-supported = "job-completed" keyword : (continued) "job-config-changed" keyword : (continued) "job-created" keyword : (continued) "job-progress" keyword : (continued) "job-state-changed" keyword : (continued) "job-stopped" keyword : (continued) "printer-added" keyword : (continued) "printer-changed" keyword : (continued) "printer-config-changed" keyword : (continued) "printer-deleted" keyword : (continued) "printer-finishings-changed" keyword : (continued) "printer-media-changed" keyword : (continued) "printer-modified" keyword : (continued) "printer-restarted" keyword : (continued) "printer-shutdown" keyword : (continued) "printer-state-changed" keyword : (continued) "printer-stopped" keyword : (continued) "server-audit" keyword : (continued) "server-restarted" keyword : (continued) "server-started" keyword : (continued) "server-stopped" keyword : notify-pull-method-supported = "ippget" integer : number-up-supported = "1" integer : (continued) "2" integer : (continued) "4" integer : (continued) "6" integer : (continued) "9" integer : (continued) "16" enum : operations-supported = "2" enum : (continued) "4" enum : (continued) "5" enum : (continued) "6" enum : (continued) "8" enum : (continued) "9" enum : (continued) "10" enum : (continued) "11" enum : (continued) "12" enum : (continued) "13" enum : (continued) "16" enum : (continued) "17" enum : (continued) "18" enum : (continued) "20" enum : (continued) "22" enum : (continued) "23" enum : (continued) "24" enum : (continued) "25" enum : (continued) "26" enum : (continued) "27" enum : (continued) "28" enum : (continued) "34" enum : (continued) "35" enum : (continued) "1" enum : (continued) "2" enum : (continued) "3" enum : (continued) "4" enum : (continued) "5" enum : (continued) "6" enum : (continued) "7" enum : (continued) "8" enum : (continued) "9" enum : (continued) "10" enum : (continued) "11" enum : (continued) "12" enum : (continued) "13" enum : (continued) "14" enum : orientation-requested-supported = "3" enum : (continued) "4" enum : (continued) "5" enum : (continued) "6" boolean : page-ranges-supported = "True" keyword : pdl-override-supported = "not-attempted" nameWithoutLanguage : printer-error-policy-supported = "abort-job" nameWithoutLanguage : (continued) "retry-job" nameWithoutLanguage : (continued) "stop-printer" nameWithoutLanguage : printer-op-policy-supported = "default" end-of-attributes-tag: done. Checking 192.168.1.14...connected, interrogating... IPP protocol in use is 1.1 Status code is &0000 Request ID is &00000001 operation-attributes-tag: charset : attributes-charset = "utf-8" naturalLanguage : attributes-natural-language = "en" printer-attributes-tag: uri : printer-uri-supported = "ipp://192.168.1.14/ipp/print" uri : (continued) "ipps://192.168.1.14:443/ipp/print" keyword : uri-security-supported = "none" keyword : (continued) "tls" keyword : uri-authentication-supported = "requesting-user-name" keyword : (continued) "requesting-user-name" keyword : printer-settable-attributes-supported = "none" nameWithoutLanguage : printer-wifi-ssid = "Livebox-XXXX" enum : printer-wifi-state = "8" nameWithoutLanguage : printer-name = "HPXXXXXX" textWithoutLanguage : printer-location = "" uri : printer-more-info = "http://192.168.1.14/#hId-pgAirPrint" textWithoutLanguage : printer-info = "HP DeskJet 3630 series [XXXXXX]" nameWithoutLanguage : printer-dns-sd-name = "HP DeskJet 3630 series [XXXXXX]" textWithoutLanguage : printer-make-and-model = "HP DeskJet 3630 series" enum : printer-state = "3" keyword : printer-state-reasons = "none" textWithoutLanguage : printer-state-message = "" keyword : ipp-versions-supported = "1.0" keyword : (continued) "1.1" keyword : (continued) "2.0" enum : operations-supported = "2" enum : (continued) "4" enum : (continued) "8" enum : (continued) "57" enum : (continued) "9" enum : (continued) "10" enum : (continued) "11" enum : (continued) "5" enum : (continued) "6" enum : (continued) "19" enum : (continued) "3" enum : (continued) "7" enum : (continued) "59" enum : (continued) "60" charset : charset-configured = "us-ascii" charset : charset-supported = "us-ascii" charset : (continued) "utf-8" naturalLanguage : natural-language-configured = "en" naturalLanguage : generated-natural-language-supported = "en" mimeMediaType : document-format-default = "application/octet-stream" mimeMediaType : document-format-supported = "application/vnd.hp-PCL" mimeMediaType : (continued) "image/jpeg" mimeMediaType : (continued) "application/PCLm" mimeMediaType : (continued) "image/urf" mimeMediaType : (continued) "image/pwg-raster" mimeMediaType : (continued) "application/octet-stream" textWithoutLanguage : document-format-version-supported = "PCL3GUI" textWithoutLanguage : (continued) "PJL" textWithoutLanguage : (continued) "Automatic" textWithoutLanguage : (continued) "JPEG" textWithoutLanguage : (continued) "PCLM" textWithoutLanguage : (continued) "AppleRaster" textWithoutLanguage : (continued) "PWGRaster" boolean : printer-is-accepting-jobs = "True" integer : queued-job-count = "0" keyword : pdl-override-supported = "attempted" integer : printer-up-time = "203" {undef&13} : printer-current-time = "" keyword : compression-supported = "none" keyword : (continued) "deflate" keyword : (continued) "gzip" boolean : color-supported = "True" keyword : job-creation-attributes-supported = "copies" keyword : (continued) "finishings" keyword : (continued) "sides" keyword : (continued) "orientation-requested" keyword : (continued) "media" keyword : (continued) "print-quality" keyword : (continued) "printer-resolution" keyword : (continued) "output-bin" keyword : (continued) "media-col" keyword : (continued) "output-mode" keyword : (continued) "print-content-optimize" keyword : (continued) "pclm-source-resolution" keyword : (continued) "print-color-mode" keyword : (continued) "ipp-attribute-fidelity" keyword : (continued) "job-name" keyword : (continued) "page-ranges" keyword : (continued) "multiple-document-handling" keyword : (continued) "print-rendering-intent" keyword : (continued) "print-scaling" uriScheme : reference-uri-schemes-supported = "http" uriScheme : (continued) "https" textWithoutLanguage : printer-device-id = "" unspecified-octetString: printer-alert = "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=unknown;severity=otherother" unspecified-octetString: (continued) "code=printerReadyToPrint;severity=other;group=generalPrinter" textWithoutLanguage : printer-alert-description = "code=printerReadyToPrint;severity=other;group=generalPrinter" textWithoutLanguage : (continued) "supplyInkLevelChange" textWithoutLanguage : (continued) "supplyInkLevelChange" textWithoutLanguage : (continued) "inkSystemReady" textWithoutLanguage : (continued) "inkSystemReady" textWithoutLanguage : (continued) "supplyInkLevelChange" textWithoutLanguage : (continued) "supplyInkLevelChange" textWithoutLanguage : (continued) "inkSystemReady" textWithoutLanguage : (continued) "ready" uri : printer-uuid = "urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" enum : landscape-orientation-requested-preferred = "5" keyword : ipp-features-supported = "airprint-1.4" keyword : (continued) "ipp-everywhere" keyword : which-jobs-supported = "completed" keyword : (continued) "not-completed" keyword : (continued) "all" boolean : job-ids-supported = "True" boolean : requesting-user-uri-supported = "True" keyword : multiple-operation-time-out-action = "process-job" no-value : printer-geo-location = "" textWithoutLanguage : mopria-certified = "1.3" boolean : preferred-attributes-supported = "False" {undef&13} : printer-config-change-date-time = "" integer : printer-config-change-time = "0" {undef&13} : printer-state-change-date-time = "" integer : printer-state-change-time = "0" integer : document-password-supported = "0" keyword : printer-kind = "document" keyword : (continued) "envelope" keyword : (continued) "photo" keyword : (continued) "postcard" keyword : media-supported = "na_executive_7.25x10.5in" keyword : (continued) "na_letter_8.5x11in" keyword : (continued) "na_legal_8.5x14in" keyword : (continued) "na_govt-letter_8x10in" keyword : (continued) "na_invoice_5.5x8.5in" keyword : (continued) "iso_a5_148x210mm" keyword : (continued) "iso_a4_210x297mm" keyword : (continued) "jis_b5_182x257mm" keyword : (continued) "jpn_hagaki_100x148mm" keyword : (continued) "iso_a6_105x148mm" keyword : (continued) "na_index-4x6_4x6in" keyword : (continued) "na_index-5x8_5x8in" keyword : (continued) "na_index-3x5_3x5in" keyword : (continued) "na_monarch_3.875x7.5in" keyword : (continued) "na_number-10_4.125x9.5in" keyword : (continued) "iso_dl_110x220mm" keyword : (continued) "iso_c5_162x229mm" keyword : (continued) "iso_c6_114x162mm" keyword : (continued) "na_a2_4.375x5.75in" keyword : (continued) "jpn_chou3_120x235mm" keyword : (continued) "jpn_chou4_90x205mm" keyword : (continued) "oe_photo-l_3.5x5in" keyword : (continued) "na_5x7_5x7in" keyword : (continued) "na_personal_3.625x6.5in" keyword : (continued) "iso_b5_176x250mm" keyword : (continued) "om_small-photo_100x150mm" keyword : (continued) "na_foolscap_8.5x13in" keyword : (continued) "custom_min_3x5in" keyword : (continued) "custom_max_8.5x14in" keyword : media-default = "iso_a4_210x297mm" keyword : media-col-supported = "media-type" keyword : (continued) "media-size" keyword : (continued) "media-top-margin" keyword : (continued) "media-left-margin" keyword : (continued) "media-right-margin" keyword : (continued) "media-bottom-margin" keyword : (continued) "media-source" keyword : (continued) "media-size-name" begCollection : media-col-default = "" memberAttrName : (continued) "media-size" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "8" memberAttrName : (continued) "y-dimension" integer : (continued) "4" endCollection : (continued) "" memberAttrName : (continued) "media-top-margin" integer : (continued) "40" memberAttrName : (continued) "media-bottom-margin" integer : (continued) "40" memberAttrName : (continued) "media-left-margin" integer : (continued) "40" memberAttrName : (continued) "media-right-margin" integer : (continued) "40" memberAttrName : (continued) "media-source" keyword : (continued) "main" memberAttrName : (continued) "media-type" keyword : (continued) "stationery" endCollection : (continued) "" integer : media-left-margin-supported = "40" integer : (continued) "0" integer : media-right-margin-supported = "40" integer : (continued) "0" integer : media-top-margin-supported = "40" integer : (continued) "0" integer : media-bottom-margin-supported = "40" integer : (continued) "0" keyword : media-source-supported = "main" keyword : media-type-supported = "stationery" keyword : (continued) "photographic-glossy" keyword : (continued) "com.hp.specialty-glossy" keyword : (continued) "com.hp.specialty-matte" begCollection : media-size-supported = "" memberAttrName : (continued) "x-dimension" integer : (continued) "239" memberAttrName : (continued) "y-dimension" integer : (continued) "46" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "86" memberAttrName : (continued) "y-dimension" integer : (continued) "36" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "86" memberAttrName : (continued) "y-dimension" integer : (continued) "232" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "96" memberAttrName : (continued) "y-dimension" integer : (continued) "56" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "146" memberAttrName : (continued) "y-dimension" integer : (continued) "86" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "208" memberAttrName : (continued) "y-dimension" integer : (continued) "8" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "8" memberAttrName : (continued) "y-dimension" integer : (continued) "4" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "24" memberAttrName : (continued) "y-dimension" integer : (continued) "100" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "16" memberAttrName : (continued) "y-dimension" integer : (continued) "208" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "4" memberAttrName : (continued) "y-dimension" integer : (continued) "208" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "176" memberAttrName : (continued) "y-dimension" integer : (continued) "136" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "156" memberAttrName : (continued) "y-dimension" integer : (continued) "96" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "196" memberAttrName : (continued) "y-dimension" integer : (continued) "156" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "114" memberAttrName : (continued) "y-dimension" integer : (continued) "106" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "237" memberAttrName : (continued) "y-dimension" integer : (continued) "66" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "248" memberAttrName : (continued) "y-dimension" integer : (continued) "240" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "72" memberAttrName : (continued) "y-dimension" integer : (continued) "116" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "136" memberAttrName : (continued) "y-dimension" integer : (continued) "72" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "104" memberAttrName : (continued) "y-dimension" integer : (continued) "13" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "224" memberAttrName : (continued) "y-dimension" integer : (continued) "204" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "40" memberAttrName : (continued) "y-dimension" integer : (continued) "20" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "186" memberAttrName : (continued) "y-dimension" integer : (continued) "156" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "156" memberAttrName : (continued) "y-dimension" integer : (continued) "116" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "247" memberAttrName : (continued) "y-dimension" integer : (continued) "126" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "192" memberAttrName : (continued) "y-dimension" integer : (continued) "168" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "16" memberAttrName : (continued) "y-dimension" integer : (continued) "152" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "86" memberAttrName : (continued) "y-dimension" integer : (continued) "252" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" rangeOfInteger : (continued) "" memberAttrName : (continued) "y-dimension" rangeOfInteger : (continued) "" endCollection : (continued) "" keyword : media-ready = "iso_a4_210x297mm" begCollection : media-col-ready = "" memberAttrName : (continued) "media-size" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "8" memberAttrName : (continued) "y-dimension" integer : (continued) "4" endCollection : (continued) "" memberAttrName : (continued) "media-top-margin" integer : (continued) "40" memberAttrName : (continued) "media-bottom-margin" integer : (continued) "40" memberAttrName : (continued) "media-left-margin" integer : (continued) "40" memberAttrName : (continued) "media-right-margin" integer : (continued) "40" memberAttrName : (continued) "media-source" keyword : (continued) "main" memberAttrName : (continued) "media-type" keyword : (continued) "stationery" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "media-size" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "8" memberAttrName : (continued) "y-dimension" integer : (continued) "4" endCollection : (continued) "" memberAttrName : (continued) "media-top-margin" integer : (continued) "0" memberAttrName : (continued) "media-bottom-margin" integer : (continued) "0" memberAttrName : (continued) "media-left-margin" integer : (continued) "0" memberAttrName : (continued) "media-right-margin" integer : (continued) "0" memberAttrName : (continued) "media-source" keyword : (continued) "main" memberAttrName : (continued) "media-type" keyword : (continued) "stationery" endCollection : (continued) "" begCollection : (continued) "" memberAttrName : (continued) "media-size" begCollection : (continued) "" memberAttrName : (continued) "x-dimension" integer : (continued) "8" memberAttrName : (continued) "y-dimension" integer : (continued) "4" endCollection : (continued) "" memberAttrName : (continued) "media-top-margin" integer : (continued) "40" memberAttrName : (continued) "media-bottom-margin" integer : (continued) "40" memberAttrName : (continued) "media-left-margin" integer : (continued) "40" memberAttrName : (continued) "media-right-margin" integer : (continued) "40" memberAttrName : (continued) "media-source" keyword : (continued) "main" memberAttrName : (continued) "media-type" keyword : (continued) "stationery" endCollection : (continued) "" integer : pages-per-minute = "8" integer : pages-per-minute-color = "6" rangeOfInteger : jpeg-k-octets-supported = "" rangeOfInteger : jpeg-x-dimension-supported = "" rangeOfInteger : jpeg-y-dimension-supported = "" keyword : pdf-versions-supported = "none" keyword : urf-supported = "CP1" keyword : (continued) "MT1-2-8-9-10-11" keyword : (continued) "PQ3-4-5" keyword : (continued) "RS300" keyword : (continued) "SRGB24" keyword : (continued) "OB9" keyword : (continued) "OFU0" keyword : (continued) "W8-16" keyword : (continued) "DEVW8-16" keyword : (continued) "DEVRGB24-48" keyword : (continued) "ADOBERGB24-48" keyword : (continued) "IS1" keyword : (continued) "V1.4" nameWithoutLanguage : marker-names = "tri-color ink" nameWithoutLanguage : (continued) "black ink" nameWithoutLanguage : marker-colors = "#00FFFF#FF00FF#FFFF00" nameWithoutLanguage : (continued) "#000000" keyword : marker-types = "ink-cartridge" keyword : (continued) "ink-cartridge" integer : marker-low-levels = "1" integer : (continued) "1" integer : marker-high-levels = "100" integer : (continued) "100" integer : marker-levels = "90" integer : (continued) "90" unspecified-octetString: printer-supply = "type=inkCartridge;maxcapacity=100;level=90;class=supplyThatIsConsumed;unit=percent;colorantname=multi-color;" unspecified-octetString: (continued) "type=inkCartridge;maxcapacity=100;level=90;class=supplyThatIsConsumed;unit=percent;colorantname=black;" textWithoutLanguage : printer-supply-description = "" textWithoutLanguage : (continued) "" nameWithoutLanguage : printer-firmware-name = "XXXXXXXXXXXX" textWithoutLanguage : printer-firmware-string-version = "XXXXXXXXXXXX" unspecified-octetString: printer-firmware-version = "XXXXXXXXXXXX" unspecified-octetString: printer-input-tray = "type=sheetFeedAutoNonRemovable;dimunit=micrometers;mediafeed=297000;mediaxfeed=210000;maxcapacity=-2;level=-2;status=0;name=InputTray1" unspecified-octetString: printer-output-tray = "type=unknown;maxcapacity=-2;remaining=-2;status=5;stackingorder=unknown;pagedelivery=faceUp;name=OutputTray1" integer : copies-default = "1" enum : finishings-default = "3" enum : orientation-requested-default = "3" enum : print-quality-default = "4" resolution : printer-resolution-default = "" keyword : sides-default = "one-sided" keyword : output-bin-default = "face-up" keyword : output-mode-default = "auto" keyword : print-color-mode-default = "auto" keyword : multiple-document-handling-default = "separate-documents-uncollated-copies" integer : number-up-default = "1" keyword : presentation-direction-number-up-default = "toright-tobottom" keyword : print-rendering-intent-default = "auto" keyword : print-scaling-default = "auto" rangeOfInteger : copies-supported = "" enum : finishings-supported = "3" enum : orientation-requested-supported = "3" enum : print-quality-supported = "3" enum : (continued) "4" enum : (continued) "5" resolution : printer-resolution-supported = "" keyword : sides-supported = "one-sided" keyword : output-bin-supported = "face-up" keyword : output-mode-supported = "auto" keyword : (continued) "auto-monochrome" keyword : (continued) "monochrome" keyword : (continued) "color" keyword : print-color-mode-supported = "auto" keyword : (continued) "auto-monochrome" keyword : (continued) "monochrome" keyword : (continued) "color" keyword : (continued) "process-monochrome" boolean : page-ranges-supported = "True" keyword : multiple-document-handling-supported = "separate-documents-uncollated-copies" keyword : (continued) "separate-documents-collated-copies" integer : number-up-supported = "1" keyword : presentation-direction-number-up-supported = "toright-tobottom" keyword : print-rendering-intent-supported = "auto" keyword : (continued) "perceptual" keyword : print-scaling-supported = "auto" keyword : (continued) "auto-fit" keyword : (continued) "fill" keyword : (continued) "fit" keyword : (continued) "none" uri : printer-icons = "http://192.168.1.14/webApps/images/printer-small.png" uri : (continued) "http://192.168.1.14/webApps/images/printer.png" uri : (continued) "http://192.168.1.14/webApps/images/printer-large.png" uri : printer-supply-info-uri = "http://192.168.1.14/#hId-pgInkConsumables" keyword : print-content-optimize-default = "auto" keyword : print-content-optimize-supported = "auto" keyword : (continued) "photo" keyword : (continued) "graphics" keyword : (continued) "text" keyword : (continued) "text-and-graphics" keyword : pwg-raster-document-sheet-back = "rotated" keyword : pwg-raster-document-type-supported = "sgray_8" keyword : (continued) "srgb_8" keyword : (continued) "adobe-rgb_8" keyword : (continued) "sgray_16" keyword : (continued) "srgb_16" keyword : (continued) "adobe-rgb_16" keyword : (continued) "rgb_8" keyword : (continued) "rgb_16" resolution : pwg-raster-document-resolution-supported = "" textWithoutLanguage : epcl-version-supported = "1.0" boolean : manual-duplex-supported = "False" resolution : pclm-source-resolution-supported = "" resolution : (continued) "" resolution : pclm-source-resolution-default = "" integer : pclm-strip-height-supported = "16" integer : pclm-strip-height-preferred = "16" keyword : pclm-raster-back-side = "rotated" keyword : pclm-compression-method-preferred = "jpeg" keyword : (continued) "flate" keyword : (continued) "rle" keyword : document-format-varying-attributes = "copies" keyword : printer-get-attributes-supported = "document-format" textWithoutLanguage : printer-organization = "" textWithoutLanguage : printer-organizational-unit = "" keyword : identify-actions-default = "flash" keyword : identify-actions-supported = "flash" keyword : (continued) "pin" enum : limit-operations-supported = "10" integer : multiple-operation-time-out = "120" boolean : multiple-document-jobs-supported = "False" end-of-attributes-tag: done. Checking 192.168.1.23...connected, interrogating... IPP protocol in use is 1.1 Status code is &0000 Request ID is &00000001 operation-attributes-tag: charset : attributes-charset = "utf-8" naturalLanguage : attributes-natural-language = "en-us" uri : printer-uri = "ipp://192.168.1.23:631/ipp/print" printer-attributes-tag: integer : job-priority-default = "50" keyword : job-hold-until-default = "no-hold" keyword : job-sheets-default = "none" keyword : multiple-document-handling-default = "separate-documents-uncollated-copies" integer : copies-default = "1" enum : finishings-default = "3" keyword : sides-default = "one-sided" integer : number-up-default = "1" enum : orientation-requested-default = "3" keyword : media-default = "iso_a4_210x297mm" resolution : printer-resolution-default = "" enum : print-quality-default = "4" keyword : media-type-default = "stationery" keyword : media-source-default = "tray-1" keyword : print-color-mode-default = "monochrome" keyword : output-bin-default = "top" keyword : output-mode-default = "monochrome" integer : job-priority-supported = "100" nameWithoutLanguage : job-hold-until-supported = "no-hold" keyword : job-sheets-supported = "none" keyword : multiple-document-handling-supported = "separate-documents-uncollated-copies" rangeOfInteger : copies-supported = "" enum : finishings-supported = "3" boolean : page-ranges-supported = "False" keyword : sides-supported = "one-sided" integer : number-up-supported = "1" enum : orientation-requested-supported = "3" keyword : media-supported = "na_letter_8.5x11in" keyword : (continued) "na_legal_8.5x14in" keyword : (continued) "iso_a4_210x297mm" keyword : (continued) "na_executive_7.25x10.5in" keyword : (continued) "jis_b5_182x257mm" keyword : (continued) "iso_b5_176x250mm" keyword : (continued) "na_number-10_4.125x9.5in" keyword : (continued) "na_monarch_3.875x7.5in" keyword : (continued) "iso_dl_110x220mm" keyword : (continued) "iso_c5_162x229mm" keyword : (continued) "na_foolscap_8.5x13in" keyword : (continued) "iso_a5_148x210mm" keyword : (continued) "oe_oficio_8.5x13.5in" keyword : (continued) "na_index-4x6_4x6in" keyword : (continued) "custom_min_76x127mm" keyword : (continued) "custom_max_216x356mm" resolution : printer-resolution-supported = "" enum : print-quality-supported = "4" keyword : job-creation-attributes-supported = "copies" keyword : (continued) "finishings" keyword : (continued) "ipp-attribute-fidelity" keyword : (continued) "job-name" keyword : (continued) "document-format" keyword : (continued) "document-name" keyword : (continued) "media" keyword : (continued) "media-col" keyword : (continued) "media-size" keyword : (continued) "media-type" keyword : (continued) "media-source" keyword : (continued) "multiple-document-handling" keyword : (continued) "number-up" keyword : (continued) "output-bin" keyword : (continued) "output-mode" keyword : (continued) "orientation-requested" keyword : (continued) "print-quality" keyword : (continued) "printer-resolution" keyword : (continued) "sides" keyword : (continued) "print-color-mode" keyword : media-col-supported = "media-size" keyword : (continued) "media-type" keyword : (continued) "media-source" keyword : (continued) "media-bottom-margin" keyword : (continued) "media-top-margin" keyword : (continued) "media-right-margin" keyword : (continued) "media-left-margin" integer : media-bottom-margin-supported = "144" integer : media-left-margin-supported = "144" integer : media-right-margin-supported = "144" integer : media-top-margin-supported = "144" keyword : media-source-supported = "tray-1" keyword : media-type-supported = "stationery" keyword : (continued) "stationery-heavyweight" keyword : (continued) "stationery-lightweight" keyword : (continued) "stationery-bond" keyword : (continued) "stationery-colored" keyword : (continued) "cardstock" keyword : (continued) "labels" keyword : (continued) "envelope" keyword : (continued) "recycled" keyword : (continued) "preprinted" keyword : (continued) "cotton" keyword : (continued) "archive" keyword : pdf-versions-supported = "none" keyword : urf-supported = "W8" keyword : (continued) "RS600" keyword : (continued) "IS1" keyword : (continued) "CP1" keyword : (continued) "IFU0" keyword : (continued) "PQ4" keyword : (continued) "OB10" keyword : (continued) "V1.2" keyword : job-password-encryption-supported = "none" integer : job-password-supported = "0" keyword : print-color-mode-supported = "monochrome" keyword : (continued) "auto" keyword : output-bin-supported = "top" keyword : output-mode-supported = "monochrome" keyword : (continued) "auto" uri : printer-uri-supported = "ipp://192.168.1.23/ipp/print" uri : (continued) "ipp://SEC001599CB3A77.local./ipp/print" keyword : uri-security-supported = "none" keyword : (continued) "none" keyword : uri-authentication-supported = "none" keyword : (continued) "none" nameWithoutLanguage : printer-name = "XXXXXXXXXXXXXXX" textWithoutLanguage : printer-location = "France" textWithoutLanguage : printer-info = "Samsung M2020 Series (XXXXXXXXXXXXXXX)" uri : printer-more-info = "http://192.168.1.23/sws/index.html?link=/sws/app/settings/network/AirPrint/AirPrint.html" uri : printer-driver-installer = "http://www.samsung.com/Support/ProductSupport/download/index.aspx" textWithoutLanguage : printer-make-and-model = "Samsung M2020 Series" enum : printer-state = "3" keyword : printer-state-reasons = "none" textWithoutLanguage : printer-state-message = "Printer is ready to print" keyword : ipp-versions-supported = "1.0" keyword : (continued) "1.1" keyword : (continued) "2.0" enum : operations-supported = "2" enum : (continued) "4" enum : (continued) "5" enum : (continued) "6" enum : (continued) "8" enum : (continued) "9" enum : (continued) "10" enum : (continued) "11" boolean : multiple-document-jobs-supported = "False" charset : charset-configured = "utf-8" charset : charset-supported = "utf-8" naturalLanguage : natural-language-configured = "en-us" naturalLanguage : generated-natural-language-supported = "en-us" mimeMediaType : document-format-default = "application/octet-stream" mimeMediaType : document-format-supported = "application/octet-stream" mimeMediaType : (continued) "application/x-QPDL" mimeMediaType : (continued) "image/urf" boolean : printer-is-accepting-jobs = "True" integer : queued-job-count = "0" textWithoutLanguage : printer-message-from-operator = "Operator Message" boolean : color-supported = "False" keyword : pdl-override-supported = "attempted" integer : printer-up-time = "145" integer : multiple-operation-time-out = "44" keyword : compression-supported = "none" rangeOfInteger : job-k-octets-supported = "" rangeOfInteger : job-impressions-supported = "" rangeOfInteger : job-media-sheets-supported = "" integer : pages-per-minute = "20" enum : landscape-orientation-requested-preferred = "4" mimeMediaType : document-format-preferred = "image/urf" nameWithoutLanguage : marker-colors = "#FFFFFF" integer : marker-high-levels = "100" integer : marker-levels = "42" integer : marker-low-levels = "5" nameWithoutLanguage : marker-names = "Black Toner_S/N_:CRUM-XXXXXXXXXXXX" keyword : marker-types = "toner" textWithoutLanguage : printer-device-id = "MFG:Samsung;CMD:SPL,URF,FWV,PIC,EXT,DCU;MDL:M2020 Series;CLS:PRINTER;CID:SA_SPLV3_BW;MODE:SPL3,R000105;" uri : printer-icons = "http://192.168.1.23/images/printer-icon128.png" nameWithoutLanguage : printer-dns-sd-name = "Samsung M2020 Series (XXXXXXXXXXXXXXX)" no-value : printer-geo-location = "" uri : printer-supply-info-uri = "http://192.168.1.23/sws/index.html?link=/sws/app/Information/supplies/supplies.html" uri : printer-uuid = "urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" end-of-attributes-tag: done. 3 IPP printers located: 192.168.1.1: Active, Mono (or undefined), INCOMPATIBLE, name is "My Gateway Printer" 192.168.1.14: Active, Colour, Compatible, name is "HP DeskJet 3630 series [XXXXXX]" 192.168.1.23: Active, Mono (or undefined), Compatible, name is "Samsung M2020 Series (XXXXXXXXXXXXXXX)" * |
Rick Murray (539) 13840 posts |
Some observations. The Livebox (Orange ADSL router) seems to have some sort of basic printer sharer service built in. The HP inkjet supports:
The Samsung laser supports:
Both printers specifically do not support PDF. These appear to be versions of URF raster image known by both printers (H = HP, S = Samsung):
|
Dave Higton (1515) 3525 posts |
Isn’t it interesting to see what can happen when a few people talk about a topic? Lots of pieces of valuable information can be assembled together, and we can all become better informed. I think we’re beginning to be able to see a way forward for a new generation of RISC OS printer drivers. |
Dave Higton (1515) 3525 posts |
In the PCL XL document, look at PDF page 35, section 2.8.2. The text referes to a left parenthesis, but the example shows a right parenthesis. |
Steve Pampling (1551) 8170 posts |
The curious thing for me is that finding the information I did represents about 2 minutes of queries thrown at Google and a little more than that putting the information into a post.
That reminds me that I’ve seen a number of other routers with print server facilities. |
Pages: 1 2 3 4 5 6 7 8 9 10 11 ... 13