]> mj.ucw.cz Git - paperjam.git/blobdiff - TODO
Implemented book
[paperjam.git] / TODO
diff --git a/TODO b/TODO
index 65580b06f56cd5db5ff637082c05ef0c55f7fe67..8d36b9c466921a209f62fbdbd6778770d4d578e2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,5 +1,81 @@
 - Integrate pdf-tools.cc with the rest of the code
 - What if an input page specifies /Rotate?
 - Better error messages from instantiation
-- Select should work without commands in the pipeline
 - page->index: use or remove
+- rename page->bbox to page->image_box?
+- "-f" switch
+
+| # Position bbox on a new paper
+| paper("a4")
+| paper(w=210mm,h=297mm,pos=(t|b|c)(l|r|c))
+
+| # Scale paper to a new size
+| scaleto("a4")
+| scaleto(w=210mm,h=297mm,pos=tl)
+
+| # Fit image to a paper
+| # If paper is given: scale image
+| # If no paper is given: adjust paper to image + margins
+| fit("a4")
+| fit(w=, h=)
+| margin= hmargin= vmargin=
+| lmargin= rmargin= tmargin= bmargin=
+| pos=
+
+| # Adjust paper size
+| expand(10mm)
+| expand(h=10mm, v=20mm)
+| expand(l=10mm, r=10mm, t=10mm, b=10mm)
+
+| # Adjust image size (in terms of margins around)
+| margins ... params like expand
+
+cropmarks
+       mark=box        # Box around image
+       mark=cross      # Crosses in the corners
+       mark=out        # Out-pointing half-crosses in the corners (default)
+       mark=in         # In-pointing half-crosses
+       pen=1pt         # Line width
+       len=5mm         # Cross arm length
+       dist=5mm        # Distance from border
+
+book
+       signature=<n>
+
+# Crop to image box
+crop
+       bleed=5mm       # Allow bleeding over the image box
+
+# Can be written as: mix(cat) { modulo(2){1}, modulo(2){2} }
+duplex
+       long-edge
+
+| merge
+
+modulo
+       half
+
+| # Add an empty page after the current one
+| add-blank
+|      n=
+|      paper...
+
+# Set either:
+#      - paper size + margins
+#      - scale + margins
+nup(hnum, vnum)
+       by=row/column   # Filling order (default: row)
+       paper / w / h   # Specify paper size, default=copy from 1st image
+       + fit options (*margin, pos)
+       crop            # Crop to image
+       rotate=1        # Override rotation decision
+       scale=1         # Override scaling factor
+       tile            # Tile with copies of a single page
+       hspace / vspace / space # Distance between tiles
+       + cropmarks?
+
+# Send pages to multiple pipes and merge their results
+mix { ..., ..., ...}
+       cat             # Concatenate results (default is interleave)
+       cycle           # When one pipe ends earlier, cycle it from start
+       pad             # When one pipe ends earlier, add blank pages