Saltar a contenido

Ejemplos

Scripts completos para adaptar. Todos usan la API real de las páginas anteriores.

Folleto cosido (grabado)

Este es el tipo de script que produce el grabador de la interfaz.

imposio.setUnits("mm");
var doc = imposio.open("/jobs/brochure.pdf");

doc.setImposition({
  sheet:  { preset: "Auto", portrait: true, width: 320, height: 450 },
  layout: { type: "Booklet", autoMode: "FitSheetToGrid",
            cols: 2, rows: 2, order: "Z", scale: "None", placedRotation: "Auto",
            gutterAuto: true, marginTop: 6, marginBottom: 6, marginLeft: 6, marginRight: 6 },
  source: { mode: "all" },
  cropMarks: { enabled: true, length: 4, weight: 0.088, sides: "firstpage" },
  booklet: { foldScheme: "4pp", bindingEdge: "left", duplexFlip: "short" },
  output: { profile: "rasterized", dpi: 600 }
});

var out = doc.generateImposition();
out.save("/jobs/brochure_booklet.pdf", { autoIndex: true });

Procesar por lotes una lista de archivos

El motor no lista carpetas — contrólalo con un array de rutas.

imposio.setUnits("mm");
var files = ["/jobs/a.pdf", "/jobs/b.pdf", "/jobs/c.pdf"];

for (var i = 0; i < files.length; i++) {
  var d = imposio.open(files[i]);
  if (!d || !d.isValid()) continue;

  d.setImposition({
    layout:    { type: "Booklet" },
    booklet:   { foldScheme: "4pp", bindingEdge: "left" },
    cropMarks: { enabled: true }
  });

  var out = d.generateImposition();
  out.save(files[i].replace(".pdf", "_imposed.pdf"), { autoIndex: true });
}

Una hoja de tarjetas N-up

imposio.setUnits("mm");
var d = imposio.open("/jobs/card.pdf");

d.setImposition({
  sheet:  { preset: "SRA3", portrait: false },
  layout: { type: "NUp", autoMode: "FitGridToSheet", scale: "None",
            gutterH: 3, gutterV: 3,
            marginTop: 10, marginBottom: 10, marginLeft: 10, marginRight: 10 },
  cropMarks: { enabled: true, sides: "both" }
});

d.generateImposition().save("/jobs/cards_sheet.pdf");

Rasterizar en CMYK y exportar en TIFF

imposio.setUnits("mm");
var d = imposio.open("/jobs/flyer.pdf");

d.rasterizePages("all", { dpi: 300, cmyk: true, intent: "relative" });
d.exportImage("/jobs/out/", { format: "tiff", dpi: 300, box: "trim", multipageTiff: true });

Construir una página con la capa de edición

imposio.setUnits("mm");
var d = imposio.newDocument(210, 297);

d.addRect(0, 10, 10, 190, 277, { stroke: "#000000", fill: "none", widthPt: 0.5 });
d.addText(0, 20, 250, 170, 20, "PROOF", { fontSizePt: 24, align: "center", bold: true });

d.save("/jobs/proof.pdf");

Mantenimiento de páginas

imposio.setUnits("mm");
var d = imposio.open("/jobs/scan.pdf");

d.rotatePages("odd", 90);
d.deletePages("1");
d.addBlankPage(-1, 210, 297);
d.setMetadata({ title: "Cleaned scan", author: "Imposio" });
d.save("/jobs/scan_clean.pdf", { autoIndex: true });

Rellenar un formulario PDF

var d = imposio.open("/forms/application.pdf");

// Inspeccionar los campos
for (var f of d.formFields())
  console.log(f.name + " (" + f.type + ") = " + f.value);

// Relleno — texto, checkbox, radio, choice
d.setFormFields({
  full_name: "Jane Smith",
  agree:     true,
  delivery:  "/express",
  country:   "Slovakia"
});

d.save("/forms/application_filled.pdf");