Dokument¶
Document obaluje jedno PDF. Získáte ho z imposio.open(),
imposio.newDocument(), imposio.activeDocument(), nebo z operací vytvářejících nový
dokument (generateImposition(), splitPages(), copyPages()).
Všechny indexy stran jsou 0-based. Rozsahy jsou stringy: "all", "1-5", "odd",
"even", "2,4,7" (prázdný = všechny). Délky jsou v aktuální jednotce, pokud nejsou zadány
jako string se sufixem.
Informace¶
| Metoda | Vrací | Popis |
|---|---|---|
isValid() |
bool | Zda se dokument načetl správně. |
pageCount() |
int | Počet stran. |
filePath() |
string | Cesta ke zdrojovému souboru (prázdná u nových dokumentů). |
title() |
string | Titul nastavený skriptem. |
setTitle(title) |
— | Nastaví titul záložky pro show() / save(). |
Boxy a velikosti stran¶
Každá vrací objekt v aktuální jednotce (PDF souřadnice, Y-up). pageSize vrací {w, h};
gettery boxů vracejí {x, y, w, h}.
| Metoda | Vrací |
|---|---|
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} |
Inspekce strany (read-only)¶
| Metoda | Vrací |
|---|---|
pageObjects(pageIndex) |
Objekty content streamu (rekurzivně i Form XObjecty): [{ 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) |
Struktura tagged PDF (prázdná pro netagovaná): [{ type, title, altText, actualText, children:[…] }] |
Operace se stranami¶
Mutují dokument na místě (pokud není uvedeno jinak).
resizePages(range, width, height, opts?)¶
Změní velikost stran. Trim/bleed/crop boxy a obsah spadávky se zachovají.
Klíč opts |
Hodnoty | Výchozí |
|---|---|---|
placement |
"fit", "fill", "stretch", "keep" |
"fit" |
deletePages(range)¶
Smaže strany v range.
rotatePages(range, degrees, opts?)¶
Otočí strany. degrees je absolutní (0/90/180/270); s opts.increment = true se
přičte k aktuální rotaci.
duplicatePages(range, opts?)¶
Zduplikuje strany. opts.mode: "after" (výchozí — kopie za každou), "block", "append".
reversePages(range?, opts?)¶
Obrátí pořadí stran. opts.mode: "inplace" (výchozí) nebo "compact".
movePages(range, destIndex)¶
Přesune strany v range před index destIndex (0-based, v původním prostoru stran).
setPageBoxes(range, boxes)¶
Nastaví boxy stran jako insety od MediaBoxu (aktuální jednotka). boxes: { bleed, trim, crop }.
addBlankPage(at, width, height)¶
Vloží prázdnou stranu (rozměry v aktuální jednotce) na index at (-1 = konec).
addPagesFromFile(path, opts?)¶
Vloží strany z PDF nebo obrázku (PNG/JPEG/BMP/GIF/TIFF/WebP → jedna strana).
Klíč opts |
Popis |
|---|---|
range |
Které strany ze zdroje (jen PDF). |
at |
Index vložení (-1 = konec). |
replacePages(targetRange, source, opts?)¶
Smaže targetRange a na jeho místo vloží strany ze source (PDF nebo obrázek).
opts.range vybírá strany zdroje (výchozí všechny; u obrázku se ignoruje).
splitPages(cols, rows, opts?) → Dokument¶
Rozdělí každou stranu na mřížku cols × rows. Vrací nový Dokument.
Klíč opts |
Hodnoty |
|---|---|
area |
"media", "trim", "bleed", "crop" |
range |
strany k rozdělení |
rasterizePages(range?, dpiOrOpts?)¶
Nahradí strany jejich rastrovou verzí (vykreslené, zploštěné na bílou — bez transparence). Na místě. Druhý argument je DPI číslo (legacy) nebo objekt:
Klíč opts |
Hodnoty | Výchozí |
|---|---|---|
dpi |
number | 300 |
cmyk |
bool | false (RGB) |
intent |
"perceptual", "relative", "saturation", "absolute" (nebo 0–3) |
— |
iccProfile |
cesta k .icc |
bundlovaný GRACoL |
generateBleed(range?, opts?)¶
Postaví rám spadávky kolem stran z vlastního okraje grafiky (GUI Generovat spadávku).
Strana naroste o size na každé hraně; trim box se nastaví na původní stranu a bleed box
na novou hranu, takže vyřazení ořízne správně. Rasterizuje se jen přidaný rám — strana
zůstává vektorová. Strany, které už spadávku mají, se přeskočí. Vrací počet změněných stran.
Klíč opts |
Hodnoty | Výchozí |
|---|---|---|
size |
délka — šířka spadávky | — |
source |
délka — šířka zdrojového pásu (užší než size = natáhne se) |
— |
method |
"mirror", "extend", "replicate", "solid" |
— |
dpi |
rastrové DPI rámu | 300 |
blur |
změkčení rámu | false |
force |
zpracovat i strany, které už spadávku mají | false |
copyPages(range?, opts?) → Dokument¶
Zkopíruje strany do nového dokumentu (jako GUI Copy → New). Vrací nový Dokument nebo null.
opts.bakeLayer: false vynechá Imposio edit layer z kopie (čistý PDF artwork).
Úpravy obsahu strany¶
Úprava či mazání objektů vlastního content streamu strany (samotná grafika, ne edit
layer). indexPath pochází z pageObjects() — např. [3], nebo [3, 2] pro dítě ve
Form XObjectu. Všechny úpravy zachovávají layout: zbytek strany zůstává bajtově
identický (žádné rozpadlé zarovnání textu).
| Metoda | Popis |
|---|---|
setPageObjectText(page, indexPath, newText, opts?) |
Změní text textového objektu. opts { x, y, w, h } jej ve stejném kroku přesune/změní velikost. |
setPageObjectBounds(page, indexPath, x, y, w, h) |
Přesun/změna velikosti objektu (aktuální jednotky, Y-up). |
setPageObjectOpacity(page, indexPath, opacity) |
Nedestruktivní průhlednost 0–1 (0 = skrytý). |
duplicateObject(page, indexPath, opts?) |
Vektorový duplikát jako pohyblivý edit-layer tvar; opts { dx, dy } posun. Vrací ID nového tvaru. |
smartDeleteObjects(pageIndex, indexPaths, opts?)¶
Smaže objekty odpovídající šablonovým objektům napříč stranami (GUI Smart Delete) —
např. vodoznak či hlavičku opakovanou všude. pageIndex + indexPaths (jeden indexPath
nebo jejich pole) určují šablonové objekty. Vrací počet smazaných objektů, -1 při chybě.
Klíč opts |
Hodnoty | Výchozí |
|---|---|---|
mode |
"identical" (stejný objekt) nebo "position" (cokoli na tom místě) |
"identical" |
range |
které strany zpracovat | "all" |
tolerance |
tolerance shody (aktuální jednotky) | 0,5 pt |
verify |
pře-renderovat každou změněnou stranu a přeskočit ji, pokud se změnilo cokoli jiného | true |
Pole formuláře¶
Čtení a vyplňování interaktivních polí PDF (AcroForm). Hodnoty se zapíší do formuláře a zůstanou editovatelné; použijte flattenForms pro jejich trvalé zapečení do obsahu stránky.
formFields()¶
Vrátí interaktivní pole dokumentu. Každá položka:
| Klíč | Popis |
|---|---|
name |
Plně kvalifikovaný název pole — klíč pro setFormField. |
label |
Čitelný popis (/TU, fallback na name). |
type |
"text", "checkbox", "radio", "choice", "pushbutton", "signature". |
value |
Aktuální hodnota (text/choice hodnota; on-state název pro tlačítka). |
checked |
true/false pro zaškrtávací políčka a přepínače. |
choices |
Možnosti pro choice pole (a on-state názvy pro přepínače). |
readOnly |
Uzamčeno autorem formuláře. |
multiline |
Textové pole povoluje zalomení řádků. |
setFormField(name, value)¶
Nastaví hodnotu jednoho pole. value je řetězec pro text a choice pole, boolean (nebo "on"/"off") pro zaškrtávací políčka a on-state název pro přepínače. Příznak jen pro čtení se ignoruje — hodnota se přepíše. Vrátí true pokud se aplikovalo.
setFormFields(values)¶
Nastaví více polí najednou z objektu { name: value, … } (jeden průchod na source; neznámé názvy se přeskočí).
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?)¶
Zapeče hodnoty polí formuláře (a anotace) do obsahu stránek, aby přežily resize, split a impozici. In-place; range výchozí "all".
Variabilní data¶
mergeData(table, opts)¶
Spojí datové záznamy s dokumentem (GUI Variabilní data → Generovat): pro každý záznam se
zkopírují zdrojové strany a mapované elementy se expandují — šablony textu/rámcového textu
nahradí text, obrázková šablona se expanduje na cestu k souboru, checkbox šablona rozhodne
o zaškrtnutí (1/yes/true zaškrtne, prázdné/0/no odškrtne). Placeholdery:
{sloupec}, {i:03}, {=vyraz}, {{ = literál.
table je objekt z imposio.loadData (nebo
{ columns: […], rows: [[…]] } poskládaný skriptem); null = merge jen s počítadly.
Klíč opts |
Popis |
|---|---|
mapping |
Povinné. [{ page: 0, shape: id, template: "{jmeno}" }]. Obrázková mapování berou i fit: "fit"\|"fill"\|"stretch"\|"keep" a align: "top-left"…"center"…"bottom-right" (nebo 0–8). |
mode |
"new" (výchozí), "append", "fill". |
sourcePages |
1-based rozsah; výchozí = strany použité v mapping. |
records |
"all", "1-100", … |
targets |
Jen "fill": strany, které dostanou elementy (výchozí = strany za zdrojovým blokem). |
replace |
Jen "fill": true nahradí elementy cílových stran, false přidá navrch. |
counters |
[{ name: "i", start: 0, step: 1, max: 100 }] — max volitelné; s max funguje merge i bez tabulky. |
imageBaseDir |
Základní složka pro relativní cesty obrázků. |
hidden |
[{ page: 0, shape: id }] — Viditelnost: položky vynechané z výstupu. |
pdfContent |
false vynechá podkladový PDF obsah zdrojových stran (elementy na prázdných stranách; new/append). Výchozí true. |
Vrací nový Dokument pro "new", počet zmergovaných záznamů pro "append"/"fill".
Při chybě vyhodí výjimku (dokument se nezmění).
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, uložení a render¶
exportImage(path, opts?)¶
Vykreslí strany do obrazových souborů. path je složka nebo soubor (složka se odvodí).
Klíč opts |
Hodnoty | Výchozí |
|---|---|---|
format |
"tiff", "png", "jpeg", "webp" |
— |
dpi |
number | — |
quality |
number (JPEG/WebP) | — |
box |
"media", "trim", "bleed", "crop" |
— |
range |
strany | všechny |
pattern |
vzor názvu, např. "{p}" ({p} = číslo strany v PDF, {n} = výstupní počítadlo) |
— |
multipageTiff |
bool — jeden TIFF pro celou zakázku | — |
save(path, opts?)¶
Uloží jako PDF. Vrací bool. opts.autoIndex = true připojuje _1, _2, … když cílový soubor
existuje (výchozí false = přepíše).
renderPng(pageIndex, dpi, outPath, opts?)¶
Vykreslí jednu stranu do PNG. opts.background: "#rrggbb" nebo "none"/"transparent"
(výchozí bílá).
Metadata a zabezpečení¶
Změny se zapíší do PDF až při save() (dirty model); obě jsou částečné (partial) úpravy.
metadata() / setMetadata(m)¶
metadata() vrací { title, author, subject, keywords, creator, producer, created,
modified } (created/modified jen pro čtení). setMetadata({ title?, author?, subject?,
keywords?, creator?, producer? }).
security() / setSecurity(s)¶
security() vrací { encrypt, algorithm, userPassword, ownerPassword, allowPrint,
allowHighResPrint, allowCopy, allowModify, allowAnnotate, allowForms, allowExtract,
allowAssembly, wasEncrypted }.
setSecurity({ encrypt?, userPassword?, ownerPassword?, algorithm?, allow…? }) — encrypt:
false odstraní zabezpečení při uložení. algorithm: "rc4-128", "aes-128", "aes-256".
Zobrazení¶
show(title?)¶
Otevře tento dokument jako novou záložku v aplikaci (GUI Run). Při běhu headless/CLI je to no-op.