@laminapdf/render-pdfium 0.2.0-alpha.3 → 0.2.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ import type { WrappedPdfiumModule } from "@embedpdf/pdfium";
2
+ /** The loaded PDFium module. */
3
+ export type Pdfium = WrappedPdfiumModule;
4
+ /** The module's memory: read it after each call that can grow it, never keep a view across one. */
5
+ export declare function heap(p: Pdfium): WebAssembly.Memory;
6
+ /** Runs `f` with `bytes` of scratch memory from the module, freed afterwards. */
7
+ export declare function withScratch<T>(p: Pdfium, bytes: number, f: (at: number) => T): T | undefined;
8
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,gCAAgC;AAChC,MAAM,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEzC,mGAAmG;AACnG,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAElD;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAS5F"}
package/dist/engine.js ADDED
@@ -0,0 +1,19 @@
1
+ // The PDFium module as both files of this adapter use it.
2
+ /** The module's memory: read it after each call that can grow it, never keep a view across one. */
3
+ export function heap(p) {
4
+ return p.pdfium.wasmExports.memory;
5
+ }
6
+ /** Runs `f` with `bytes` of scratch memory from the module, freed afterwards. */
7
+ export function withScratch(p, bytes, f) {
8
+ const { malloc, free } = p.pdfium.wasmExports;
9
+ const at = malloc(bytes);
10
+ if (at === 0)
11
+ return undefined;
12
+ try {
13
+ return f(at);
14
+ }
15
+ finally {
16
+ free(at);
17
+ }
18
+ }
19
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAO1D,mGAAmG;AACnG,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAQ,CAAC,CAAC,MAAM,CAAC,WAAyD,CAAC,MAAM,CAAC;AACpF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAI,CAAS,EAAE,KAAa,EAAE,CAAoB;IAC3E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import { type WrappedPdfiumModule } from "@embedpdf/pdfium";
2
1
  import { type RenderBackend, type RenderDocument, type RenderOpenOptions, type RenderSource, type WasmSource } from "@laminapdf/render";
2
+ import { type Pdfium } from "./engine.js";
3
3
  /** The pinned package (ADR 0004 §3); its pdfium.wasm's SHA-256 is checked at build time. */
4
4
  export declare const PDFIUM_PACKAGE = "@embedpdf/pdfium@2.15.1";
5
- type Pdfium = WrappedPdfiumModule;
6
5
  /**
7
6
  * Loads PDFium. Call it inside the document worker (ADR 0009 §2), once per worker.
8
7
  *
@@ -20,5 +19,4 @@ export declare class PdfiumBackend implements RenderBackend {
20
19
  /** Opens `source` (see {@link RenderBackend.open}). */
21
20
  open(source: RenderSource, options?: RenderOpenOptions): RenderDocument;
22
21
  }
23
- export {};
24
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAUL,KAAK,aAAa,EAClB,KAAK,cAAc,EAKnB,KAAK,iBAAiB,EAGtB,KAAK,YAAY,EAMjB,KAAK,UAAU,EAEhB,MAAM,mBAAmB,CAAC;AAE3B,4FAA4F;AAC5F,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAExD,KAAK,MAAM,GAAG,mBAAmB,CAAC;AA2ClC;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBzE;AAED,sCAAsC;AACtC,qBAAa,aAAc,YAAW,aAAa;;IACjD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,OAAO,6BAAkB;IAGlC,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,yDAAyD;IACzD,MAAM,IAAI,MAAM,CAEf;IAED,uDAAuD;IACvD,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,cAAc,CAE1E;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAYL,KAAK,aAAa,EAClB,KAAK,cAAc,EAKnB,KAAK,iBAAiB,EAGtB,KAAK,YAAY,EAQjB,KAAK,UAAU,EAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAGhD,4FAA4F;AAC5F,eAAO,MAAM,cAAc,4BAA4B,CAAC;AA6CxD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBzE;AAED,sCAAsC;AACtC,qBAAa,aAAc,YAAW,aAAa;;IACjD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,OAAO,6BAAkB;IAGlC,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,yDAAyD;IACzD,MAAM,IAAI,MAAM,CAEf;IAED,uDAAuD;IACvD,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,cAAc,CAE1E;CACF"}
package/dist/index.js CHANGED
@@ -9,7 +9,9 @@
9
9
  // - straight RGBA through FPDF_REVERSE_BYTE_ORDER, copied out once into the result.
10
10
  // PDFium is synchronous: the AbortSignal is checked before and after the engine call.
11
11
  import { init } from "@embedpdf/pdfium";
