Kihagyás

Document

A Document egy PDF-et burkol. A imposio.open(), imposio.newDocument(), imposio.activeDocument(), vagy új dokumentumot előállító műveletek (generateImposition(), splitPages(), copyPages()) révén kaphatod meg.

Minden oldalindex 0-alapú. A tartományok karakterláncok: "all", "1-5", "odd", "even", "2,4,7" (üres = összes). A hosszak az aktuális egységben vannak, hacsak utótagos karakterláncként nem adod meg.

Információk

Metódus Visszaad Leírás
isValid() bool Sikeresen betöltődött-e a dokumentum.
pageCount() int Oldalak száma.
filePath() string Forrás elérési út (új dokumentumoknál üres).
title() string A szkript által beállított cím.
setTitle(title) Beállítja a show() / save() által használt fülcímet.

Dobozok és oldalмéretek

Mindegyik az aktuális egységben ad vissza objektumot (PDF-koordináták, Y felfelé). A pageSize {w, h}-t ad vissza; a doboz-getter-ek {x, y, w, h}-t.

Metódus Visszaad
pageSize(pageIndex) {w, h}
mediaBox(pageIndex) {x, y, w, h}
cropBox(pageIndex) {x, y, w, h}
trimBox(pageIndex) {x, y, w, h}
bleedBox(pageIndex) {x, y, w, h}

Oldal-ellenőrzés (csak olvasható)

Metódus Visszaad
pageObjects(pageIndex) Content stream objektumok (rekurzív a Form XObject-ekben): [{ indexPath:[…], type:"text\|path\|image\|shading\|form\|unknown", bbox:{x,y,w,h} }]
annotations(pageIndex) [{ subtype:int, type:"Link\|Text\|Widget\|…", summary, bbox:{x,y,w,h} }]
resources(pageIndex) [{ kind:"font\|image\|form", name, primary, secondary, warning:bool }]
structTree(pageIndex) Tagged PDF struktúra (üres, ha nem tagged): [{ type, title, altText, actualText, children:[…] }]

Oldalműveletek

A dokumentumot helyben módosítják (hacsak nincs másképp jelezve).

resizePages(range, width, height, opts?)

Oldalakat méretez át. A trim/bleed/crop dobozok és a túlnyomás tartalma megőrződik.

opts kulcs Értékek Alapértelmezett
placement "fit", "fill", "stretch", "keep" "fit"

deletePages(range)

Törli a range-ben lévő oldalakat.

rotatePages(range, degrees, opts?)

Oldalakat forgat. A degrees abszolút (0/90/180/270); opts.increment = true esetén az aktuális forgatáshoz adódik hozzá.

duplicatePages(range, opts?)

Oldalakat duplikál. opts.mode: "after" (alapértelmezett — egy másolat mindegyik után), "block", "append".

reversePages(range?, opts?)

Megfordítja az oldalsorrendet. opts.mode: "inplace" (alapértelmezett) vagy "compact".

movePages(range, destIndex)

A range-ben lévő oldalakat a destIndex index elé helyezi át (0-alapú, az eredeti oldalterületen).

setPageBoxes(range, boxes)

Dobozokat állít be a MediaBox-ból való behúzásként (aktuális egység). boxes: { bleed, trim, crop }.

addBlankPage(at, width, height)

Üres oldalt szúr be (méretek az aktuális egységben) a at indexnél (-1 = végére).

addPagesFromFile(path, opts?)

Oldalakat szúr be egy PDF-ből vagy képből (PNG/JPEG/BMP/GIF/TIFF/WebP → egy oldal).

opts kulcs Leírás
range Forrás oldalak (csak PDF).
at Beillesztési index (-1 = vége).

replacePages(targetRange, source, opts?)

Törli a targetRange-t, és oda beilleszt oldalakat a source-ból (PDF vagy kép). opts.range kiválasztja a forráslapokat (alapértelmezett mind; képeknél figyelmen kívül hagyva).

splitPages(cols, rows, opts?) → Document

Minden oldalt cols × rows rácsra oszt fel. Új Document-et ad vissza.

opts kulcs Értékek
area "media", "trim", "bleed", "crop"
range felosztandó oldalak

rasterizePages(range?, dpiOrOpts?)

Az oldalakat raszterizált verzióval helyettesíti (renderelt, fehérre simított — átlátszóság nélkül). Helyben. A második argumentum egy DPI szám (legacy) vagy objektum:

opts kulcs Értékek Alapértelmezett
dpi number 300
cmyk bool false (RGB)
intent "perceptual", "relative", "saturation", "absolute" (vagy 03)
iccProfile .icc elérési út Beépített GRACoL

