Перейти к содержанию

Объект imposio

Глобальная точка входа. Открывает и создаёт документы, управляет единицами измерения.

Открытие и создание документов

imposio.open(path, opts?)

Открывает файл с диска. По расширению: PDF (напрямую), изображения (PNG/JPEG/BMP/GIF/TIFF/WebP → одна страница), SVG, PostScript (PS/EPS, через Ghostscript), EPUB или текст/Markdown. Возвращает Документ, при ошибке null (+ исключение).

Параметр Тип Описание
path string Абсолютный путь к файлу.
opts объект Параметры импорта (ниже); длины в текущих единицах.

opts для изображений: { size: [w, h] | dpi: N, bleed: { size, rgb: [r,g,b] (0–255) | cmyk: [c,m,y,k] (0–100), backPage: true } }size/dpi задают размер страницы / разрешение печати; bleed добавляет рамку вылета сплошного цвета (страница растёт на size с каждого края, обрезной формат = изображение, CMYK попадает в PDF как DeviceCMYK без конверсии), а backPage: true добавляет вторую страницу, залитую тем же цветом.

opts для текста/EPUB: { pageSize: [w, h], margin, font, fontSize, wrap, encoding, markdown }.

var doc = imposio.open("/Users/me/jobs/booklet.pdf");
var card = imposio.open("card.png",
    { size: [90, 50], bleed: { size: 3, cmyk: [0, 100, 100, 0], backPage: true } });

imposio.newDocument(width, height)

Создаёт новый пустой одностраничный документ. Размеры задаются в текущей единице. Возвращает Document.

Параметр Тип Описание
width number|string Ширина страницы (текущая единица или строка, например "210mm").
height number|string Высота страницы.

imposio.activeDocument()

Возвращает активную вкладку PDF в интерфейсе как borrowed Document (изменения влияют на живой документ; скрипт его не удаляет). В режиме headless/CLI или без открытых документов возвращает null.

imposio.activePage()

Возвращает 0-базированный индекс страницы, отображаемой в активной вкладке, или -1, если нет.

Единицы измерения

imposio.setUnits(units)

Задаёт единицу для всех последующих значений длин и геттеров. Возвращает true; неизвестная единица бросает исключение.

Значение Единица
"mm" миллиметры (по умолчанию)
"cm" сантиметры
"in" / "inch" дюймы
"pt" / "point" пункты PostScript

imposio.units()

Возвращает текущую единицу в виде строки.

Утилиты единиц

Метод Возвращает
imposio.toPt(v) v (текущая единица) → пункты
imposio.fromPt(pt) пункты → текущая единица
imposio.mmToPt(mm) миллиметры → пункты (всегда мм)
imposio.ptToMm(pt) пункты → миллиметры (всегда мм)
imposio.setUnits("in");
var pts = imposio.toPt(8.5);   // 612

Файлы данных

imposio.loadData(path, opts?)

Загружает табличный файл для объединения переменных данных. Поддерживает CSV / TSV / TXT / XLSX / ODS / JSON. Возвращает { columns: […], rows: [[…]], format }; при ошибке бросает исключение.

Ключ opts Описание По умолчанию
encoding напр. "windows-1250" "Auto"
firstRowHeaders Первая строка содержит имена столбцов true
delimiter напр. ";" (CSV) авто

imposio.combineData(tables, opts?)

Объединяет несколько таблиц (из loadData или собранных в скрипте) в одну { columns, rows }. tables — массив.

Ключ opts Значения Смысл
modes ["append"\|"parallel", …] Как tables[i] присоединяется к результату (modes[0] игнорируется): append = строки снизу, parallel = столбцы рядом.
mismatch "pad" (по умолчанию), "cycle", "truncate" Parallel-таблицы с разным числом строк.

Watermark

imposio.readWatermarkImage(path, opts?)

Читает watermark Imposio из отрендеренного или отсканированного изображения и возвращает { ok, text }. opts { seedX, seedY } — пиксельные координаты клика по узору (для frame-watermark — в любом месте на границе), благодаря чему чтение надёжно даже поверх пёстрого фона. О встраивании см. addWatermark.

var r = imposio.readWatermarkImage("scan.png", { seedX: 620, seedY: 18 });
if (r.ok) console.log("watermark:", r.text);