Printing
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13
|
Dave’s application does not RMEnsure AcornHTTP, so it’s possible the blank results people are getting may be because of that. |
|
Aha. Another non-standard finding. A Kyocera printer that accepts IPP on port 631, but IPPS on port 443. |
|
Made sure AcornHTTP is loaded /RMEnsured and still blank resulst with my three HP printers. I have now sent over to Dave the ouput from Rick’s FindIPP application as well as the information on my three printers obtained via IPPTools. |
|
My Xerox B210 returns blank results, whether on IPP or IPPS. However, I got a response from Rick’s program, and sent that to Dave. |
|
I don’t appear to have AcornHTTP on my ARMX6 RO5.29. Where should I be looking? |
|
It is in the standard disc image in: Boot.Resources.!System.310.Modules.Network.URL It is loaded by applications that require it or you can manaullay load it. Latest version is 1.08 |
|
I’ve now used Rick’s program and got a LOT of data from 2 HP printers. It’s too long to post here, and I don’t know where to email it to. It’s hosted here: http://www.adamshome.org.uk/RiscOS/IPPdata.txt One of them lists IPP as an installed personality, both of them show IPP data. The summary is 2 IPP printers located: |
|
Having loaded AcornHTTP, Dave’s program now returns GetAttrs 0.01 (2022 April 2) GetAttrs 0.01 (2022 April 2) |
|
Yup. It seems HP printers reject HTTP/1.0 with a 505 error. They shouldn’t, but they do. The good part is that they don’t require TLS (that would be a 426 error) so I have a little program to chuck data at them… until AcornHTTP is updated. |
|
The first printer (mono?) technically supports IPP as a transport layer, but it doesn’t support either URF or PWG raster data. It does, however, support PCL so you ought to be able to hook it to RISC OS already using RemotePrinterFS and the LaserJet 6 driver. It’ll max out at 600dpi, but that’s good enough (I could really tell any difference between 600dpi and 1200dpi on my Samsung laser printing from Windows; and the Android driver doesn’t seem to even be capable of doing 300dpi!). The second more verbose printer (colour laser) supports IPP as a transport layer, but only understands URF, but PWG. Both can support PostScript as well. |
|
and both are working well with the PS3 driver and the Duplex driver. It was easier to set them up from RISC OS than from Windows 10, since I most emphatically didn’t want to instal the full HP software drivers for them. (I did that once before, and had to spend 3 days reinstalling Windows 7 and all the applications, since HP broke the Spooler service, and I couldn’t roll back.) |
|
Printer drivers randomly breaking stuff…you’d be forgiven for thinking it was on purpose.
For my HP, I had to pull apart the installation files to extract the .inf stuff and what it referred to. I only wanted the driver, not the several hundred megabytes of vaguely functional bloatware.
Thankfully when a printer upgrade breaks RISC OS (!Printers crashes on start with exceptions in a dp module giving messages that don’t appear in any of the drivers…), it’s a much simpler matter to simply move the settings (in Boot→Choices) out of the way and redo everything from scratch. But, be warned, Printers will collapse like a deck of cards if you poke it wrongly. ;) |
|
I eventually realised that my app should RmEnsure both AcornHTTP and AcornSSL. Of course they’re always running on my machine because I get and send email and news securely… |
|
Snap, but just incase I tried it with them loaded manually plus rmensured and still no joy with my HP printers. As Rick suggested they don’t like the what AcornHTTP can/can’t do. Anyway hope the two sets of information I sent you, using IPPTools and Rick’s FindIPP, is helpful. |
|
I’m receiving mDNS messages… This is only at the level of a feasibility study, but it does look promising. |
|
Another interesting finding. I created a Printer Definition File for one of the resolutions supported by my Epson RX620 printer, but referencing my IPP dumper, and printed a small document to file. Next I selected the proper RX620 printer definition in the RISC OS Printer Manager. Then I sent the IPP file to the share of the printer on my Linux box (https://linuxbox:631/printers/Epson-Stylus-Photo-RX620), and, lo and behold, it was printed out on the RX620! The Linux box accesses the printer via JDServer on RISC OS. Yes, it’s a very convoluted path, and I only used it for experimental purposes, but it has some interesting aspects. One is that mDNS shows that the shared printer has URI rather different from what you’d see in a printer addressed directly. Another is that the Linux box performs transcoding of the print stream, from IPP PWG-Raster (as generated by the IPP dumper) to Epson’s proprietary format. The Linux box’s mDNS messages state that image/pwg-raster is one of the acceptable formats, which again was a surprise – I didn’t expect transcoding capabilities. And the Linux box is happy to accept HTTP/1.0, unlike, apparently, HP printers. |
|
Ohh, I heard that slap from here! ;)
You’re working some absolute magic with this. Would you like me to give your mDNS a spin on my kit, see if it all matches up or if something (the HP?) is going to play silly buggers? |
|
The simpler way is to plug the RX620 directly into the Linux box (the RX620 is USB only – it’s very old!). Linux’s “ippfind” command then lists two URIs: ipp://LinuxBox.local:631/printers/Stylus-Photo-RX620 The former is the directly connected one, which must be using its default name found from the USB vendor and product IDs because it just popped up and was installed without any intervention or input from me. The latter is the one that accesses the printer via JDServer on my RasPi running RISC OS. I was then able to send the print job to https://linuxbox:631/printers/Stylus-Photo-RX620 and get a successful printout. |
|
Yes. You’ll need Reporter to be running. Expect an email shortly. |
|
Email just sent. |
|
Test successful! Snipped for size and to remove identifying info. Okay, the ancient crappy DeskJet (went and got it from the cow barn where it lives, gathering dust): 192.168.1.23 BC38 ¦00 00 84 00·00 00 00 05|00 00 00 08·0F 5F 70 64 : ..✘.........._pd : +0 BC48 ¦6C 2D 64 61·74 61 73 74|72 65 61 6D·04 5F 74 63 : l-datastream._tc : +16 BC58 ¦70 05 6C 6F·63 61 6C 00|00 0C 00 01·00 00 11 94 : p.local........“ : +32 BC68 ¦00 25 22 44·65 73 6B 6A|65 74 20 33·30 35 30 41 : .%"Deskjet 3050A : +48 BC78 ¦20 4A 36 31·31 20 73 65|72 69 65 73·20 5B 30 45 : J611 series [0E : +64 Identifies itself. BDB8 ¦74 61 6C 3D·31 24 70 64|6C 3D 61 70·70 6C 69 63 : tal=1$pdl=applic : +384 BDC8 ¦61 74 69 6F·6E 2F 76 6E|64 2E 68 70·2D 50 43 4C : ation/vnd.hp-PCL : +400 BDD8 ¦2C 69 6D 61·67 65 2F 75|72 66 1C 74·79 3D 44 65 : ,image/urf.ty=De : +416 BDE8 ¦73 6B 6A 65·74 20 33 30|35 30 41 20·4A 36 31 31 : skjet 3050A J611 : +432 Says what it supports as input. BE88 ¦30 45 44 44·43 34 2E 6C|6F 63 61 6C·2E 3D 6E 6F : 0EDDC4.local.=no : +592 BE98 ¦74 65 3D 50·65 72 63 68|65 64 20 6F·6E 20 61 20 : te=Perched on a : +608 BEA8 ¦62 69 67 20·74 69 6E 20|6F 66 20 70·69 6E 65 61 : big tin of pinea : +624 BEB8 ¦70 70 6C 65·20 63 68 75|6E 6B 73 20·69 6E 20 74 : pple chunks in t : +640 BEC8 ¦68 65 20 6B·69 74 63 68|65 6E 2E 29·55 55 49 44 : he kitchen.)UUID : +656 And (correctly!) says where it is. :-) BF48 ¦24 70 64 6C·3D 61 70 70|6C 69 63 61·74 69 6F 6E : $pdl=application : +784 BF58 ¦2F 76 6E 64·2E 68 70 2D|50 43 4C 2C·69 6D 61 67 : /vnd.hp-PCL,imag : +800 BF68 ¦65 2F 75 72·66 0E 72 70|3D 69 70 70·2F 70 72 69 : e/urf.rp=ipp/pri : +816 BF78 ¦6E 74 65 72·5A 55 52 46|3D 43 50 31·2C 4D 54 31 : nterZURF=CP1,MT1 : +832 BF88 ¦2D 32 2D 38·2D 39 2D 31|30 2D 31 31·2C 4F 42 39 : -2-8-9-10-11,OB9 : +848 BF98 ¦2C 4F 46 55·30 2C 50 51|33 2D 34 2D·35 2C 52 53 : ,OFU0,PQ3-4-5,RS : +864 BFA8 ¦33 30 30 2D·36 30 30 2C|53 52 47 42·32 34 2C 57 : 300-600,SRGB24,W : +880 BFB8 ¦38 2C 44 45·56 57 38 2C|44 45 56 52·47 42 32 34 : 8,DEVW8,DEVRGB24 : +896 BFC8 ¦2C 41 44 4F·42 45 52 47|42 32 34 2C·49 53 31 1C : ,ADOBERGB24,IS1. : +912 BFD8 ¦74 79 3D 44·65 73 6B 6A|65 74 20 33·30 35 30 41 : ty=Deskjet 3050A : +928 Says what it supports again, this time in more detail; and also specifying “rp=” so we know the correct URI to use (“ipp/printer”). The laser was next to respond: 192.168.1.17 BC38 ¦00 00 84 00·00 00 00 04|00 00 00 03·05 5F 68 74 : ..✘.........._ht : +0 BC48 ¦74 70 04 5F·74 63 70 05|6C 6F 63 61·6C 00 00 0C : tp._tcp.local... : +16 BC58 ¦00 01 00 00·11 94 00 29|26 53 61 6D·73 75 6E 67 : .....“.)&Samsung : +32 BC68 ¦20 4D 32 30·32 30 20 53|65 72 69 65·73 20 28 53 : M2020 Series (S : +48 Identifying itself (a lot!). BD68 ¦31 0C 72 70·3D 69 70 70|2F 70 72 69·6E 74 0B 6E : 1.rp=ipp/print.n : +304 BD78 ¦6F 74 65 3D·46 72 61 6E|63 65 08 71·74 6F 74 61 : ote=France.qtota : +320 The URI to use (“ipp/print”), and also where it is, more or less. BDC8 ¦65 72 69 65·73 29 39 70|64 6C 3D 61·70 70 6C 69 : eries)9pdl=appli : +400 BDD8 ¦63 61 74 69·6F 6E 2F 6F|63 74 65 74·2D 73 74 72 : cation/octet-str : +416 BDE8 ¦65 61 6D 2C·61 70 70 6C|69 63 61 74·69 6F 6E 2F : eam,application/ : +432 BDF8 ¦78 2D 51 50·44 4C 2C 69|6D 61 67 65·2F 75 72 66 : x-QPDL,image/urf : +448 What it supports as input. QPDL is something Samsung-specific. And, finally, the HP inkjet: 192.168.1.14 BC38 ¦00 00 84 00·00 00 00 0A|00 00 00 04·0F 5F 70 64 : ..✘.........._pd : +0 BC48 ¦6C 2D 64 61·74 61 73 74|72 65 61 6D·04 5F 74 63 : l-datastream._tc : +16 BC58 ¦70 05 6C 6F·63 61 6C 00|00 0C 00 01·00 00 11 94 : p.local........“ : +32 BC68 ¦00 22 1F 48·50 20 44 65|73 6B 4A 65·74 20 33 36 : .".HP DeskJet 36 : +48 BC78 ¦33 30 20 73·65 72 69 65|73 20 5B XX·XX XX XX XX : 30 series [XXXXX : +64 The identity. BF98 ¦71 74 6F 74·61 6C 3D 31|51 70 64 6C·3D 61 70 70 : qtotal=1Qpdl=app : +864 BFA8 ¦6C 69 63 61·74 69 6F 6E|2F 76 6E 64·2E 68 70 2D : lication/vnd.hp- : +880 BFB8 ¦50 43 4C 2C·69 6D 61 67|65 2F 6A 70·65 67 2C 61 : PCL,image/jpeg,a : +896 BFC8 ¦70 70 6C 69·63 61 74 69|6F 6E 2F 50·43 4C 6D 2C : pplication/PCLm, : +912 BFD8 ¦69 6D 61 67·65 2F 75 72|66 2C 69 6D·61 67 65 2F : image/urf,image/ : +928 BFE8 ¦70 77 67 2D·72 61 73 74|65 72 0C 72·70 3D 69 70 : pwg-raster.rp=ip : +944 BFF8 ¦70 2F 70 72·69 6E 74 11|50 61 70 65·72 4D 61 78 : p/print.PaperMax : +960 What it supports as input (hmm, here it mentions PCL!). And… can I dump a JPEG directly to it? Hmm, it’ll probably screw it up and do it wrong in some way… C038 ¦55 52 46 3D·43 50 31 2C|4D 54 31 2D·32 2D 38 2D : URF=CP1,MT1-2-8- : +1024 C048 ¦39 2D 31 30·2D 31 31 2C|50 51 33 2D·34 2D 35 2C : 9-10-11,PQ3-4-5, : +1040 C058 ¦52 53 33 30·30 2C 53 52|47 42 32 34·2C 4F 42 39 : RS300,SRGB24,OB9 : +1056 C068 ¦2C 4F 46 55·30 2C 57 38|2D 31 36 2C·44 45 56 57 : ,OFU0,W8-16,DEVW : +1072 C078 ¦38 2D 31 36·2C 44 45 56|52 47 42 32·34 2D 34 38 : 8-16,DEVRGB24-48 : +1088 C088 ¦2C 41 44 4F·42 45 52 47|42 32 34 2D·34 38 2C 49 : ,ADOBERGB24-48,I : +1104 C098 ¦53 31 2C 56·31 2E 34 16|74 79 3D 44·65 73 6B 4A : S1,V1.4.ty=DeskJ : +1120 More info on the URF types supported. The 3630 doesn’t appear to support a “location” comment. Maybe it is embarrassed about it’s lame HTTP/1.0 support? ;) The Epson XP-345 did not respond. I really can’t fathom why… It’s a good thing your app times out after 100 seconds, because it seemed that my phone was habitually broadcasting a directory of these devices (perhaps that was the Service Browser app?), and this is plucking information from numerous packets flying around, not to mention dupes of the data within the same packet. My laser gave its name seven times in the packet, and listed the supported pdls twice. So… I can see what Steve means about the protocol being “chatty”. |
|
Like all good Wimp apps, you can quit it from the Task Manager. By way of explanation to the rest of you: it has no user interface, and all its output is to Reporter. An unusual app. |
|
I can report that I’ve just sent an mDNS query out from my test app, and it instantly got a response from the Linux box about the printers it knows about. The query is for a PTR record, type 12, with name _ipp._tcp.local |
|
Does this mean that the e-mail goes off to an Epson server somewhere and then comes back to your printer somehow? i.e. off to the internet and back just to print? Or is print.epsonconnect.com set up in your Hosts file to point to your printer’s IP address? |
|
If it is the same basic idea as the HP ePrint system, then yes. The email is received by the provider’s server, it is parsed, interpretated, and then forwarded to the printer – I would assume as some sort of bitmap. I have an ePrint address, but I don’t use it because it tends to do some really stupid things like printing the body of the email (even if it’s just an automatic signature) and then refusing to print the attached image because it doesn’t like it. It seems ePrint cannot handle things like monochrome JPEGs. It’s as if nobody actually uses the products that they create. :-( |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13