/* CHAPTER 9. Multipage facilities */

/*
 * cpdf_padBefore(pdf, range) adds a blank page before each page in the given
 * range.
 */
void cpdf_padBefore(int, int);

/*
 * cpdf_padAfter(pdf, range) adds a blank page after each page in the given
 * range.
 */
void cpdf_padAfter(int, int);

/* cpdf_pageEvery(pdf, n) adds a blank page after every n pages. */
void cpdf_padEvery(int, int);

/*
 * cpdf_padMultiple(pdf, n) adds pages at the end to pad the file to a
 * multiple of n pages in length.
 */
void cpdf_padMultiple(int, int);

/*
 * cpdf_padMultiple(pdf, n) adds pages at the beginning to pad the file to a
 * multiple of n pages in length.
 */
void cpdf_padMultipleBefore(int, int);

/* cpdf_impose(pdf, x, y, fit, columns, rtl, btt, center, margin, spacing,
 * linewidth) imposes a PDF. There are two modes: imposing x * y, or imposing
 * to fit a page of size x * y. This is controlled by fit. Columns imposes by
 * columns rather than rows. rtl is right-to-left, btt bottom-to-top. Center is
 * unused for now. Margin is the margin around the output, spacing the spacing
 * between imposed inputs. */
void cpdf_impose(int, double, double, int, int, int, int, int, double, double,
                 double);

/* cpdf_chop(pdf, range, x, y, columns, rtl, btt) chops each page in the range
 * into x * y pieces. If columns is set, the pieces go by columns instead of
 * rows. If rtl is set, the pieces are taken right-to-left. If btt is set, the
 * pieces are taken from bottom to top. */
void cpdf_chop(int, int, int, int, int, int, int);

/* cpdf_chopH(pdf, range, columns, y) chops each page in the range horizontally
 * at position y. If columns is set, the pieces are arranged in reverse order.
 * */
void cpdf_chopH(int, int, int, double);

/* cpdf_chopV(pdf, range, columns, x) chops each page in the range vertically
 * at position x. If columns is set, the pieces are arranged in reverse order.
 * */
void cpdf_chopV(int, int, int, double);

/*
 * Impose a document two up. cpdf_twoUp does so by retaining the existing
 * page size, scaling pages down. cpdf_twoUpStack does so by doubling the
 * page size, to fit two pages on one.
 */
void cpdf_twoUp(int);
void cpdf_twoUpStack(int);

