feat(pdf): pass the page map through the browser renderer

This commit is contained in:
Amruth Pillai
2026-09-28 17:17:56 +02:00
parent a887a72d77
commit f73238ba3b
+5
View File
@@ -1,6 +1,7 @@
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { Template } from "@reactive-resume/schema/templates";
import type { ResumeRenderOptions } from "./context";
import type { PageMap } from "./page-map";
import type { SectionTitleResolver } from "./section-title";
import { createElement } from "react";
import { parseResumeData } from "@reactive-resume/schema/resume/data";
@@ -12,6 +13,8 @@ export type CreateResumePdfBlobOptions = {
template?: Template | undefined;
renderOptions?: ResumeRenderOptions | undefined;
resolveSectionTitle?: SectionTitleResolver | undefined;
/** Receives the header, section and item boxes of this render (see `page-map.ts`). */
onPageMap?: ((pageMap: PageMap) => void) | undefined;
};
export const createResumePdfBlob = async ({
@@ -19,6 +22,7 @@ export const createResumePdfBlob = async ({
template,
renderOptions,
resolveSectionTitle,
onPageMap,
}: CreateResumePdfBlobOptions): Promise<Blob> => {
const data = parseResumeData(input);
const document = createElement(ResumeDocument, {
@@ -26,6 +30,7 @@ export const createResumePdfBlob = async ({
template: template ?? data.metadata.template,
...(renderOptions ? { renderOptions } : {}),
resolveSectionTitle,
onPageMap,
}) as Parameters<typeof pdf>[0];
return await pdf(document).toBlob();