Printerpullpages/N-Up Printing

From Apache OpenOffice Wiki
Jump to: navigation, search

Basic Idea

A N-Up layout is based on a compartment of the paper sheet into several rows and columns. Each of the so formed fields holds one page of the document range, which is to be printed. N-Up printing is used to get a down scaled draft of a document or it is used to distribute several small pages (example index cards) on one sheet of paper to cut the paper afterward.

Calculating the Compartmentation

The drop down list has predefined layouts for 1, 2, 4, 6, 9, and 16 fields and the item “custom”. In custom layout the user can set the number of rows and columns and define a margin to the paper sheet edges and spacing between the fields. In predefined layouts the margin and spacing is zero. To calculate the field size, OOo takes the paper sheet size, subtracts margin and spacing, and then divides the value into the number of columns and rows respectively. So the fields have equal size and are distributed symmetrically.

The paper sheet size and orientation is determined in several levels. Setting in a higher level overwrites a lower setting.

  1. Take the paper sheet size and orientation, which is the default for printing. This size might be different for different locals, for example size “letter” for English (USA) and size “DIN A4” for German. The local is set in Tools > Options > Language Settings > Languages > Locale setting.
  2. Use the printer settings in the operating system, which are independent of an application. (In my German WinXP: Systemsteuerung > Drucker und Faxgeräte > Datei > Eigenschaften)
  3. Use the settings, which the user has made in File > Printer Settings > Properties.
  4. If N-Up type is “custom” then the orientation is taken from the drop-down list “Orientation”, otherwise it is equal to the type “Automatic”. The item “Automatic” chooses that orientation, which results in the larger field in the N-Up layout.
  5. Use the settings, which the user has made in the print dialog, tab “General”, button “Properties”.

In N-Up layout the paper sheet size is independent from the page layout of the document.

The pages, which are to be printed, are assigned to the fields in the order specified in the drop-down-list. Details for putting a page to a field are discussed in the following sections.

The preview shows the whole paper sheet.

  • Issue: CWS printerpullpages implements the options “front sides” in a way, that the first, third, fifth, seventh etc. page is put to the front of the sheet of paper. That is not useful, because the setting “front sides”, “back sides” and “Print in reverse page order” are needed to perform a manually duplex printing. If a printer is able of duplex printing, the front of the sheet of paper will contain pages 1, 2, 3, 4 etc. To get the same for a printer without duplex capability, the setting “front sides”, “back sides” and “Print in reverse page order” must not be applied to the pages, but to the sheet of papers.
  • Issue: In CWS printerpullpages I cannot see any rule of the orientation “Automatic”. It does not give the largest field as I suggest above.


The rule below describes the current implementation in CWS printerpullpages, but has to be discussed, see issues below.

General rule: If the page height and width both are smaller than the field, the page is scaled up with keeping ratio to the largest size the field can take. If the page height or width is larger than the field height or width, the page is scaled down with keeping ratio to fit into the field. The page is always centered to the field. Scaling is done independently for each field.

  • Issue: In OOo3.2 the page is scaled up to fit the field with the same scaling factor for all fields. Ratio is kept, the field width or height is adapted accordingly and the fields are shifted to the left and top. In CWS printerpullpages the size of the fields are not changed and the fields are symmetrically distributed. The page is centered in the field. The pages are scaled in CWS printerpullpages too. Is this centering desired?
  • Issue: Is scaling up really desired? I personally expect, that the page is printed in original size, if the field is large enough for the page.
  • Issue: What to do if the pages have different sizes (example envelope and letter) or have different orientation (example text in portrait and table in landscape)?
If the first page is in portrait orientation and the second page in landscape, then OOo3.2 sums up the widths, calculates a scaling from that and changes the field widths unequal, so that the fields can take the page. That results in unequal fields and equal scaling.
CWS printerpullpages holds the field widths equal and calculates an individual scaling. So the landscape table of the example is printed down scaled to a field with portrait orientation. This result in equal field sizes but unequal scaling.
Alternative solutions:
Rotate pages with “wrong” orientation automatically before scaling.
Do not scale pages up, which are smaller than the field, but use original size. So an envelope would be printed in original size and the letter scaled down to fit the field.


Several ways are used to bring the content to the page. This settings are done in the tab “Sheet” in the page layout dialog. Example of such setting is scaling mode “reduce/enlarge printout” with scaling factor “200%”. In N-Up mode all this settings are applied before the generated printout is put into a field of the N-Up layout.

The issues described for Writer are valid for Calc too. Here the problem occurs for example, if a small, long table of data is combined with a landscape charts and both table of data and chart have an own page layout.


