Printing
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13
Rick Murray (539) 13850 posts |
Uh, this is RISC OS. There’s probably more mono than colour. ;) Try the HP range. The old DeskJets (500?) were mono, with the colour (550C?) coming along a little later. There’s also most of the Epson fx and lq range. HP LaserJet 2 as the bog standard for laser compatibility (which, amusingly, even works with mine today! (LJ6 for better resolution)).
Yes. ;) The dumper processes what it is asked to do, but if there’s a choice of strip types, something must be controlling that choice. I think this is Printers using the PDriver_SetDriver SWI. Which I presume would be controlled by a PDF. |
Chris Mahoney (1684) 2165 posts |
There was a 500C, which could do mono or colour, but not both at once :) |
Steve Pampling (1551) 8172 posts |
Some while back, 1990’s?? Black cartridge and a CMY (no “Key” so the attempted “black” was more “dark mud” IIRC) |
Chris Mahoney (1684) 2165 posts |
Yeah, the ‘black’ was more of a greeny-brown. And I think you’re right about the rollers too! |
Dave Higton (1515) 3534 posts |
FX80 was the first thing I looked for, before posting here. Not in my collection of PDFs because I have Gutenprint. Eventually I found it in a HardDisc4 download. I was able to see that my dumper had been given a strip type 1. More work tonight. It doesn’t help that I don’t have a memory of lots of printers. I suppose I was never very interested in them. We had a Brother M1109 which was small but so heavy it appeared to be made of collapsed matter. It served us well for years. In well over 30 years we have only had 3 printers. |
Rick Murray (539) 13850 posts |
Given the headaches (see below), that’s probably just as well. ;) Epson fx80 – workhorse, pretty much any dot matrix worth looking at supported this. Epson lq – like the fx, but IIRC the matrix was 24 pins so stuff looked a lot nicer. HP DeskJet – the standard for early inkjet printers. Originally monochrome, gained colour in varying degrees (such as the “can print in colour or black but not both at the same time”). HP LaserJet – the standard for laser printers. IIRC LJ1 was 150dpi and LJ2 was 300dpi. Any laser worth looking at back then supported LJ2. PostScript – supported by printers with scary price tags. Everything else – something that was either really specific (like a golfball or daisy wheel printer, plotter, etc) or some piece of crap that wasn’t work looking at. The primary problem is that pre-Windows, every program required its own drivers, and it wasn’t feasible for the smaller manufacturers to roll out drivers for all sorts of programs. Therefore there was milage in supporting something common. An example (referenced above) was a laser printer I used to have. I think it was an Epson GQ3500 or something like that. It did not support LaserJet, but it did support the LQ (yup, treating a laser as a dot matrix!). Licencing issue? Thankfully they came to their senses with the later model (GQ5000?). Then there was stuff like the Kyocera f800 that included its own page description language that was pretty powerful but not like anything else (and thus supported by practically nothing). In the more modern era, a lot of cheap printers were classed as “Windows printers”. This is because the printer was just a print engine, all the clever stuff was done via the driver. Accordingly, they didn’t tend to do anything useful plugged into a non-Windows box. A hybrid is stuff like… PCL6e I think they call it. It’s a version of HP PCL understood by a few budget printers. Sadly, this PCL isn’t documented. Finally, coming into modern times, people wanted to print from their various devices. Apple led the way with AirPrint, which “just works” (but often does really dumb things like blowing up a small picture to full page size). Apple being Apple, there is practically no control over what happens. Pick a printer, pick the number of copies, prod the Print button. There’s another group with a weird name (I forget) bringing this functionality to other devices. Moria? Mopria? More recently, IPP is trying to create a protocol for an “it just works” printer. |
Rick Murray (539) 13850 posts |
Back then, printers were built to last. I have a Panasonic KX-P1180 under the other desk. It’s covered in dust and hasn’t been used in thirty years. I have a feeling that a clean and a drop of oil and a new ribbon, and my main problem will be trying to find a parallel port to plug it into. My HP3630 inkjet? I’m actually surprised it’s still running after four and a half years. Maybe because I’m an Instant Ink subscriber? Or is that too cynical, even for me? ;) |
Dave Higton (1515) 3534 posts |
The FX-80 PDF makes the Printer Manager offer me three types of grey scale, all of which result in strip type 1 when a monochrome or colour file is printed. (Funny, I don’t remember the FX-80 supporting grey scale – the pixels it printed were either black or nothing…) It was a surprise that it didn’t offer type 0. I think my best chance of being offered the other types of strip will be to reduce the strip types that my dumper offers. I’ve got a convincing rendering of a simple sprite and simple Drawfile to a grey scale, which is actually R = G = B on an RGB 24-bit output. PWG-Raster doesn’t offer any other way of rendering a grey scale AFAIK. Strangely, asking Paint to print my sprite in landscape mode produces a wrong result. I suppose it must be my fault, but it’s going to be a challenge to diagnose that, and it’ll have to wait until tomorrow. |
Dave Higton (1515) 3534 posts |
Discussion of the way to send large data payloads is off topic, so I’ve started a new topic “URL_Fetcher and AcornHTTP” in Code Review. |
Dave Higton (1515) 3534 posts |
There is an sgray8 format, which doesn’t appear in PWG 5102.4-2012. A most curious omission. |
Rick Murray (539) 13850 posts |
The chart on page 30. There’s an sgray_16 version as well. Perhaps, since the sgray 1 example is one bit, and the srgb uses eight bits, they’re thinking you can work out the eight bit greyscale method, it’s just like r with no gb. ;) 1 Bugs me to spell it with an ‘a’. |
Dave Higton (1515) 3534 posts |
Two progress items to report. First is that a couple of us have successfully printed out some documents using IPP. It’s a process that my last employer described as “knife and fork”, though; it’s not ready for general use by non-techy users yet. Second is that I’ve just released an app called GetIPPInfo that should collect IPP info from printers, to try to help deal with some of the inconsistences in implementations of IPP in various printers. I’ve announced it in the Announcements forum. I would very much appreciate it if those of you who have IPP printers would use the app to gather the info and email it to me. |
Rick Murray (539) 13850 posts |
I talk a little about this on my blog, today’s entry. While a fair bit of manual work is needed, it can and does work, and honestly I think huge swathes of the problems are limitations in the print system and printers themselves being a pain in the intergluteal cleft. What Dave has managed this far is amazing. I take my virtual hat off.
Looking at this in an editor on my phone, it seems to support both http and https, going by strings in the executable. If this is the case, does it use the URL fetcher? If so, there is a chance that certain HP printers will not respond correctly because they refuse to accept HTTP/1.0 even though there’s no sensible reason for that (my own low level code is written with HTTP/1.0 capabilities and I just bung in a /1.1 identification and it works fine. |
Dave Higton (1515) 3534 posts |
It does indeed.
Thanks, Rick, that’s good. I must look some more at the HTTP module. I don’t think the difficulties are insuperable. (Whose famous last words are they?…) |
Rick Murray (539) 13850 posts |
It is also important to interrogate your WiFi capable printers for another reason. As As I mention on my blog, WiFi printing is actually two different protocols, that are actually quite similar. The first, supported on practically everything, is Apple’s AirPrint. This uses IPP as a transport to get data to the printer, but the actual data is a closed “URF” format (though it has been reverse engineered to some degree). The second, that Dave’s IPP printer driver works with, is the IPP Everywhere specification, which uses an open and documented bitmap format called “PWG”. This is likely to be supported in some printers as of 2016-2017ish, and it would be strange to find a printer that had been sold this decade that did not support it. As PWG is similar to URF and it uses the same transport mechanism, there’s a possibility that a firmware update will add such capability. My short-lived Epson printer claimed AirPrint, not IPP Everywhere. It got a firmware update, it then handled both. So if your printer is PWG capable, or AirPrint URF only, do be sure to send Dave your results so he can build a picture of what sort of devices us RISC OS users actually use. |
Dave Higton (1515) 3534 posts |
If the HTTP module can be persuaded to send arbitrarily long payloads, presented to it in arbirtrarily-sized lumps, I can see the way to provide a little app that sits on the icon bar, to which a PWG-Raster file from my PDumperIPP module could be dragged. That would make IPP printing a two-step process, easy enough for non-techy users to do. |
Dave Higton (1515) 3534 posts |
Very much yes. It would be easy to create a URF dumper module. Most of the code from the IPP module would be the same, other than populating the page headers. But let’s support the non-proprietary protocol first, and see how many printers are still excluded. The IPP info will tell us. |
Rick Murray (539) 13850 posts |
I was thinking, using my SpewPWG (because my printer is annoying) that it might be possible to take a leaf out of PrintPDF’s book and simply notice when a specific file appears (and is closed) to then load it into memory and spool it to the printer. So long as the user only has the one printer (for now!) that might even manage to make it an automatic thing! |
Doug Webb (190) 1180 posts |
Dave, I have tried your GetIPPInfo application on the following HP Printers: HPLaserJetPro254DW None give any data in the file apart from: I have tried it with the alternative port as well. The ported IPP tools, by Chris Gransden, does work with two printers to get the information. HP Laser Jet Pro 254DW supports airprint-1.6 The HP B110 doesn’t give any details but I am sure I did get some at one stage. Update: Looks like the HP B110a doesn’t do IPP/Airprint according to the manual I just downloaded so my memory playing games again :-) |
Alan Adams (2486) 1149 posts |
I’ve just tried GetIPPInfo on my two printers. One is an M277 multifunction, whose status page includes Airprint, but not IPP. The other is an HP P3015 which doesn’t mention either. The info from both is:
Does this suggest I need Rick’s modified version? |
Rick Murray (539) 13850 posts |
Well, I guess the good news is that it’s not just my HP printer that is fussy. It’s HP printers. The bad news? It’s a bit of a pain in the arse, but then, printers are sent to test us… https://heyrick.eu/blog/files/findipp_002.zip It can run in one of two modes. The first is a blind network scan where it will look for every device from x.×.×.1 to x.×.×.254 to see if there’s a response to a standard IPP information request. The second mode is to provide it with the IP address (not name) of a specific device, which will be examined. It may spew a lot of data, so best run in a TaskWindow. The report will likely contain your WiFi AP’s SSID and your printer’s serial number as well as its IP addresses (IPv4 and IPv6). Possibly cartridge serial numbers as well. Private information such as passwords (AP or printer admin) do not get handed out. Whether or not you choose to edit out such information (don’t delete anything, overtype it with ‘X’) is entirely up to you. If you experience problems, or don’t get data back, you can try adding the Notes:
|
Kevin (224) 322 posts |
Data for a HP Office Jet PRo 7720 Series |
Doug Webb (190) 1180 posts |
Hi Rick, Thanks for the FindIPP app. It finds all three of my printers and gives reports. Even the HP B110a that doesn’t mention IPP or Airprint now reports version 2. It seems it has to have ipp/printer at the end of the address not ipp/print. Also using the correct URL now allows IPPTools to get information from it. I’ll look at the data and clean it up and free it from any sensitive information and send it to Dave later this evening as I have to be somewhere..well should of been there an 1hr ago but time go by so quickly when you are enjoying testing things :-) |
Dave Higton (1515) 3534 posts |
Well, my app hasn’t been a conspicuous success, has it? :-( I think it has a problem dealing with things that just don’t respond, or maybe respond with an error that I don’t handle. |
Rick Murray (539) 13850 posts |
Seems like people that have gotten involved so far are using HP printers. In other words: uh oh. ;)
I notice you try https after http fails. I would imagine that fetching status with plain http should return a 426 error to require encrypted. But, yeah, there’s the lovely disconnect between what’s supposed to happen and what actually happens. :< |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13