@laminapdf/render-pdfium 0.2.0-alpha.4 → 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.
- package/dist/engine.d.ts +8 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +19 -0
- package/dist/engine.js.map +1 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -10
- package/dist/index.js.map +1 -1
- package/dist/regions.d.ts +25 -0
- package/dist/regions.d.ts.map +1 -0
- package/dist/regions.js +155 -0
- package/dist/regions.js.map +1 -0
- package/package.json +2 -2
package/dist/engine.d.ts
ADDED
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
290
|
-
|
|
291
|
-
const
|
|
292
|
-
|
|
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"}
|
package/dist/regions.js
ADDED
|
@@ -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
|
+
"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.
|
|
36
|
+
"@laminapdf/render": "0.2.0-alpha.5"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "26.6.5",
|