generateBleed(range?, opts?)

Kifutókeretet épít az oldalak köré a grafika saját széléből (GUI Kifutó generálása). Az oldal minden szélén size-zal nő; a vágódoboz az eredeti oldalra, a kifutódoboz az új szélre állítódik, így a kilövés helyesen vág. Csak a hozzáadott keret rasterizálódik — az oldal vektoros marad. A már kifutóval rendelkező oldalak kimaradnak. A módosított oldalak számát adja vissza.

opts kulcs Értékek Alapérték
size hossz — a kifutó szélessége
source hossz — a forrássáv szélessége (ha keskenyebb a size-nál, nyúlik)
method "mirror", "extend", "replicate", "solid"
dpi a keret raszteres DPI-je 300
blur a keret lágyítása false
force a már kifutós oldalak feldolgozása is false

copyPages(range?, opts?) → Dokumentum

Oldalakat másol egy új dokumentumba (mint a GUI Copy → New). Az új Dokumentumot vagy null-t ad vissza. Az opts.bakeLayer: false kihagyja az Imposio szerkesztőréteget a másolatból (tiszta PDF-grafika).

Oldaltartalom szerkesztése

Az oldal saját content streamjének objektumait szerkeszti vagy törli (magát a grafikát, nem a szerkesztőréteget). Az indexPath a pageObjects()-ből származik — pl. [3], vagy [3, 2] egy Form XObject-beli gyerekhez. Minden szerkesztés elrendezésmegőrző: az oldal többi része bájtra azonos marad (nincs szétcsúszott szövegigazítás).

Metódus Leírás
setPageObjectText(page, indexPath, newText, opts?) Szövegobjektum szövegét cseréli. Az opts { x, y, w, h } ugyanabban a lépésben mozgatja/átméretezi.
setPageObjectBounds(page, indexPath, x, y, w, h) Objektum mozgatása/átméretezése (aktuális egység, Y felfelé).
setPageObjectOpacity(page, indexPath, opacity) Nem destruktív átlátszóság 01 (0 = rejtett).
duplicateObject(page, indexPath, opts?) Vektoros másolat mozgatható szerkesztőréteg-alakzatként; opts { dx, dy } eltolás. Az új alakzat azonosítóját adja vissza.

smartDeleteObjects(pageIndex, indexPaths, opts?)

A sablonobjektumoknak megfelelő objektumokat törli sok oldalon át (GUI Smart Delete) — pl. egy mindenütt ismétlődő vízjelet vagy fejlécet. A pageIndex + indexPaths (egy indexPath vagy tömbjük) jelöli ki a sablonobjektumokat. A törölt objektumok számát adja vissza, hibánál -1-et.

opts kulcs Értékek Alapérték
mode "identical" (ugyanaz az objektum) vagy "position" (bármi azon a helyen) "identical"
range feldolgozandó oldalak "all"
tolerance egyezési tűrés (aktuális egység) 0,5 pt
verify minden módosított oldal újrarenderelése, és kihagyása, ha bármi más változott true

Űrlapmezők

Interaktív PDF (AcroForm) mezők olvasása és kitöltése. Az értékek az űrlapba íródnak és szerkeszthetők maradnak; a flattenForms véglegesen az oldal tartalmába égeti őket.

formFields()

Visszaadja a dokumentum interaktív mezőit. Minden elem:

Kulcs Leírás
name A mező teljes neve — a setFormField kulcsa.
label Olvasható címke (/TU, visszaesik a name-re).
type "text", "checkbox", "radio", "choice", "pushbutton", "signature".
value Aktuális érték (text/choice érték; bekapcsolt állapot neve gomboknál).
checked true/false jelölőnégyzetekhez és választógombokhoz.
choices Választható értékek a choice mezőkhöz (és bekapcsolt állapot nevek a választógombokhoz).
readOnly Az űrlap szerzője zárolta.
multiline A szövegmező engedélyezi a sortöréseket.

setFormField(name, value)

Beállítja egy mező értékét. A value szöveg a text és choice mezőkhöz, logikai érték (vagy "on"/"off") a jelölőnégyzetekhez, és a bekapcsolt állapot neve a választógombokhoz. A csak olvasható jelzőt figyelmen kívül hagyja — az érték felülíródik. true értéket ad vissza, ha alkalmazta.

setFormFields(values)

Több mezőt állít be egyszerre egy { name: value, … } objektumból (forrásonként egy menet; az ismeretlen nevek kimaradnak).

var d = imposio.open("invoice-template.pdf");
d.setFormFields({
  customer: "ACME Ltd",
  agree:    true,        // checkbox
  color:    "/green",    // radio on-state
  city:     "Kosice"     // choice
});
d.save("invoice-filled.pdf");

