Thumbnail the first page of a PDF:
deckrender report.pdf --page 1 --width 640 -o thumb.pngWeb-ready frames from a deck:
deckrender deck.pptx --profile web -o frames/Ship a page range as one archive:
deckrender deck.pptx --pages 1-10 --image-format webp -o preview.zipScreenshot a live page:
deckrender https://example.com -o shot.pngRender HTML produced by another process:
my-generator | deckrender - --from html -o slide.pngCapture the output path:
FIRST=$(deckrender deck.pptx --json | jq -r '.outputs[0].file')Inspect the backend task chain a render used:
deckrender report.docx --format image --json | jq -r '.route | join(" -> ")'
# convertor.doc2pdf -> convertor.pdf2imageBranch on the failure kind:
if ! deckrender "$INPUT" -o out.pdf --json 2> err.json; then
case "$(jq -r '.error.code' err.json)" in
unsupported_format) echo "cannot render $INPUT to pdf" ;;
auth_error) echo "run: deckrender auth login" ;;
*) jq -r '.error.message' err.json ;;
esac
fiCheck what a file can become before trying:
deckrender formats --json | jq -r '.matrix.docx | to_entries[] | select(.value.supported) | .key'
# image
# pdfimport { render } from '@deckflow/deckrender';
const result = await render({
input: 'deck.pptx',
format: 'image',
pages: '1-10',
imageFormat: 'webp',
out: 'frames/',
});
console.log(result.route); // ['convertor.ppt2image', 'image.convertWebp']
console.log(result.pages); // total pages, before --pages filteringReuse configuration across renders and surface warnings:
import { createRenderer } from '@deckflow/deckrender';
const renderer = createRenderer({
apiKey: process.env.DECKFLOW_API_KEY,
onWarning: (message) => console.warn(message),
});
for (const file of files) {
await renderer.render({ input: file, format: 'pdf' });
}Handle failures by code:
import { render, isDeckRenderError } from '@deckflow/deckrender';
try {
await render({ input: 'report.pdf', format: 'video' });
} catch (error) {
if (isDeckRenderError(error) && error.code === 'unsupported_format') {
console.error(error.message, error.hint);
} else {
throw error;
}
}Ask what is possible without rendering:
import { supportedTargets, findRoute } from '@deckflow/deckrender';
supportedTargets('docx'); // ['image', 'pdf']
findRoute('docx', 'image')?.kind; // 'derived'