* Re: Exploring a universal production printing architecture
2026-07-18 14:17 ` Michael Sweet
@ 2026-07-18 15:34 ` Joshua Braddock - Queen City Print Shop
0 siblings, 0 replies; 4+ messages in thread
From: Joshua Braddock - Queen City Print Shop @ 2026-07-18 15:34 UTC (permalink / raw)
Cc: printing-architecture
Solomon and Michael,
Thank you both. Your responses helped me see that I described this as
a new printing architecture when much of the underlying model may
already exist in IPP.
I also used “virtual driver” too loosely. I am not proposing a new
printer-specific rendering stack, nor am I suggesting that an
application can postpone decisions affecting its composition or
pagination. If Word must paginate for Letter versus A4, that
document-canvas decision necessarily belongs in the application. My
production-print use case begins after the application has composed
the document. For example, an InDesign document might deliberately
produce a 12.5 × 19.5-inch page containing the selected bleed, crop
marks, registration marks, and other content. I want the application’s
normal Print command to submit that composed output into a persistent
held workflow without requiring the user to select a particular press,
tray, stock, or finisher first. This is not necessarily equivalent to
asking the user to export a PDF. In applications such as InDesign,
printing and exporting can follow different settings and rendering
paths, even when they begin with the same source document. The
resulting page geometry, marks, separations, color handling,
transparency treatment, scaling, and other output characteristics may
differ.
What I want to preserve is the output composed by the application
through its normal Print path. The logical production destination
would capture that submitted print content and create a persistent
held job from it. The underlying transport representation might be
PDF, PostScript, XPS, PWG Raster, or another standard format,
depending on the application and operating-system print path. The
important point is that the workflow receives what the application
submitted for printing rather than requiring the user to perform a
separate PDF export. The workflow could retain that original submitted
representation and, when necessary, create a normalized production
document for previewing, transformation, routing, or output. Any
normalization would be recorded as a derivative rather than silently
replacing the submitted source.
What I am describing therefore creates a persistent production transaction:
Application Print command
-> platform-appropriate logical production destination
-> original submitted print representation is retained
-> held job preserving the composed page geometry
-> operator or automation applies the production ticket
-> final output device and output path are selected
-> IPP, Printer Application, vendor DFE, native driver, shared queue,
or another adapter
EFI Command WorkStation is a familiar proprietary example of the
operator experience I mean. Once a job is held, the operator can still
control media, scaling, duplex, imposition, color processing, image
shifts, finishing, VDP behavior, scheduling, notes, and accounting
before releasing it. I am not proposing that OpenPrinting reproduce
Command WorkStation or Fiery’s RIP functions. The operational gap is
that this workflow is normally attached to a specific vendor DFE and
its connected press. There is also a compatibility and lifecycle
aspect that I did not explain in my first message. I envision the
client-facing submission destination, the workflow appliance, and the
device-specific output paths as separate layers with independent
lifecycles. The client-facing destination would remain available
across current versions of Windows, macOS, Linux, and other platforms.
Its implementation might differ by platform or generation, but each
implementation would submit through the same stable, vendor-neutral
contract. The central workflow could be a comparatively stable,
long-lived appliance or service running on Linux, Windows, or macOS,
with a local, desktop, or web-based operator interface.
Device-specific compatibility would be handled behind the workflow
through whatever output path is appropriate: direct IPP, a Printer
Application, a vendor DFE, a locally installed native driver, an
existing shared queue, or a remote output agent running an operating
system that still supports a legacy driver.
A concrete example from our shop is an HP DesignJet Z5200ps. Its
genuine HP driver and our preferred color workflow remain usable on
certain Intel Macs and older Windows systems, but not on our current
Apple-silicon design workstations. Today, producing the desired output
can require us to create the job in current InDesign on an
Apple-silicon Mac, package or save it for an older InDesign release,
move it to an older Intel iMac, open it there, and finally print
through the genuine HP driver. That makes an obsolete design
workstation part of the production workflow merely because it can
still run the correct printer driver.
In the model I am describing, the modern design workstation would
print application-composed, device-independent content to the logical
production destination. The operator would then select the DesignJet
in the workflow console and apply its production settings. If the
console runs on a Windows machine that supports the genuine HP driver,
the locally installed DesignJet would simply appear as an available
output destination. No additional translation machine would be
necessary. The console could also submit to an existing shared printer
or RIP queue. Our Lanier/Ricoh LW310 wide-format system, for example,
uses a Windows XP-based RIP. That printer can still be shared to
Windows 7 or Windows 10 systems. A workflow console running on one of
those compatible systems could submit directly to the shared RIP
queue.
A separate output bridge would be needed only when the console’s own
operating system cannot support or reach the required output path. In
that case, an isolated Intel Mac, Windows VM, or physical Windows
system containing the supported native driver could act as a remote
output agent.
The workflow could therefore use:
- a native driver installed on the console host;
- an existing Windows, CUPS, or IPP shared queue;
- direct PDF, PostScript, PCL, or another supported language;
- a vendor DFE such as Fiery; or
- a remote output agent running the operating system required by a
legacy driver.
The output bridge is a compatibility option, not a mandatory part of
every job. The workflow uses the shortest dependable path available
for each device. The important separation remains the same: the design
workstation submits to one durable production destination, while the
workflow console maintains and selects among changing device-specific
output paths. The workflow would always retain the submitted geometry.
If the operator maps a 12.5 × 19.5-inch document onto another output
size, the resulting crop, fit, or scaling would be explicit rather
than silently conflating document size with loaded media size.
There is a corresponding benefit at the other end of the lifecycle.
The same logical production destination should be reachable from new
categories of client devices without requiring those devices to
understand the eventual production equipment. For example, the
workflow could advertise an AirPrint-compatible logical Printer. A
user designing a document on an iPad Pro could use the application’s
normal Print command to submit it to the held workflow. The iPad would
not need an HP DesignJet driver, a Fiery driver, or any knowledge of
the final media, tray, or finishing configuration. The operator could
then inspect the submitted geometry, select the intended output
device, and apply the production settings:
iPad design application
-> AirPrint-compatible logical production destination
-> held job in the workflow
-> operator selects a device and production settings
-> appropriate local driver, shared queue, DFE, or output agent
-> selected production device
An emerging client platform could therefore submit to an older
production device even though no direct driver relationship exists
between them.
I do not expect one literal driver binary to run on every operating
system. I envision a family of platform-appropriate submission
interfaces—IPP/AirPrint, Android or ChromeOS printing, traditional
desktop queues, and possibly a share action or web interface—all
creating the same vendor-neutral Job object through a stable contract.
The client-facing implementations could evolve as operating systems
and processor architectures change, while the central workflow remains
a comparatively stable long-term service and legacy output paths
remain isolated behind it. Where a mobile print dialog cannot express
the intended custom geometry, a share extension or direct workflow
submission interface could provide an alternate path while still
creating the same held job. This is why I see the logical production
destination as something different from installing every physical
printer on every client. The client needs one durable route into the
production system. The production system owns the changing
relationships among modern clients, current devices, vendor DFEs, and
legacy native drivers.
Having begun reading the material you referenced, I see that IPP
already provides much of the vocabulary I was reaching for: Printer,
Job, and Document objects; held jobs; job tickets; settable job
attributes; production-printing attributes; and
shared-infrastructure/proxy concepts.
My corrected questions are:
- Is an IPP Infrastructure Printer, Printer Application, or another
existing IPP model the appropriate basis for a logical production
destination that is not initially bound to one output device?
- Can an operator-facing application hold a submitted job, modify its
production attributes, and then route or reproduce it against a
selected Printer while remaining within existing IPP semantics?
- Could locally installed printers, shared queues, and remote systems
running supported native drivers all be represented as output
destinations behind that workflow?
- Is there an existing open-source implementation that combines these
concepts into a mixed-vendor production console rather than presenting
them as unrelated individual device queues?
- If the standards already express nearly all of this, is the missing
piece primarily a reference workflow implementation and
production-oriented operator interface?
I may not be identifying a standards gap. I may be identifying an
implementation and operator-workflow gap between what IPP can
represent and what production operators can currently use across
mixed-vendor and mixed-generation devices.
Thank you again for correcting my framing. I would appreciate any
pointers toward existing implementations or the most relevant parts of
the Infrastructure Printer/Proxy model.
--
Joshua Braddock
Queen City Print Shop
701.203.2873
Notice: This email, including any attachments, is intended solely for
the use of the designated recipient(s) and may contain confidential or
legally privileged information. If you are not the intended recipient,
you are hereby notified that any review, disclosure, copying,
distribution, or use of this email is strictly prohibited. If you have
received this message in error, please notify the sender immediately
by replying to this email and permanently delete it, along with any
attachments, from your system. Thank you for your cooperation.
On Sat, Jul 18, 2026 at 8:17 AM Michael Sweet <msweet@msweet.org> wrote:
>
> Joshua,
>
> I'll preface my feedback with "what Solomon said" since it covers all of the important stuff. My own specific responses are below...
>
>
> > On Jul 18, 2026, at 4:25 AM, Joshua Braddock - Queen City Print Shop <joshua@qcprints.net> wrote:
> > ...
> > The core idea is to separate document generation from production workflow.
> >
> > Today, applications generally render directly to a printer driver,
> > where media selection, finishing, device capabilities, and
> > vendor-specific options are all intertwined.
>
> Actually, that was the 90's. CUPS started out in 1998 as a PostScript + PDF-first solution that isolated applications from generating printer-specific features/code, and that from an earlier (1994) PostScript implementation on top of the old System V printing system. Over the years we have been able to get the industry to (more or less) standardize on using IPP and higher-level file formats - the main holdouts are label, receipt, and large-format roll printers, although there has been some adoption in specific markets.
>
> Some of the resistance to change comes from vendors providing tightly integrated solutions (point-of-sale, shipping, photo, and high-end RIPs) where there is little demand for a more generic, cross platform/vendor solution. Try to convince EPSON that they should put AirPrint in their 24+" roll printers and they just claim that nobody will print photos from their phone, ignoring that the same protocol is used for desktop printing because that would cut into the business of RIP vendors that help get their products sold.
>
> So what we've been doing for the last 16 years is evangelizing standards and pragmatically developing and supporting IPP "Printer Applications" for those printers that cannot (or will not) support a common standard. This isn't perfect but it at least makes it possible to create a common workflow application based on IPP.
>
> > ...
> > My question isn't whether this should replace CUPS or existing printer
> > drivers. Rather, I'm curious whether OpenPrinting has already explored
> > an architectural separation like this, or whether this is an area
> > where discussion would be appropriate.
> >
> > I'd appreciate any pointers to prior work, existing standards, or
> > reasons this approach has already been considered.
>
> Standards can be found here: https://www.pwg.org/ipp/
>
> The migration of CUPS away from drivers is discussed here: https://openprinting.github.io/cups/drivers.html
>
> ________________________
> Michael Sweet
>
^ permalink raw reply [flat|nested] 4+ messages in thread