flattenForms(range?)

Az űrlapmezők értékeit (és a jegyzeteket) az oldal tartalmába égeti, hogy túléljék az átméretezést, a feldarabolást és a kilövést. Helyben; a range alapértelmezése "all".

Változó adatok

mergeData(table, opts)

Adatrekordokat fűz össze a dokumentummal (GUI Változó adatok → Generálás): minden rekordhoz lemásolódnak a forrásoldalak, és a hozzárendelt elemek kifejtődnek — a szöveg/keretes szöveg sablonok lecserélik a szöveget, a képsablon fájlútvonallá fejtődik ki, a jelölőnégyzet-sablon dönt a bejelölésről (1/yes/true bejelöl, üres/0/no töröl). Helyőrzők: {oszlop}, {i:03}, {=kifejezes}, {{ = literál.

A table az imposio.loadData objektuma (vagy szkriptben épített { columns: […], rows: [[…]] }); null = csak számlálós összefűzés.

opts kulcs Leírás
mapping Kötelező. [{ page: 0, shape: id, template: "{nev}" }]. A képhozzárendelések ezen felül: fit: "fit"\|"fill"\|"stretch"\|"keep" és align: "top-left"…"center"…"bottom-right" (vagy 08).
mode "new" (alapérték), "append", "fill".
sourcePages 1-alapú tartomány; alapérték = a mapping-ben használt oldalak.
records "all", "1-100", …
targets Csak "fill": az elemeket fogadó oldalak (alapérték = a forrásblokk utáni oldalak).
replace Csak "fill": true lecseréli a céloldalak elemeit, false rájuk teszi.
counters [{ name: "i", start: 0, step: 1, max: 100 }] — a max opcionális; max-szal az összefűzés tábla nélkül is működik.
imageBaseDir Alapmappa a relatív képútvonalakhoz.
hidden [{ page: 0, shape: id }] — Láthatóság: a kimenetből kihagyott tételek.
pdfContent false kihagyja a forrásoldalak mögöttes PDF-tartalmát (elemek üres oldalakon; new/append). Alapérték true.

"new" esetén új Dokumentumot ad vissza, "append"/"fill" esetén az összefűzött rekordok számát. Hibánál kivételt dob (a dokumentum nem változik).

var data = imposio.loadData("guests.csv");
var doc  = imposio.activeDocument();
var out  = doc.mergeData(data, {
  mapping: [{ page: 0, shape: 3, template: "{firstname} {lastname}" }],
  counters: [{ name: "i", start: 1 }],
});
out.save("badges.pdf");

Exportálás, mentés és renderelés

exportImage(path, opts?)

Az oldalakat képfájlokba rendereli. A path mappa vagy fájl (mappánál levezethető).

opts kulcs Értékek Alapértelmezett
format "tiff", "png", "jpeg", "webp"
dpi number
quality number (JPEG/WebP)
box "media", "trim", "bleed", "crop"
range oldalak mind
pattern névminta, pl. "{p}" ({p} = PDF oldalszám, {n} = kimeneti számláló)
multipageTiff bool — egy TIFF az egész munkához

save(path, opts?)

PDF-be ment. Bool-t ad vissza. opts.autoIndex = true hozzáadja _1, _2, … ha a célfájl már létezik (alapértelmezett false = felülírja).

renderPng(pageIndex, dpi, outPath, opts?)

Egyetlen oldalt PNG-be renderel. opts.background: "#rrggbb" vagy "none"/"transparent" (alapértelmezett fehér).

Metaadatok és biztonság

A változtatások save()-kor íródnak a PDF-be (dirty modell); mindkettő részleges frissítés.

metadata() / setMetadata(m)

A metadata() { title, author, subject, keywords, creator, producer, created, modified }-et ad vissza (created/modified csak olvasható). setMetadata({ title?, author?, subject?, keywords?, creator?, producer? }).

security() / setSecurity(s)

A security() { encrypt, algorithm, userPassword, ownerPassword, allowPrint, allowHighResPrint, allowCopy, allowModify, allowAnnotate, allowForms, allowExtract, allowAssembly, wasEncrypted }-et ad vissza.

setSecurity({ encrypt?, userPassword?, ownerPassword?, algorithm?, allow…? })encrypt: false eltávolítja a biztonságot mentéskor. algorithm: "rc4-128", "aes-128", "aes-256".

Megjelenítés

show(title?)

Ezt a dokumentumot új fülként nyitja meg az alkalmazásban (GUI Run). Headless/CLI módban nem csinál semmit.