12
- import { checkInputSize, checkOpen, checkPageIndex, flagsOf, limitsOf, MAX_WASM_INPUT, pageToTile, pendingError, planTile, RenderError, readFailure, readRange, throwIfAborted, WHITE, } from "@laminapdf/render";
12
+ import { checkInputSize, checkOpen, checkPageIndex, flagsOf, limitsOf, MAX_WASM_INPUT, mostlyChanged, pageToTile, pendingError, planTile, RenderError, readFailure, readRange, recolours, recolourTile, throwIfAborted, WHITE, } from "@laminapdf/render";
13
+ import { heap } from "./engine.js";
14
+ import { annotationRects, pageImages, userToTile } from "./regions.js";
13
15
  /** The pinned package (ADR 0004 §3); its pdfium.wasm's SHA-256 is checked at build time. */
14
16
  export const PDFIUM_PACKAGE = "@embedpdf/pdfium@2.15.1";
15
17
  // fpdfview.h
@@ -19,6 +21,8 @@ const FPDF_REVERSE_BYTE_ORDER = 0x10;
19
21
  const FPDF_PRINTING = 0x800;
20
22
  const FPDFBITMAP_BGRA = 4;
21
23
  const FPDF_ERR_PASSWORD = 4;
24
+ /** The longest side of the page drawing that decides which annotations keep their whole rectangle. */
25
+ const DECISION_SIDE = 256;
22
26
  /** Whether `wasm` is the module's bytes: an ArrayBuffer or any view of one. */