Draw offers several methods to handle drawings, which page layout size does not equal the size of the sheet of paper. The settings are on tab Draw in the printing dialog. All of them refer to the size of the sheet of paper, which makes no sense in N-Up layout. Instead in N-Up layout the settings should refer to the single field of the N-Up layout.

Original size

The drawing is put centered, with 100% scaling to the field. It is not automatically rotated. Parts of the drawing, which extends the field, are cut off.

Print to printable page

If the height and width of the drawing—as defined in the page layout of the document—is smaller or equal to the height and width of a single field, it is put in the field centered, with 100% scaling. If height or width of the page layout of the document is greater than that of the single field, then the drawing is scaled down till it fits into the field. Parts of the drawing, which are outside the page are ignored and cut off.

If a selection is to be printed, then the real size of the selection is taken instead of the page layout size. The result will be that the first field in the N-Up layout contains the selection and the other fields are empty.

Distribute to multiple paper sheets

This feature is not only used when a whole page is printed, but also when a selected drawing is to be printed and it exceeds the size of the sheet of paper. The N-Up layout might be used to determine on a draft, whether the cutting of the drawing is done at suitable places or the drawing has to be shifted. To achieve this, the size of the paper sheet is taken and from that physical dimension a scaling factor is calculated so that the sheet of paper would fit into a single field of the N-Up layout. The drawing is than sliced into pieces as it would be, when it is printed without N-Up layout. Then the pieces are scaled down with the calculated factor and distributed to the fields of the N-Up layout. Each piece is centered in its field. Scaling is always done with keeping ratio, so there might appear margins in the field. It is up to the user, to use a N-Up layout division in which the fields have the same ratio then the sheet of paper.

Tile paper sheet with repeated pages

In normal printing this feature is used to get a lot of exemplars of one tiny drawing by cutting the sheet of paper afterward. It is similar to label printing in Writer.

  • Issue: What is an use-case for N-Up layout here? I can imagine to use N-Up layout here to determine the place of the printed drawing on the sheet instead of having it adjacent without spacing. Then it would be useful to implement it so, that the drawing is printed as in the modus “Original size” but with the difference, that the next field is not filled with the next page but with the same page as the first one. The next page would then fill up the next sheet of paper.


An essential requirement in a Drawing application is, that it prints the drawing exactly in the size it is drawn in the document. A drawing should be only scaled, if the user explicitly tells the application to scale it.

The area outside the page layout is often used as dashboard (That's the reason why it is white and cannot be colored.) and the user surely do not want to print this draft pieces. Same is true for parts of the drawing, which exceeds the edge of the page layout. They are cut because user need this cutting feature to easily generate slanted grids by duplicating a grid line. If a user really wants to print such parts, he can enlarge the page layout.

The drawings are never automatically rotated, because that would make it impossible to print a drawing, especially a selection, which is wider than high to a portrait output format. The user can determine whether the output target is portrait or landscape by setting the paper sheet orientation to portrait or landscape and by choosing a suitable number of columns and rows in the N-Up layout.


In general Impress prints as Draw. The page layout size and orientation for the type “slide”, “handout” and “notes” are defined in their assigned page layout.

  • Issue: In CWS printerpullpages a selection out of a slide is not handled with its own size, but with the size of the slide. An area is used, which has the page layout of the slide and into this empty area the selection is positioned as it is positioned in its slide. For N-Up layout two solutions are possible: Use the size of the selection as it should be done in Draw or use the size of the slide as it is done for normal printing. I don't know a use-case for printing a selection of a slide in N-Up layout. Therefore I have no preference.
  • Issue: For type “outline” no page layout exists. It seems, that the size of the sheet of paper is used with fix orientation “portrait”. Because of the fixed orientation parts of the outline are cut off, if the orientation of the sheet of paper is set to landscape in the printer properties. (Fixing orientation to portrait might be a bug.) For normal printing using the paper sheet size is no problem, but for N-Up layout a page layout has to be known. Considering for N-Up the use-case of getting a draft print of the outline, I propose to use the default paper sheet size for the given local in portrait orientation as ersatz page layout of an outline. It needs to be discussed, what margins this ersatz page layout has. Form point of flexibility I would prefer margin 0 and leave it to the user to set margins and spacing in custom N‑Up layout. But that might be to complex for average users.


A Math document has a fixed page layout for normal printing, which uses the default paper sheet size in fixed orientation “portrait” with some margins. If the paper sheet differs in size or orientation, parts of the output are cut off or other way round margins are added.

  • Issue: As long as a Math document has always one page, I see no use-case for N-Up layout and suggest to disable it. Otherwise the fixed page layout should also be used in N-Up layout. Such page would than be scaled to fit into the first field of the N-Up layout, the other fields would be empty.
Personal tools