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 0–3) |
— |
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 0–1 (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 0–8). |
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.