Very large page sizes with UserUnit

Previous versions of pdfChip were limited to page sizes of 200 inch by 200 inch (or 5.08m by 5.08m or 14400pt by 14400pt). Starting with pdfChip 1.4, it is now possible to create page sizes beyond that limit.
Internally this is possible by taking advantage of the "UserUnit" property in the PDF syntax. A UserUnit is essentially a scaling factor, and by its default value is 1. Setting it for example to 10 multiplies all dimensional values – in the page geometry boxes and also in all positioning values for objects in the page description - and thus enable a page size of 2000 inch by 2000 inch (or 50.8m by 50.8m). For detailed information about the UserUnit entry in the PDF syntax, please see ISO 32000-1, 8.3.2.3 User Space.

When not explicitly set, the UserUnit entry will be set by pdfChip to a suitable value on a page by page basis. For page sizes up to 200 inch by 200 inch, it will not be set explicitly and thus default to 1. For any page size beyond 200 inch by 200 inch, pdfChip will set the smallest possible UserUnit value that accommodates the page size and can be divided by 10.

Setting UserUnit entry explicitly

As UserUnit entries are associated with pages in PDF syntax, the @page rule in provides the place in CSS to define the desired UserUnit entry.

Various approaches are supported:

  • -cchip-force-userunit simply enforces the indicated value, regardless of the page size chosen; it is important to make sure that the chosen page size can be accommodated based on the UserUnit  value defined; for example a value of 2 implies that page sizes must not be larger then 11.6m by 11.6m (i.e. 2 times 5.08m by 2 times 5.08m)
  • -cchip-userunit-increment will only lead to a UserUnit value other than the default value 1 if necessary (because the page size is larger than 200 inch by 200 inch / 5.08m by 5.08m); in that case a UserUnit value is chosen automatically that is a multiple of the value provided for -cchip-userunit-increment. For example, if the page size is 60m by 60m (i.e. larger than 50.8m by 50.8, which is the maximum at a UserUnit value of 10), 20 will be used as the UserUnit value.

Only one of these two properties should be used for any given @page rule.
pdfChip will use the values that are in effect during the cchip.printPages() call.

Example for enforcing a specific UserUnit value:

@page {
    -cchip-force-userunit: 2;
    -cchip-bleedbox: 10px 10px 480px 580px;
    -cchip-artbox: 20px 10px 480px 580px;
  }

Example for enforcing a certain multiple of automatically determined UserUnit values:

@page {
    -cchip-userunit-increment: 10;
    -cchip-bleedbox: 10px 10px 480px 580px;
    -cchip-artbox: 20px 10px 480px 580px;
  }