Short: IPP/AirPrint driver and setup tool Author: Darren Banfi (boingball) Uploader: boingball gmail com (Darren Banfi) Type: driver/print Version: 1.1.0 Requires: 68000+; AmigaOS 3.1+; TCP/IP stack providing bsdsocket.library Architecture: m68k-amigaos >= 3.1.0 MintPRINT ========= MintPRINT lets classic AmigaOS applications print to modern network printers - the same IPP/AirPrint printers phones and modern computers already use - with no printer-specific software needed on the printer side. It is a real DEVS:Printers/ printer.device driver plus MintPrint Settings, a GUI setup, discovery and test tool. Print from applications that use AmigaOS' standard printer graphics dump interface (including MultiView, GraphicDump and many paint/DTP programs). MintPRINT converts printer.device raster callbacks into JPEG, PostScript, PWG Raster, or PDF and submits the resulting document directly to the printer's IPP endpoint over the network. AmigaOS 3.1 is supported by a separate classic driver build. Newer AmigaOS releases use the normal extended driver build. Both use the same MintPrint Settings GUI and the same IPP/JPEG/PostScript/PWG/PDF backend. Archive contents ---------------- This archive contains two drawers: MintPRINT/ MintPrintSettings GUI setup, discovery and test tool MintPRINT driver for newer printer.device versions MintPRINT-OS31/ MintPrintSettings same GUI setup, discovery and test tool MintPRINT classic AmigaOS 3.1 driver build Use MintPRINT-OS31 on AmigaOS 3.1. Use MintPRINT on AmigaOS 3.2 and later systems, including AmigaOS 3.5/3.9 and newer classic AmigaOS releases. Features -------- - Real DEVS:Printers/ printer.device driver - AmigaOS 3.1 support via a dedicated classic driver build - 68000-compatible driver - Prints using JPEG, PostScript, PWG Raster, or PDF, selectable per printer - LAN printer discovery using SSDP and mDNS - IPP capability query - reads the printer's supported media, trays, colour modes, quality settings and document formats directly - Up to eight saved printer profiles (Unit0-Unit7), with one active for printing at a time - Printer make/model shown after a successful query - Built-in test page sent through printer.device - Warns if a printer advertises none of the formats MintPRINT can produce, with information on reporting the printer for support - Detects and offers to install or update the bundled driver - No printer-specific Amiga driver or vendor software required Requirements ------------ - Motorola 68000 or later - AmigaOS 3.1 or later - A running TCP/IP stack providing bsdsocket.library. This is required for every printing path because MintPRINT talks directly to the printer over IP. - A network printer supporting IPP and at least one document format MintPRINT can generate: JPEG, PostScript, PWG Raster, or PDF - AirPrint or IPP Everywhere printers are the most likely to work without additional printer-specific support MintPrint Settings performs network discovery and IPP capability parsing and therefore needs a larger stack than small classic Amiga utilities. Use the supplied MintPrintSettings.info file when launching from Workbench. Installation ------------ Extract the archive and choose the drawer for your AmigaOS version: AmigaOS 3.1: use MintPRINT-OS31/ AmigaOS 3.2 or later: use MintPRINT/ Copy the selected drawer wherever you like and run MintPrintSettings. On first run MintPrintSettings detects that DEVS:Printers/MintPRINT is missing and offers to install the bundled driver. On later runs, if the driver bundled beside MintPrintSettings is newer than the installed copy, it offers to update it. Reboot after any driver install or update. A printer driver segment that is already resident in memory will not pick up a replaced file until the system reloads it. After rebooting: 1. Open Prefs/Printer and select MintPRINT as the printer. 2. Run MintPrintSettings. 3. Enter the printer IP/hostname and IPP path, or use Discover. 4. Press Query Printer to read the printer's capabilities. 5. Select the document engine and required media/tray/colour/quality options. 6. Save the settings. 7. Use Test Print to verify the complete printer.device -> MintPRINT -> IPP path. The active printer configuration is Unit0. Additional configurations can be stored in Unit1-Unit7 and copied to Unit0 when required. AmigaOS 3.1 notes ----------------- The OS3.1 package uses a classic pre-V44 printer driver structure and a compatibility rendering path for the older printer.device raster format. The IPP networking and JPEG/PostScript/PWG Raster/PDF output code is shared with the newer driver build. MintPrintSettings should be launched using the supplied icon so its configured stack size is used. If launching from a Shell on a classic system and using a build which does not provide its own enlarged stack, set a large Shell stack first, for example: Stack 400000 Reporting a problem ------------------- If MintPrint Settings' Query reports that your printer does not support any format MintPRINT can produce, or printing otherwise fails, please open an issue at: https://github.com/boingball/MintPRINT/issues and attach the output of windows_ipp_probe.py (included in the source repository) run against the printer from a Windows PC on the same network. This helps separate printer-side IPP behaviour from Amiga-side driver problems without requiring any Amiga-specific diagnostic tools. The tested-printer list and full report template are maintained at: https://github.com/boingball/MintPRINT/blob/main/docs/PRINTER_COMPATIBILITY.md Please include the AmigaOS version, TCP/IP stack, document engine, DPI, media/tray, scaling, quality and colour mode so a successful configuration can be reproduced by another user. When reporting an AmigaOS 3.1 problem, please also mention that the MintPRINT-OS31 driver build is being used. Source Code ----------- Source code, build instructions and development history: https://github.com/boingball/MintPRINT License ------- MIT License. See the LICENSE file in the source repository for the full text - in short, free to use, copy, modify and redistribute, including commercially, provided the copyright notice is kept. Credits ------- Driver, GUI, IPP client, and the JPEG/PostScript/PWG Raster/PDF document encoders by Darren Banfi (boingball), developed with assistance from Anthropic Claude. History ------- 1.1.0 PostScript engine, faster JPEG, and more reliable wireless setup. - Added a fourth output engine, PostScript, for printers (e.g. Samsung C480W) that advertise IPP JPEG support but silently discard the job; it reuses the existing JPEG encoder internally, so it benefits from the speed-up below too - Query/Discover now wait long enough for Wi-Fi printers that power down their radio between jobs (HP OfficeJet/Envy series confirmed) to wake up, instead of giving up after one attempt - Fixed printer.device occasionally reporting an oversized page width for a single-shot page (observed producing a page ~30% wider than the configured media); the fix now correctly tells a genuinely oversized page apart from a legitimate landscape one, and covers the JPEG and PDF engines as well as PWG Raster - Fixed the test page's Wi-Fi-driven-oversized-page fix leaving a blank left margin and clipping the right edge on some hardware - PWG Raster (the cheapest engine to encode) is now the default whenever a printer advertises it, instead of always defaulting to JPEG - Replaced the JPEG encoder's page-width DCT with a much faster algorithm (fewer than a tenth of the multiplications for the same result), significantly speeding up JPEG and PostScript jobs on real 68k hardware - Test Print now runs asynchronously so the window stays responsive while printing, and uses the current Workbench screen's own palette instead of a fixed one, fixing a toner-wasting grey background on at least one laser printer 1.0.3b Page-boundary fixes and clearer setup options. - Fixed multi-page PWG jobs being combined into one oversized raster when applications left SPECIAL_NOFORMFEED set; complete media-sized pages and narrow end-of-page auxiliary dumps now provide safe physical-page boundaries - Preserved media-height padding for genuine WordWorth strip printing, preventing short portrait documents being rotated or expanded while allowing multi-page documents to print every page - Added a printer-capability-backed DPI selector and renamed it DPI - Replaced the debug JPEG option with a simple Debug on/off setting - Added an early TCP-stack check so the driver fails safely when no bsdsocket.library-compatible stack is available 1.0.3 WordWorth support and more reliable printer connections. - Fixed strip-printed pages (WordWorth, and likely explains ArtEffect's long-standing "many near-blank pages" behaviour too) submitting as several separate, massively oversized pages instead of one correct one - the driver now honours SPECIAL_NOFORMFEED and assembles the bands into a single document before sending it - Fixed MintPrint Settings' status box going blank and staying that way after certain other applications have run - Fixed Query being able to freeze the whole program with no way out but a reboot, if the printer didn't respond - connection attempts are now properly bounded and time out cleanly instead - Fixed a bug where MintPrint Settings' own Get-Printer- Attributes request could be rejected by some printers (reported against a Canon TS8300), leaving Query showing no capabilities at all even though the printer itself was fine - Query now prefers the standard IPP port (631) over port 80 when discovering or querying a printer - Query no longer accepts an all-empty capability response as a successful result 1.0.2 Bug fixes from real-hardware testing reports. - Fixed an IPP response parsing bug (a printer's interim "100 Continue" response was mistaken for the final one) that could report a print job as failed even though it printed, and could leave MintPrint Settings' Query showing Media/Scaling/Quality/ Print Mode as undetected on printers that do support them - MintPrint Settings' Query no longer accepts an incomplete response from the printer as a successful result - Scaling now defaults to "auto" after a Query when the printer offers it, for better cross-printer compatibility - Added a safety guard against a rare runaway "many near-blank pages" print storm triggered by some third-party applications - Driver auto-update detection now also offers to update a driver installed before version tracking was added - About box shows the installed and bundled driver revision - Various MintPrint Settings layout and text-truncation fixes 1.0.0 Initial Aminet release. - DEVS:Printers/MintPRINT driver - Separate AmigaOS 3.1 classic driver build - JPEG, PostScript, PWG Raster and PDF document backends - MintPrint Settings GUI - LAN printer discovery - IPP capability query - Up to eight saved printer profiles - Built-in printer.device test page - Automatic driver install/update