23
27
  function isBytes(wasm) {
24
28
  return wasm instanceof ArrayBuffer || ArrayBuffer.isView(wasm);
@@ -94,9 +98,6 @@ export class PdfiumBackend {
94
98
  return PdfiumDocument.open(this.#pdfium, source, options);
95
99
  }
96
100
  }
97
- function heap(p) {
98
- return p.pdfium.wasmExports.memory;
99
- }
100
101
  /** The error the refused reads make, if any: a failed read first, else `data-pending`. */
101
102
  function refusal(reads) {
102
103
  if (reads.failure !== undefined)
@@ -115,6 +116,10 @@ class PdfiumDocument {
115
116
  #p;
116
117
  #limits;
117
118
  #pages = new Map();
119
+ /** Per page, which annotations keep their whole rectangle when recoloured (decided once, small). */
120
+ #whole = new Map();
121
+ /** Per page, whether each image (by its place among the page's images) has transparent samples. */
122
+ #alpha = new Map();
118
123
  #reads;
119
124
  #doc;
120
125
  #form;
@@ -286,10 +291,31 @@ class PdfiumDocument {
286
291
  try {
287
292
  if (bitmap === 0)
288
293
  throw new RenderError("render-failed", "the pdfium backend could not allocate the tile");
289
- this.#fillBackground(bitmap, plan, request.background === undefined ? WHITE : request.background);
290
- this.#draw(bitmap, page, plan, info, request);
291
- const pixels = new Uint8ClampedArray(plan.byteLength);
292
- pixels.set(new Uint8Array(heap(p).buffer, buffer, plan.byteLength));
294
+ const background = request.background === undefined ? WHITE : request.background;
295
+ const flags = flagsOf(request.flags);
296
+ const copy = () => new Uint8ClampedArray(heap(p).buffer.slice(buffer, buffer + plan.byteLength));
297
+ const drawn = (annotations) => {
298
+ this.#fillBackground(bitmap, plan, background);
299
+ this.#draw(bitmap, page, plan, info, request, annotations);
300
+ return copy();
301
+ };
302
+ if (!recolours(request.appearance))
303
+ return { width, height, pixels: drawn(flags.annotations) };
304
+ // Recoloured: the content alone, then (when the page has any) the annotations drawn again
305
+ // over it, whose pixels keep their colours; images keep theirs too.
306
+ const pixels = drawn(false);
307
+ const toTile = userToTile(p, page, info, plan, request.rotation ?? 0);
308
+ const rects = flags.annotations ? annotationRects(p, page, toTile) : [];
309
+ const annotated = rects.length > 0 ? { pixels: drawn(true), whole: this.#wholeOf(page, request, info, rects) } : undefined;
310
+ const alpha = this.#alpha.get(request.page) ?? new Map();
311
+ this.#alpha.set(request.page, alpha);
312
+ const images = pageImages(p, this.#doc, page, toTile, { tile: [width, height], alpha });
313
+ recolourTile(request.appearance ?? "original", width, pixels, {
314
+ images: images.opaque,
315
+ seeThrough: images.seeThrough,
316
+ background,
317
+ ...(annotated === undefined ? {} : { annotated }),
318
+ });
293
319
  return { width, height, pixels };
294
320
  }
295
321
  finally {
@@ -298,12 +324,36 @@ class PdfiumDocument {
298
324
  free(buffer);
299
325
  }
300
326
  }
327
+ /**
328
+ * The annotation rectangles (`rects`, in tile pixels) that keep their whole area: decided once
329
+ * per page on a drawing of the whole page at most DECISION_SIDE pixels on a side, so two tiles
330
+ * sharing an annotation always agree.
331
+ */
332
+ #wholeOf(page, request, info, rects) {
333
+ let flags = this.#whole.get(request.page);
334
+ if (flags === undefined) {
335
+ const scale = DECISION_SIDE / Math.max(info.width, info.height, 1);
336
+ const small = {
337
+ page: request.page,
338
+ scale,
339
+ ...(request.flags === undefined ? {} : { flags: request.flags }),
340
+ ...(request.background === undefined ? {} : { background: request.background }),
341
+ };
342
+ const without = this.#renderPage(page, { ...small, flags: { ...request.flags, annotations: false } });
343
+ const withAnnotations = this.#renderPage(page, small);
344
+ const smallRects = annotationRects(this.#p, page, userToTile(this.#p, page, info, planTile(info, small, this.#limits), 0));
345
+ flags = mostlyChanged(smallRects, without.pixels, withAnnotations.pixels, without.width);
346
+ this.#whole.set(request.page, flags);
347
+ }
348
+ const known = flags;
349
+ return rects.filter((_, i) => known[i] === true);
350
+ }
301
351
  /**
302
352
  * Draws the page into the bitmap. Widgets need the whole page laid out and shifted, since
303
353
  * FPDF_FFLDraw takes no matrix; without them the matrix call draws only the tile.
304
354
  */
305
- #draw(bitmap, page, plan, info, request) {
306
- const flags = flagsOf(request.flags);
355
+ #draw(bitmap, page, plan, info, request, annotations) {
356
+ const flags = { ...flagsOf(request.flags), annotations };
307
357
  const renderFlags = renderFlagsOf(flags);
308
358
  const rotation = request.rotation ?? 0;
309
359
  if (flags.annotations && flags.formWidgets) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Quad, RenderPage, TilePlan, ViewRotation } from "@laminapdf/render";
2
+ import { type Pdfium } from "./engine.js";
3
+ /** An affine matrix `[a, b, c, d, e, f]`. */
4
+ type Matrix = readonly [number, number, number, number, number, number];
5
+ /**
6
+ * From PDFium's user space (its crop box, y up, `/Rotate` not applied) to the tile's pixels:
7
+ * into the displayed page space `pageToTile` starts from, then `pageToTile`.
8
+ */
9
+ export declare function userToTile(p: Pdfium, page: number, info: RenderPage, plan: TilePlan, rotation: ViewRotation): Matrix;
10
+ /** Each shown annotation's `/Rect` in tile pixels. */
11
+ export declare function annotationRects(p: Pdfium, page: number, toTile: Matrix): Quad[];
12
+ /** The page's images in tile pixels, sorted by whether the page shows through them. */
13
+ export interface PageImages {
14
+ readonly opaque: Quad[];
15
+ readonly seeThrough: Quad[];
16
+ }
17
+ /** Where images are looked for: the tile's size, and the page's alpha cache by image place. */
18
+ export interface ImageScan {
19
+ readonly tile: readonly [width: number, height: number];
20
+ readonly alpha: Map<number, boolean>;
21
+ }
22
+ /** Every image on `page` that touches the tile, forms included. */
23
+ export declare function pageImages(p: Pdfium, doc: number, page: number, toTile: Matrix, scan: ImageScan): PageImages;
24
+ export {};
25
+ //# sourceMappingURL=regions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.d.ts","sourceRoot":"","sources":["../src/regions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAQ,KAAK,MAAM,EAAe,MAAM,aAAa,CAAC;AAE7D,6CAA6C;AAC7C,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAgCxE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAgBpH;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAmB/E;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;CAC7B;AAED,+FAA+F;AAC/F,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,UAAU,CAiB5G"}
@@ -0,0 +1,155 @@
1
+ // Where a page's images and annotations land in a tile, read from PDFium's own page objects, for
2
+ // the page appearance pass (@laminapdf/render's recolourTile). As laminapdf-render-pdfium does:
3
+ // images through forms (whose children's bounds are in the form's space), sorted by whether the
4
+ // page shows through them; PDFium's HasTransparency covers the drawing state, so images up to
5
+ // 1 MP are also decoded to look for transparent samples (an /SMask or /Mask of their own).
6
+ import { pageToTile, touches } from "@laminapdf/render";
7
+ import { heap, withScratch } from "./engine.js";
8
+ const FPDF_PAGEOBJ_IMAGE = 3;
9
+ const FPDF_PAGEOBJ_FORM = 5;
10
+ const FPDF_ANNOT_FLAG_HIDDEN = 2;
11
+ const FPDFBITMAP_BGRA = 4;
12
+ /** Images up to this many pixels are decoded to look for transparent samples. */
13
+ const ALPHA_PROBE_PIXELS = 1 << 20;
14
+ /** `first`, then `second`. */
15
+ function then(first, second) {
16
+ const [a, b, c, d, e, f] = first;
17
+ const [a2, b2, c2, d2, e2, f2] = second;
18
+ return [
19
+ a * a2 + b * c2,
20
+ a * b2 + b * d2,
21
+ c * a2 + d * c2,
22
+ c * b2 + d * d2,
23
+ e * a2 + f * c2 + e2,
24
+ e * b2 + f * d2 + f2,
25
+ ];
26
+ }
27
+ function apply(m, x, y) {
28
+ return [m[0] * x + m[2] * y + m[4], m[1] * x + m[3] * y + m[5]];
29
+ }
30
+ /** Four floats PDFium writes, read right after the call. */
31
+ function floats(p, at, count) {
32
+ return Array.from(new Float32Array(heap(p).buffer, at, count));
33
+ }
34
+ /**
35
+ * From PDFium's user space (its crop box, y up, `/Rotate` not applied) to the tile's pixels:
36
+ * into the displayed page space `pageToTile` starts from, then `pageToTile`.
37
+ */
38
+ export function userToTile(p, page, info, plan, rotation) {
39
+ const box = withScratch(p, 16, (at) => {
40
+ const read = (get) => get(page, at, at + 4, at + 8, at + 12) ? floats(p, at, 4) : undefined;
41
+ // left, bottom, right, top
42
+ return read(p.FPDFPage_GetCropBox) ?? read(p.FPDFPage_GetMediaBox);
43
+ }) ?? [0, 0, 0, 0];
44
+ const [x0 = 0, y0 = 0, x1 = 0, y1 = 0] = box;
45
+ const toPage = {
46
+ 0: [1, 0, 0, -1, -x0, y1],
47
+ 90: [0, 1, 1, 0, -y0, -x0],
48
+ 180: [-1, 0, 0, 1, x1, -y0],
49
+ 270: [0, -1, -1, 0, y1, x1],
50
+ }[info.rotate];
51
+ const [a = 1, b = 0, c = 0, d = 1, e = 0, f = 0] = pageToTile(plan, info, rotation);
52
+ return then(toPage, [a, b, c, d, e, f]);
53
+ }
54
+ /** Each shown annotation's `/Rect` in tile pixels. */
55
+ export function annotationRects(p, page, toTile) {
56
+ const out = [];
57
+ const count = p.FPDFPage_GetAnnotCount(page);
58
+ withScratch(p, 16, (at) => {
59
+ for (let i = 0; i < count; i++) {
60
+ const annot = p.FPDFPage_GetAnnot(page, i);
61
+ if (annot === 0)
62
+ continue;
63
+ try {
64
+ if (p.FPDFAnnot_GetFlags(annot) & FPDF_ANNOT_FLAG_HIDDEN)
65
+ continue;
66
+ if (!p.FPDFAnnot_GetRect(annot, at))
67
+ continue;
68
+ // FS_RECTF: left, top, right, bottom.
69
+ const [l = 0, t = 0, r = 0, b = 0] = floats(p, at, 4);
70
+ out.push([apply(toTile, l, b), apply(toTile, r, b), apply(toTile, r, t), apply(toTile, l, t)]);
71
+ }
72
+ finally {
73
+ p.FPDFPage_CloseAnnot(annot);
74
+ }
75
+ }
76
+ });
77
+ return out;
78
+ }
79
+ /** Every image on `page` that touches the tile, forms included. */
80
+ export function pageImages(p, doc, page, toTile, scan) {
81
+ const images = { opaque: [], seeThrough: [] };
82
+ let seen = 0;
83
+ withScratch(p, 32, (at) => {
84
+ const visit = (object, m) => {
85
+ const type = p.FPDFPageObj_GetType(object);
86
+ if (type === FPDF_PAGEOBJ_IMAGE)
87
+ addImage(p, { doc, page, object, at, place: seen++, scan }, m, images);
88
+ if (type !== FPDF_PAGEOBJ_FORM)
89
+ return;
90
+ // A form's children are in its own space: its matrix comes first.
91
+ const inner = p.FPDFPageObj_GetMatrix(object, at) ? then(floats(p, at, 6), m) : m;
92
+ const count = p.FPDFFormObj_CountObjects(object);
93
+ for (let i = 0; i < count; i++)
94
+ visit(p.FPDFFormObj_GetObject(object, i), inner);
95
+ };
96
+ const count = p.FPDFPage_CountObjects(page);
97
+ for (let i = 0; i < count; i++)
98
+ visit(p.FPDFPage_GetObject(page, i), toTile);
99
+ });
100
+ return images;
101
+ }
102
+ /** Adds an image object's quad under `m` if it touches the tile, sorted by whether the page shows through it. */
103
+ function addImage(p, image, m, images) {
104
+ const { doc, page, object, at, place, scan } = image;
105
+ if (!p.FPDFPageObj_GetRotatedBounds(object, at))
106
+ return;
107
+ const [x1 = 0, y1 = 0, x2 = 0, y2 = 0, x3 = 0, y3 = 0, x4 = 0, y4 = 0] = floats(p, at, 8);
108
+ const quad = [apply(m, x1, y1), apply(m, x2, y2), apply(m, x3, y3), apply(m, x4, y4)];
109
+ if (!touches(quad, ...scan.tile))
110
+ return;
111
+ // The drawing state first: it costs nothing, while the samples are decoded (once per image).
112
+ let through = p.FPDFPageObj_HasTransparency(object);
113
+ if (!through) {
114
+ through = scan.alpha.get(place) ?? hasAlpha(p, doc, page, object);
115
+ scan.alpha.set(place, through);
116
+ }
117
+ (through ? images.seeThrough : images.opaque).push(quad);
118
+ }
119
+ /**
120
+ * Whether an image's own mask leaves some samples transparent. Larger images are taken as
121
+ * opaque: decoding them costs more than a tile, and they are nearly always photos.
122
+ */
123
+ function hasAlpha(p, doc, page, object) {
124
+ const size = withScratch(p, 8, (at) => {
125
+ if (!p.FPDFImageObj_GetImagePixelSize(object, at, at + 4))
126
+ return 0;
127
+ const [w = 0, h = 0] = new Uint32Array(heap(p).buffer, at, 2);
128
+ return w * h;
129
+ });
130
+ if (size === undefined || size === 0 || size > ALPHA_PROBE_PIXELS)
131
+ return false;
132
+ const bitmap = p.FPDFImageObj_GetRenderedBitmap(doc, page, object);
133
+ if (bitmap === 0)
134
+ return false;
135
+ try {
136
+ if (p.FPDFBitmap_GetFormat(bitmap) !== FPDFBITMAP_BGRA)
137
+ return false;
138
+ const [width, height, stride] = [
139
+ p.FPDFBitmap_GetWidth(bitmap),
140
+ p.FPDFBitmap_GetHeight(bitmap),
141
+ p.FPDFBitmap_GetStride(bitmap),
142
+ ];
143
+ const bytes = new Uint8Array(heap(p).buffer, p.FPDFBitmap_GetBuffer(bitmap), stride * height);
144
+ for (let y = 0; y < height; y++) {
145
+ for (let x = 0, o = y * stride + 3; x < width; x++, o += 4)
146
+ if ((bytes[o] ?? 255) < 255)
147
+ return true;
148
+ }
149
+ return false;
150
+ }
151
+ finally {
152
+ p.FPDFBitmap_Destroy(bitmap);
153
+ }
154
+ }
155
+ //# sourceMappingURL=regions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.js","sourceRoot":"","sources":["../src/regions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laminapdf/render-pdfium",
3
- "version": "0.2.0-alpha.3",
3
+ "version": "0.2.0-alpha.5",
4
4
  "description": "ADR 0004's default web renderer: the pinned PDFium-WASM build (@embedpdf/pdfium 2.15.1, SHA-256 checked) behind @laminapdf/render's RenderBackend interface, for the document worker.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "homepage": "https://laminapdf.com",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@embedpdf/pdfium": "2.15.1",
36
- "@laminapdf/render": "0.2.0-alpha.3"
36
+ "@laminapdf/render": "0.2.0-alpha.5"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "26.6.5",