1 - Integrate pdf-tools.cc with the rest of the code
2 - What if an input page specifies /Rotate?
3 - Better error messages from instantiation
4 - page->index: use or remove
5 - rename page->bbox to page->image_box?
7 - nup(crop): take max of all bboxes first?
8 - nup: apply pos to placement of images in tiles
10 | # Position bbox on a new paper
12 | paper(w=210mm,h=297mm,pos=(t|b|c)(l|r|c))
14 | # Scale paper to a new size
16 | scaleto(w=210mm,h=297mm,pos=tl)
18 | # Fit image to a paper
19 | # If paper is given: scale image
20 | # If no paper is given: adjust paper to image + margins
23 | margin= hmargin= vmargin=
24 | lmargin= rmargin= tmargin= bmargin=
29 | expand(h=10mm, v=20mm)
30 | expand(l=10mm, r=10mm, t=10mm, b=10mm)
32 | # Adjust image size (in terms of margins around)
33 | margins ... params like expand
36 mark=box # Box around image
37 mark=cross # Crosses in the corners
38 mark=out # Out-pointing half-crosses in the corners (default)
39 mark=in # In-pointing half-crosses
41 len=5mm # Cross arm length
42 dist=5mm # Distance from border
49 bleed=5mm # Allow bleeding over the image box
51 # Can be written as: mix(cat) { modulo(2){1}, modulo(2){2} }
60 | # Add an empty page after the current one
66 # - paper size + margins
69 by=rows/cols # Filling order (default: rows)
70 by=tile # Tile with copies of a single page
71 paper / w / h # Specify paper size, default=copy from 1st image
72 + fit options (*margin, pos)
74 rotate=1 # Override rotation decision
75 scale=1 # Override scaling factor
76 hspace / vspace / space # Distance between tiles
79 # Send pages to multiple pipes and merge their results
81 cat # Concatenate results (default is interleave)
82 cycle # When one pipe ends earlier, cycle it from start
83 pad # When one pipe ends earlier, add blank pages