I suggested a port of CUPS already two years ago, when I got my X5000.
About 20 years ago there was already some initial work done on an AmigaOS 4.x CUPS port, but it was probably one of the AmigaOS 4.x projects never finished.
I have one of those multi-function HP OfficeJet printers, and it works great with the PhotoSmart driver and netprinter.device -- but many OS3 programs don't work well with it. PDFs print perfectly, though. Is there a way to easily generate a PDF from something like FinalWriter using the PostScript driver and then using GhostScript to convert it to PDF?
Basically here is the workflow I imagine:
1. Use any program that support PostScript printing (should be all of them) 2. Print to PS file 3. Convert file to PDF 4. Use script to ftp PDF to printer
If I automate it then I get easy printing every time from whatever program supports AmigaOS printing. Just need to fill in the details.
-- eliyahu
"Physical reality is consistent with universal laws. When the laws do not operate, there is no reality. All of this is unreal."
In the standard AmigaOS4.x installation of Ghostscript there is a script in SYS:Utilities/Ghostscript/Data/8.54/lib/ called ps2pdf.
I have no idea whether is can run under AmigaOS (it does look like it's part of something copied directly from the Linux GhostScript). It will at least require the sh shell, but if you have the SDK installed, it should be available.
To print left/right arrows in text, try using "ampersand lt ;" or "ampersand gt ;".
Thanks for the tip. It didn't work- the page still goes blank when I preview the post (when I display the source for the blank page, it's blank too). However, it led me to try something different that did work.
There are two 'Preview' buttons on the post entry page. I've never been clear on what the difference is, but I normally use the lower one, as it seems to give a preview that more closely resembles the final post. That's the one that causes the page to go blank when there's a '<' (or an ampersand lt;).
However, when I tried the upper 'Preview' button the '<' appeared as it should. I tried submitting the post, and the '<' showed up, just as it did when using the upper 'Preview' button. So the problem seems to be limited to the lower 'Preview' button.
Incidentally, there's no problem when using the lower 'Preview' button with this post, so the problem isn't due just to the '<', but to the entire line of PostScript code in that particular post.
"PostScript" printer driver through netprinter.device utilizing a HP LaserJet 1320n with LAN access. Netprinter is set to the printers IP using "Direct" protocol on port 9100
I do have the maximum printer memory installed (128 MB), but it doesn't seem to use that (probably meant for multiple print jobs coming from different source instead of one). So "spooling" doesn't seem to work, as does multiple pages print (e.g. a double or triple page print from inside AmiPDF tends to crash ghostscript for some reason)
Apparently, terminillis has had Gutenprint ported as part of the FinalWriter project. I wonder if that could be of any help once the OS4 port of FinalWriter is finished?
Well it’s not quite that simple. Finalwriter implements ipp everywhere and ijs while being built to use a newer Ghostscript.
I really wish that there were a developer or two (other than me) interested in improving the printer system. Printing systems have become a bit more standardized, so creating something new based on CUPS ia feasible. We don't necessarily need a CUPS port; just make something using the same APIs, or at least the underlying standards (e.g., IPP & PPD).
Hans
You don’t need all of cups just enough to support ipp correctly. ipp everywhere requires all printers to support pwg raster format so therefore implementing ipp proper with pwg raster output you now support all of the modern “driverless” printers.
You don’t need all of cups just enough to support ipp correctly. ipp everywhere requires all printers to support pwg raster format so therefore implementing ipp proper with pwg raster output you now support all of the modern “driverless” printers.
Very true. We do need an updated printer system, though, so that detecting and using printers is easy for everyone (including developers).
This thread is filled with workarouds people have found to be able to use modern printers with OS4. It's impressive in some ways, but nobody should have to resort to such workarounds just to use a printer.
All of the detection etc is part of the ipp everywhere spec. A newer version of Ghostscript goes a long way towards implementing the required formats.
“ Required: IPP/2.0, DNS-SD, PWG Raster and JPEG JFIF file formats (JPEG only required for color printers) Recommended: PDF, IPP-USB”
The bigger issue is compatibility with the printer.device for legacy software. Finalwriter uses its own print system so we’re able to choose how we communicate.
All of the detection etc is part of the ipp everywhere spec.
I know. I've already looked into this...
Quote:
The bigger issue is compatibility with the printer.device for legacy software. Finalwriter uses its own print system so we’re able to choose how we communicate.
Chris' ipp.device might be a good starting point for backward compatibility.
Have you considered making Finalwriter's print system standalone, so it could be used by all software? The AmigaOS printer device is too limited in its abilities.
I started looking into the printing part of the Amiga last year , due the lack of support we have today, and as mentioned IPP is the way to go regards the communication. Today most printers support the PWG-raster format. Both ipp and pwg-raster is open source and documented protocols.
Our printers should be autodetected trough mdns/dns-sd protocol. I have made a working sourcecode for detecting printers/scanners trough mdns protocol. ( I use this in Airscan for detecting scanners ).
I have started with the IPP communication and successfully manages to send supported formats to printer, and are able to print to ipp printers.
The remaining part that I struggle with is how amiga os4 sends its binary to print from the print command and trough its device.
I was thinking about copying the rasterport to print and convert it to pwg-raster, but this is as far I have come.
Maybe coders of ipp.device and other printer.devices could offer some help here?
@mcleppa Thank you so much for all the work you are doing. Having better printing support is necessary for our systems.
I don't know how to help you with the problem you try to solve, but I would like to make sure you have seen the following. I don't know if they have the information you are looking for though.
Yes, the pwg-raster bit needs a proper printer driver.
There are three parts to AmigaOS printing:
1. printer.device - high-level interface that programs use to print
2. Device driver that printer.device uses to communicate with the printer. This could be parallel.device or, in your case, ipp.device (NB: my old ipp.device is here if it helps at all: https://github.com/chris-y/ipp-device)
3. Printer driver, eg. PostScript. This is the part which converts the output into printer language. In your case this would be pwg-raster.
So printer.device converts the output using the printer driver, and then sends it to the printer using the specified device driver.
In traditional land, it would convert to something like PCL and then use parallel.device to send to a parallel attached printer. In our modern scenario, it needs to convert to pwg-raster and then send using IPP. Your ipp.device might need a prefs editor which scans for devices if you want to use M-DNS/DNS-SD.
Thank you for your input Chris, now I have an idea how communication is from the amiga to the printer. As you mention then my ipp.device should open my own prefs editor which sends the communication from there.
I have also checked your sourcecode for ipp.device that has helped me a lot so far.
Could you help me out Chris in making a device or pointing out where in the sourcecode I can input code for starting up such an editor?