Skip to content

Add 8-up support to ipptransform - #160

Draft
Mr-Tao wants to merge 1 commit into
OpenPrinting:masterfrom
Mr-Tao:add-8-up-ipptransform
Draft

Add 8-up support to ipptransform#160
Mr-Tao wants to merge 1 commit into
OpenPrinting:masterfrom
Mr-Tao:add-8-up-ipptransform

Conversation

@Mr-Tao

@Mr-Tao Mr-Tao commented Aug 19, 2026

Copy link
Copy Markdown

Summary

  • add an explicit 2-by-4 layout for number-up=8 in ipptransform
  • document 8 as a supported number-up value
  • add direct transform and virtual IPP Everywhere regression coverage

Motivation

This is the libcups companion to OpenPrinting/cups#1672. Eight-up printing is particularly useful with ISO A-series paper, where the page aspect ratio makes this imposition geometrically natural. The current libcupsfilters PDF transform already supports an explicit 8-up layout.

The new end-to-end test uses ippeveprinter, submits the existing eight-page PDF fixture with number-up=8, verifies that the job retains the attribute and completes successfully, and checks that ipptransform places all eight input pages on one output page. No physical printer is required.

Testing

  • ./configure --enable-debug
  • make
  • make -C tools test — existing suite: 202 tests, 79 passed, 0 failed, 123 skipped; new 8-up suite: 3 passed, 0 failed
  • negative control with the new case 8 temporarily removed: the regression test fails on the former 1-up fallback as expected

Related UI changes:

Assisted-by: OpenAI Codex:GPT-5 [Codex]

@Mr-Tao
Mr-Tao marked this pull request as draft August 19, 2026 11:49
@michaelrsweet michaelrsweet self-assigned this Aug 20, 2026
@michaelrsweet michaelrsweet added the enhancement New feature or request label Aug 20, 2026
@michaelrsweet michaelrsweet added this to the Future milestone Aug 20, 2026
@michaelrsweet

Copy link
Copy Markdown
Member

I'm really not sure how I feel about adding this at a time when things like N-up are barely used... Will consider it but certainly not before libcups 3.1.

@Mr-Tao

Mr-Tao commented Aug 25, 2026

Copy link
Copy Markdown
Author

Thanks for taking a look. Keeping this as a draft/Future until libcups 3.1 makes sense.

One bit of context: N-up printing is still used fairly often in university settings, especially for lecture slides and handouts, so 8-up addresses a real workflow there. I’ll be happy to rebase or adjust the implementation when 3.1 work starts.

@michaelrsweet

Copy link
Copy Markdown
Member

I agree that slides are sometimes still printed (depending on the age of the presenter), but LibreOffice already does its own N-up generation for slides - it doesn't use the CUPS number-up option to do it...

@Mr-Tao

Mr-Tao commented Aug 25, 2026

Copy link
Copy Markdown
Author

That is true when printing the source presentation directly from LibreOffice; its application-side imposition covers that path. The workflow I meant is usually already-generated PDF material—slides, handouts, papers, or other documents—printed from a PDF viewer or via lp. LibreOffice is no longer involved there, so N-up has to be provided by the generic printing stack.

More generally, 8-up is the missing exact rotated layout for ISO A-series paper: a 2-by-4 grid preserves the page aspect ratio exactly, apart from margins. libcupsfilters already implements this layout. Without generic 8-up support, I have had to print 4-up to an intermediate PDF and then print that PDF 2-up; that two-stage workaround becomes particularly cumbersome with duplex output.

I understand the libcups 3.1 timing and am happy to leave this as a draft until then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants