postext-pdf 1.4.2 → 1.5.0
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/README.md +3 -3
- package/dist/__tests__/accessibility.test.js +66 -0
- package/dist/__tests__/accessibility.test.js.map +1 -1
- package/dist/__tests__/alpha.test.d.ts +2 -0
- package/dist/__tests__/alpha.test.d.ts.map +1 -0
- package/dist/__tests__/alpha.test.js +164 -0
- package/dist/__tests__/alpha.test.js.map +1 -0
- package/dist/__tests__/bleedClip.test.d.ts +2 -0
- package/dist/__tests__/bleedClip.test.d.ts.map +1 -0
- package/dist/__tests__/bleedClip.test.js +83 -0
- package/dist/__tests__/bleedClip.test.js.map +1 -0
- package/dist/__tests__/boxBorderInside.test.d.ts +2 -0
- package/dist/__tests__/boxBorderInside.test.d.ts.map +1 -0
- package/dist/__tests__/boxBorderInside.test.js +63 -0
- package/dist/__tests__/boxBorderInside.test.js.map +1 -0
- package/dist/__tests__/calloutRuntTracking.test.d.ts +2 -0
- package/dist/__tests__/calloutRuntTracking.test.d.ts.map +1 -0
- package/dist/__tests__/calloutRuntTracking.test.js +72 -0
- package/dist/__tests__/calloutRuntTracking.test.js.map +1 -0
- package/dist/__tests__/calloutStripeRadius.test.d.ts +2 -0
- package/dist/__tests__/calloutStripeRadius.test.d.ts.map +1 -0
- package/dist/__tests__/calloutStripeRadius.test.js +90 -0
- package/dist/__tests__/calloutStripeRadius.test.js.map +1 -0
- package/dist/__tests__/chipVerticalPadding.test.d.ts +2 -0
- package/dist/__tests__/chipVerticalPadding.test.d.ts.map +1 -0
- package/dist/__tests__/chipVerticalPadding.test.js +71 -0
- package/dist/__tests__/chipVerticalPadding.test.js.map +1 -0
- package/dist/__tests__/chips.test.js +20 -3
- package/dist/__tests__/chips.test.js.map +1 -1
- package/dist/__tests__/documentLanguage.test.d.ts +2 -0
- package/dist/__tests__/documentLanguage.test.d.ts.map +1 -0
- package/dist/__tests__/documentLanguage.test.js +44 -0
- package/dist/__tests__/documentLanguage.test.js.map +1 -0
- package/dist/__tests__/fallbackSpaces.test.d.ts +2 -0
- package/dist/__tests__/fallbackSpaces.test.d.ts.map +1 -0
- package/dist/__tests__/fallbackSpaces.test.js +156 -0
- package/dist/__tests__/fallbackSpaces.test.js.map +1 -0
- package/dist/__tests__/floatReadingOrder.test.d.ts +2 -0
- package/dist/__tests__/floatReadingOrder.test.d.ts.map +1 -0
- package/dist/__tests__/floatReadingOrder.test.js +208 -0
- package/dist/__tests__/floatReadingOrder.test.js.map +1 -0
- package/dist/__tests__/fontEmbedding.test.d.ts +2 -0
- package/dist/__tests__/fontEmbedding.test.d.ts.map +1 -0
- package/dist/__tests__/fontEmbedding.test.js +118 -0
- package/dist/__tests__/fontEmbedding.test.js.map +1 -0
- package/dist/__tests__/fontFaces.test.d.ts +2 -0
- package/dist/__tests__/fontFaces.test.d.ts.map +1 -0
- package/dist/__tests__/fontFaces.test.js +193 -0
- package/dist/__tests__/fontFaces.test.js.map +1 -0
- package/dist/__tests__/fontStack.test.d.ts +2 -0
- package/dist/__tests__/fontStack.test.d.ts.map +1 -0
- package/dist/__tests__/fontStack.test.js +48 -0
- package/dist/__tests__/fontStack.test.js.map +1 -0
- package/dist/__tests__/headerFooter.test.js +83 -1
- package/dist/__tests__/headerFooter.test.js.map +1 -1
- package/dist/__tests__/headingAlign.test.d.ts +2 -0
- package/dist/__tests__/headingAlign.test.d.ts.map +1 -0
- package/dist/__tests__/headingAlign.test.js +66 -0
- package/dist/__tests__/headingAlign.test.js.map +1 -0
- package/dist/__tests__/hiddenHeadings.test.d.ts +2 -0
- package/dist/__tests__/hiddenHeadings.test.d.ts.map +1 -0
- package/dist/__tests__/hiddenHeadings.test.js +96 -0
- package/dist/__tests__/hiddenHeadings.test.js.map +1 -0
- package/dist/__tests__/lineTracking.test.d.ts +2 -0
- package/dist/__tests__/lineTracking.test.d.ts.map +1 -0
- package/dist/__tests__/lineTracking.test.js +80 -0
- package/dist/__tests__/lineTracking.test.js.map +1 -0
- package/dist/__tests__/measuredLines.test.d.ts +2 -0
- package/dist/__tests__/measuredLines.test.d.ts.map +1 -0
- package/dist/__tests__/measuredLines.test.js +255 -0
- package/dist/__tests__/measuredLines.test.js.map +1 -0
- package/dist/__tests__/metadata.test.d.ts +2 -0
- package/dist/__tests__/metadata.test.d.ts.map +1 -0
- package/dist/__tests__/metadata.test.js +51 -0
- package/dist/__tests__/metadata.test.js.map +1 -0
- package/dist/__tests__/outlineTitles.test.d.ts +2 -0
- package/dist/__tests__/outlineTitles.test.d.ts.map +1 -0
- package/dist/__tests__/outlineTitles.test.js +59 -0
- package/dist/__tests__/outlineTitles.test.js.map +1 -0
- package/dist/__tests__/pdfGenerationConfig.test.d.ts +2 -0
- package/dist/__tests__/pdfGenerationConfig.test.d.ts.map +1 -0
- package/dist/__tests__/pdfGenerationConfig.test.js +76 -0
- package/dist/__tests__/pdfGenerationConfig.test.js.map +1 -0
- package/dist/__tests__/pdfWorker.test.d.ts +2 -0
- package/dist/__tests__/pdfWorker.test.d.ts.map +1 -0
- package/dist/__tests__/pdfWorker.test.js +123 -0
- package/dist/__tests__/pdfWorker.test.js.map +1 -0
- package/dist/__tests__/printMarks.test.d.ts +2 -0
- package/dist/__tests__/printMarks.test.d.ts.map +1 -0
- package/dist/__tests__/printMarks.test.js +170 -0
- package/dist/__tests__/printMarks.test.js.map +1 -0
- package/dist/__tests__/printMaster.test.d.ts +2 -0
- package/dist/__tests__/printMaster.test.d.ts.map +1 -0
- package/dist/__tests__/printMaster.test.js +161 -0
- package/dist/__tests__/printMaster.test.js.map +1 -0
- package/dist/__tests__/renderWarnings.test.d.ts +2 -0
- package/dist/__tests__/renderWarnings.test.d.ts.map +1 -0
- package/dist/__tests__/renderWarnings.test.js +89 -0
- package/dist/__tests__/renderWarnings.test.js.map +1 -0
- package/dist/__tests__/repeatedHyphen.test.d.ts +2 -0
- package/dist/__tests__/repeatedHyphen.test.d.ts.map +1 -0
- package/dist/__tests__/repeatedHyphen.test.js +125 -0
- package/dist/__tests__/repeatedHyphen.test.js.map +1 -0
- package/dist/__tests__/scriptStacking.test.d.ts +2 -0
- package/dist/__tests__/scriptStacking.test.d.ts.map +1 -0
- package/dist/__tests__/scriptStacking.test.js +66 -0
- package/dist/__tests__/scriptStacking.test.js.map +1 -0
- package/dist/__tests__/sectionColumnRule.test.d.ts +2 -0
- package/dist/__tests__/sectionColumnRule.test.d.ts.map +1 -0
- package/dist/__tests__/sectionColumnRule.test.js +144 -0
- package/dist/__tests__/sectionColumnRule.test.js.map +1 -0
- package/dist/__tests__/svgFormReuse.test.d.ts +2 -0
- package/dist/__tests__/svgFormReuse.test.d.ts.map +1 -0
- package/dist/__tests__/svgFormReuse.test.js +102 -0
- package/dist/__tests__/svgFormReuse.test.js.map +1 -0
- package/dist/__tests__/svgVector.test.js +85 -11
- package/dist/__tests__/svgVector.test.js.map +1 -1
- package/dist/__tests__/tableFillSeams.test.d.ts +2 -0
- package/dist/__tests__/tableFillSeams.test.d.ts.map +1 -0
- package/dist/__tests__/tableFillSeams.test.js +72 -0
- package/dist/__tests__/tableFillSeams.test.js.map +1 -0
- package/dist/__tests__/tocLeaderKerning.test.d.ts +2 -0
- package/dist/__tests__/tocLeaderKerning.test.d.ts.map +1 -0
- package/dist/__tests__/tocLeaderKerning.test.js +84 -0
- package/dist/__tests__/tocLeaderKerning.test.js.map +1 -0
- package/dist/__tests__/tocNumberBaseline.test.d.ts +2 -0
- package/dist/__tests__/tocNumberBaseline.test.d.ts.map +1 -0
- package/dist/__tests__/tocNumberBaseline.test.js +72 -0
- package/dist/__tests__/tocNumberBaseline.test.js.map +1 -0
- package/dist/__tests__/tocTagging.test.d.ts +2 -0
- package/dist/__tests__/tocTagging.test.d.ts.map +1 -0
- package/dist/__tests__/tocTagging.test.js +120 -0
- package/dist/__tests__/tocTagging.test.js.map +1 -0
- package/dist/__tests__/trackedLineAlign.test.d.ts +2 -0
- package/dist/__tests__/trackedLineAlign.test.d.ts.map +1 -0
- package/dist/__tests__/trackedLineAlign.test.js +73 -0
- package/dist/__tests__/trackedLineAlign.test.js.map +1 -0
- package/dist/__tests__/uriLinks.test.d.ts +2 -0
- package/dist/__tests__/uriLinks.test.d.ts.map +1 -0
- package/dist/__tests__/uriLinks.test.js +103 -0
- package/dist/__tests__/uriLinks.test.js.map +1 -0
- package/dist/colors.d.ts +18 -3
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +77 -25
- package/dist/colors.js.map +1 -1
- package/dist/fontCache.d.ts +67 -4
- package/dist/fontCache.d.ts.map +1 -1
- package/dist/fontCache.js +200 -23
- package/dist/fontCache.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/pdf-backend/blockRender.d.ts.map +1 -1
- package/dist/pdf-backend/blockRender.js +127 -28
- package/dist/pdf-backend/blockRender.js.map +1 -1
- package/dist/pdf-backend/fallbackSpaces.d.ts +37 -0
- package/dist/pdf-backend/fallbackSpaces.d.ts.map +1 -0
- package/dist/pdf-backend/fallbackSpaces.js +119 -0
- package/dist/pdf-backend/fallbackSpaces.js.map +1 -0
- package/dist/pdf-backend/fontHelpers.d.ts +10 -1
- package/dist/pdf-backend/fontHelpers.d.ts.map +1 -1
- package/dist/pdf-backend/fontHelpers.js +111 -65
- package/dist/pdf-backend/fontHelpers.js.map +1 -1
- package/dist/pdf-backend/headerFooter.d.ts +4 -2
- package/dist/pdf-backend/headerFooter.d.ts.map +1 -1
- package/dist/pdf-backend/headerFooter.js +105 -48
- package/dist/pdf-backend/headerFooter.js.map +1 -1
- package/dist/pdf-backend/index.d.ts +55 -6
- package/dist/pdf-backend/index.d.ts.map +1 -1
- package/dist/pdf-backend/index.js +135 -35
- package/dist/pdf-backend/index.js.map +1 -1
- package/dist/pdf-backend/links.d.ts +82 -1
- package/dist/pdf-backend/links.d.ts.map +1 -1
- package/dist/pdf-backend/links.js +141 -3
- package/dist/pdf-backend/links.js.map +1 -1
- package/dist/pdf-backend/outlines.d.ts.map +1 -1
- package/dist/pdf-backend/outlines.js +7 -0
- package/dist/pdf-backend/outlines.js.map +1 -1
- package/dist/pdf-backend/pageDecorations.d.ts.map +1 -1
- package/dist/pdf-backend/pageDecorations.js +42 -26
- package/dist/pdf-backend/pageDecorations.js.map +1 -1
- package/dist/pdf-backend/primitives.d.ts +61 -1
- package/dist/pdf-backend/primitives.d.ts.map +1 -1
- package/dist/pdf-backend/primitives.js +318 -18
- package/dist/pdf-backend/primitives.js.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.d.ts +3 -1
- package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.js +97 -19
- package/dist/pdf-backend/renderResourceBlock.js.map +1 -1
- package/dist/pdf-backend/structureFlow.d.ts +70 -3
- package/dist/pdf-backend/structureFlow.d.ts.map +1 -1
- package/dist/pdf-backend/structureFlow.js +209 -27
- package/dist/pdf-backend/structureFlow.js.map +1 -1
- package/dist/pdf-backend/svgVector.d.ts +7 -2
- package/dist/pdf-backend/svgVector.d.ts.map +1 -1
- package/dist/pdf-backend/svgVector.js +157 -72
- package/dist/pdf-backend/svgVector.js.map +1 -1
- package/dist/pdf-backend/tagging.d.ts +1 -1
- package/dist/pdf-backend/tagging.d.ts.map +1 -1
- package/dist/pdf-backend/tagging.js.map +1 -1
- package/dist/worker/client.d.ts +1 -1
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +8 -0
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/pdf.worker.js +1 -0
- package/dist/worker/pdf.worker.js.map +1 -1
- package/dist/worker/protocol.d.ts +8 -1
- package/dist/worker/protocol.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { rgb, cmyk, grayscale, pushGraphicsState, popGraphicsState, rectangle, clip, endPath, concatTransformationMatrix, PDFArray, PDFHexString, PDFNumber, PDFOperator, PDFOperatorNames, beginText, endText, setFillingColor, setFontAndSize, showText, setTextMatrix, moveTo, lineTo, appendBezierCurve, closePath, stroke, fill, setStrokingColor, setLineWidth, } from 'pdf-lib';
|
|
2
|
-
import { hexToRgb, rgbToCmyk, rgbToGrayscale } from '../colors';
|
|
1
|
+
import { rgb, cmyk, grayscale, pushGraphicsState, popGraphicsState, rectangle, clip, endPath, concatTransformationMatrix, PDFArray, PDFHexString, PDFName, PDFNumber, PDFOperator, PDFOperatorNames, beginText, endText, setFillingColor, setFontAndSize, showText, setTextMatrix, moveTo, lineTo, appendBezierCurve, closePath, stroke, fill, setStrokingColor, setLineWidth, setTextRenderingMode, TextRenderingMode, setGraphicsState, } from 'pdf-lib';
|
|
2
|
+
import { colorAlpha, hexToRgb, rgbToCmyk, rgbToGrayscale } from '../colors';
|
|
3
|
+
import { fallbackPieces } from './fallbackSpaces';
|
|
3
4
|
/** Apply `m` to a point. */
|
|
4
5
|
export function applyMatrix(m, x, y) {
|
|
5
6
|
return { x: m[0] * x + m[2] * y + m[4], y: m[1] * x + m[3] * y + m[5] };
|
|
@@ -28,14 +29,19 @@ export function drawSwatchPx(ctx, xPx, baselinePx, sidePx, fill, ink) {
|
|
|
28
29
|
const x = (xPx + strokePx / 2) * scale;
|
|
29
30
|
const y = pageHeightPt - (baselinePx - strokePx / 2) * scale;
|
|
30
31
|
const side = (sidePx - strokePx) * scale;
|
|
32
|
+
const fillColor = fill ? colorFromHex(fill, ctx.colorSpace) : undefined;
|
|
33
|
+
const fillAlpha = alphaOf(fillColor);
|
|
34
|
+
const inkAlpha = alphaOf(ink);
|
|
31
35
|
ctx.page.drawRectangle({
|
|
32
36
|
x,
|
|
33
37
|
y,
|
|
34
38
|
width: side,
|
|
35
39
|
height: side,
|
|
36
|
-
...(
|
|
40
|
+
...(fillColor ? { color: fillColor } : {}),
|
|
37
41
|
borderColor: ink,
|
|
38
42
|
borderWidth: Math.max(0.01, strokePx * scale),
|
|
43
|
+
...(fillColor && fillAlpha < 1 ? { opacity: fillAlpha } : {}),
|
|
44
|
+
...(inkAlpha < 1 ? { borderOpacity: inkAlpha } : {}),
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
47
|
export function makeScale(dpi) {
|
|
@@ -52,6 +58,12 @@ export function whiteColor(colorSpace) {
|
|
|
52
58
|
// uses a handful of colors. pdf-lib Color objects are plain immutable
|
|
53
59
|
// descriptors, so sharing instances is safe.
|
|
54
60
|
const colorCache = new Map();
|
|
61
|
+
/**
|
|
62
|
+
* The pdf-lib colour of a document colour string — `#rgb`, `#rrggbb`, with
|
|
63
|
+
* an alpha channel (`#rgba`, `#rrggbbaa`), `rgb()` / `rgba()` or
|
|
64
|
+
* `transparent` — in the output colour space. A translucent colour carries
|
|
65
|
+
* its opacity along (see {@link alphaOf}); malformed input paints black.
|
|
66
|
+
*/
|
|
55
67
|
export function colorFromHex(hex, colorSpace) {
|
|
56
68
|
const key = `${colorSpace}|${hex}`;
|
|
57
69
|
const cached = colorCache.get(key);
|
|
@@ -69,9 +81,44 @@ export function colorFromHex(hex, colorSpace) {
|
|
|
69
81
|
else {
|
|
70
82
|
color = rgb(c.r, c.g, c.b);
|
|
71
83
|
}
|
|
84
|
+
const alpha = colorAlpha(hex);
|
|
85
|
+
if (alpha < 1)
|
|
86
|
+
color.alpha = alpha;
|
|
72
87
|
colorCache.set(key, color);
|
|
73
88
|
return color;
|
|
74
89
|
}
|
|
90
|
+
/** Opacity of a colour made by {@link colorFromHex}, 0 … 1. */
|
|
91
|
+
export function alphaOf(color) {
|
|
92
|
+
return color?.alpha ?? 1;
|
|
93
|
+
}
|
|
94
|
+
/** ExtGState per distinct (fill alpha, stroke alpha) pair, per page. */
|
|
95
|
+
const alphaStates = new WeakMap();
|
|
96
|
+
const roundAlpha = (n) => Math.round(Math.max(0, Math.min(1, n)) * 1000) / 1000;
|
|
97
|
+
/** The `gs` operator setting constant fill (`ca`) and stroke (`CA`) alpha,
|
|
98
|
+
* one shared ExtGState per pair and page; null when both are opaque. */
|
|
99
|
+
export function alphaStateOp(ctx, fillAlpha, strokeAlpha = 1) {
|
|
100
|
+
const ca = roundAlpha(fillAlpha);
|
|
101
|
+
const CA = roundAlpha(strokeAlpha);
|
|
102
|
+
if (ca >= 1 && CA >= 1)
|
|
103
|
+
return null;
|
|
104
|
+
let states = alphaStates.get(ctx.page);
|
|
105
|
+
if (!states) {
|
|
106
|
+
states = new Map();
|
|
107
|
+
alphaStates.set(ctx.page, states);
|
|
108
|
+
}
|
|
109
|
+
const key = `${ca}|${CA}`;
|
|
110
|
+
let name = states.get(key);
|
|
111
|
+
if (!name) {
|
|
112
|
+
const dict = ctx.page.doc.context.obj({ Type: 'ExtGState', ca, CA });
|
|
113
|
+
name = ctx.page.node.newExtGState('GSa', dict);
|
|
114
|
+
states.set(key, name);
|
|
115
|
+
}
|
|
116
|
+
return setGraphicsState(name);
|
|
117
|
+
}
|
|
118
|
+
/** `op` as a one-element list when set, for spreading into operator runs. */
|
|
119
|
+
function opt(op) {
|
|
120
|
+
return op ? [op] : [];
|
|
121
|
+
}
|
|
75
122
|
/** Back-compat alias — defaults to RGB. */
|
|
76
123
|
export function rgbFromHex(hex) {
|
|
77
124
|
return colorFromHex(hex, 'rgb');
|
|
@@ -82,6 +129,11 @@ export function fillRectPx(ctx, xPx, yPx, wPx, hPx, color, blendMode) {
|
|
|
82
129
|
const y = pageHeightPt - (yPx + hPx) * scale;
|
|
83
130
|
const width = wPx * scale;
|
|
84
131
|
const height = hPx * scale;
|
|
132
|
+
const alpha = alphaOf(color);
|
|
133
|
+
if (alpha < 1 && !blendMode) {
|
|
134
|
+
ctx.page.pushOperators(pushGraphicsState(), ...opt(alphaStateOp(ctx, alpha)), setFillingColor(color), rectangle(x, y, width, height), fill(), popGraphicsState());
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
85
137
|
ctx.page.drawRectangle({
|
|
86
138
|
x,
|
|
87
139
|
y,
|
|
@@ -89,10 +141,26 @@ export function fillRectPx(ctx, xPx, yPx, wPx, hPx, color, blendMode) {
|
|
|
89
141
|
height,
|
|
90
142
|
color,
|
|
91
143
|
...(blendMode ? { blendMode } : {}),
|
|
144
|
+
...(alpha < 1 ? { opacity: alpha } : {}),
|
|
92
145
|
});
|
|
93
146
|
}
|
|
147
|
+
/** Fill several rectangles (px) in one colour with a single fill operation:
|
|
148
|
+
* the viewer rasterises them as one shape, so rectangles that abut or
|
|
149
|
+
* overlap leave no seam between them. */
|
|
150
|
+
export function fillRectsPx(ctx, rects, color) {
|
|
151
|
+
if (rects.length === 0)
|
|
152
|
+
return;
|
|
153
|
+
const { scale, pageHeightPt } = ctx;
|
|
154
|
+
const alpha = alphaOf(color);
|
|
155
|
+
ctx.page.pushOperators(pushGraphicsState(), ...(alpha < 1 ? opt(alphaStateOp(ctx, alpha)) : []), setFillingColor(color), ...rects.map((r) => rectangle(r.x * scale, pageHeightPt - (r.y + r.height) * scale, r.width * scale, r.height * scale)), fill(), popGraphicsState());
|
|
156
|
+
}
|
|
94
157
|
export function drawLinePx(ctx, x1Px, y1Px, x2Px, y2Px, color, thicknessPx) {
|
|
95
158
|
const { scale, pageHeightPt } = ctx;
|
|
159
|
+
const alpha = alphaOf(color);
|
|
160
|
+
if (alpha < 1) {
|
|
161
|
+
ctx.page.pushOperators(pushGraphicsState(), ...opt(alphaStateOp(ctx, 1, alpha)), setStrokingColor(color), setLineWidth(Math.max(0.01, thicknessPx * scale)), moveTo(x1Px * scale, pageHeightPt - y1Px * scale), lineTo(x2Px * scale, pageHeightPt - y2Px * scale), stroke(), popGraphicsState());
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
96
164
|
ctx.page.drawLine({
|
|
97
165
|
start: { x: x1Px * scale, y: pageHeightPt - y1Px * scale },
|
|
98
166
|
end: { x: x2Px * scale, y: pageHeightPt - y2Px * scale },
|
|
@@ -131,21 +199,41 @@ export function showTextShaped(font, text) {
|
|
|
131
199
|
const hit = cache.get(text);
|
|
132
200
|
if (hit)
|
|
133
201
|
return hit;
|
|
134
|
-
|
|
135
|
-
// it returns are subset ids), so it runs even when positions are added.
|
|
136
|
-
const encoded = font.encodeText(text);
|
|
137
|
-
const op = shapedOperator(font, text, encoded) ?? showText(encoded);
|
|
202
|
+
const op = fallbackOperator(font, text) ?? shapedTextOperator(font, text);
|
|
138
203
|
if (cache.size >= ENCODE_CACHE_SLOTS)
|
|
139
204
|
cache.clear();
|
|
140
205
|
cache.set(text, op);
|
|
141
206
|
return op;
|
|
142
207
|
}
|
|
143
|
-
function
|
|
208
|
+
function shapingFace(font) {
|
|
144
209
|
const embedder = font.embedder;
|
|
145
210
|
const face = embedder?.font;
|
|
146
211
|
if (!face || typeof face.layout !== 'function' || !face.unitsPerEm)
|
|
147
212
|
return undefined;
|
|
148
|
-
|
|
213
|
+
return { face, features: embedder.fontFeatures };
|
|
214
|
+
}
|
|
215
|
+
/** `text` shaped as one run: a `TJ` with the shaper's positions, or a plain
|
|
216
|
+
* `Tj` when it has none. */
|
|
217
|
+
function shapedTextOperator(font, text) {
|
|
218
|
+
// `encodeText` also registers the glyphs with the font's subset (the ids
|
|
219
|
+
// it returns are subset ids), so it runs even when positions are added.
|
|
220
|
+
const encoded = font.encodeText(text);
|
|
221
|
+
const parts = shapedParts(font, text, encoded);
|
|
222
|
+
return parts && parts.length > 1 ? adjustedOperator(font, parts) : showText(encoded);
|
|
223
|
+
}
|
|
224
|
+
/** The `TJ` array (hex glyph runs and adjustments) of a shaped run, or
|
|
225
|
+
* undefined when the shaper's positions cannot be matched to its glyphs. */
|
|
226
|
+
function shapedParts(font, text, encoded) {
|
|
227
|
+
return shapedRun(font, text, encoded)?.parts;
|
|
228
|
+
}
|
|
229
|
+
/** {@link shapedParts} with the sum of the glyphs' own widths (their `W`
|
|
230
|
+
* entries), in thousandths of the font size. */
|
|
231
|
+
function shapedRun(font, text, encoded) {
|
|
232
|
+
const shaping = shapingFace(font);
|
|
233
|
+
if (!shaping)
|
|
234
|
+
return undefined;
|
|
235
|
+
const { face } = shaping;
|
|
236
|
+
const run = face.layout(text, shaping.features);
|
|
149
237
|
const hex = encoded.asString();
|
|
150
238
|
const count = run.glyphs.length;
|
|
151
239
|
if (count === 0 || hex.length !== count * 4 || run.positions.length !== count)
|
|
@@ -154,6 +242,7 @@ function shapedOperator(font, text, encoded) {
|
|
|
154
242
|
// glyph drawn at `pen + xOffset` then advancing by `xAdvance` (not its
|
|
155
243
|
// W width `advanceWidth`) is `-xOffset, glyph, -(xAdvance - w - xOffset)`.
|
|
156
244
|
const toText = 1000 / face.unitsPerEm;
|
|
245
|
+
const subsetFont = isSubsetFont(font);
|
|
157
246
|
const parts = [];
|
|
158
247
|
let pendingHex = '';
|
|
159
248
|
let pendingAdjust = 0;
|
|
@@ -162,6 +251,7 @@ function shapedOperator(font, text, encoded) {
|
|
|
162
251
|
parts.push(pendingHex);
|
|
163
252
|
pendingHex = '';
|
|
164
253
|
};
|
|
254
|
+
let widths = 0;
|
|
165
255
|
for (let i = 0; i < count; i++) {
|
|
166
256
|
const pos = run.positions[i];
|
|
167
257
|
const lead = tjNumber(pendingAdjust - pos.xOffset * toText);
|
|
@@ -169,19 +259,180 @@ function shapedOperator(font, text, encoded) {
|
|
|
169
259
|
flushHex();
|
|
170
260
|
parts.push(lead);
|
|
171
261
|
}
|
|
172
|
-
|
|
262
|
+
const cid = hex.slice(i * 4, i * 4 + 4);
|
|
263
|
+
pendingHex += cid;
|
|
173
264
|
pendingAdjust = -(pos.xAdvance - run.glyphs[i].advanceWidth - pos.xOffset) * toText;
|
|
265
|
+
widths += cid === '0000' && subsetFont ? MISSING_WIDTH : run.glyphs[i].advanceWidth * toText;
|
|
174
266
|
}
|
|
175
267
|
flushHex();
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
268
|
+
return { parts, widths };
|
|
269
|
+
}
|
|
270
|
+
/** The width a viewer gives a glyph with no `W` entry (no `DW` is written). */
|
|
271
|
+
const MISSING_WIDTH = 1000;
|
|
272
|
+
/** Whether pdf-lib embeds `font` as a subset, whose `W` array never lists
|
|
273
|
+
* the notdef glyph (CID 0): a viewer advances it by {@link MISSING_WIDTH}. */
|
|
274
|
+
function isSubsetFont(font) {
|
|
275
|
+
return !!font.embedder?.subset;
|
|
276
|
+
}
|
|
277
|
+
function adjustedOperator(font, parts) {
|
|
278
|
+
const array = PDFArray.withContext(font.doc.context);
|
|
180
279
|
for (const part of parts) {
|
|
181
280
|
array.push(typeof part === 'number' ? PDFNumber.of(part) : PDFHexString.of(part));
|
|
182
281
|
}
|
|
183
282
|
return PDFOperator.of(PDFOperatorNames.ShowTextAdjusted, [array]);
|
|
184
283
|
}
|
|
284
|
+
/** A plain `Tj` for a single glyph run (or none), else a `TJ`. */
|
|
285
|
+
function partsOperator(font, parts) {
|
|
286
|
+
if (parts.length === 0)
|
|
287
|
+
return showText(PDFHexString.of(''));
|
|
288
|
+
return parts.length === 1 && typeof parts[0] === 'string' ? showText(PDFHexString.of(parts[0])) : adjustedOperator(font, parts);
|
|
289
|
+
}
|
|
290
|
+
/** Append a part to a `TJ` array, merging it into a neighbouring glyph run
|
|
291
|
+
* or number; a zero adjustment is dropped. */
|
|
292
|
+
function pushPart(parts, part) {
|
|
293
|
+
const last = parts[parts.length - 1];
|
|
294
|
+
if (typeof part === 'number') {
|
|
295
|
+
if (part === 0)
|
|
296
|
+
return;
|
|
297
|
+
if (typeof last === 'number')
|
|
298
|
+
parts[parts.length - 1] = tjNumber(last + part);
|
|
299
|
+
else
|
|
300
|
+
parts.push(part);
|
|
301
|
+
}
|
|
302
|
+
else if (typeof last === 'string')
|
|
303
|
+
parts[parts.length - 1] = last + part;
|
|
304
|
+
else
|
|
305
|
+
parts.push(part);
|
|
306
|
+
}
|
|
307
|
+
/** Glyphs and pen advance of a run of parts whose glyph widths sum to
|
|
308
|
+
* `widths` (thousandths of the font size). */
|
|
309
|
+
function shownRunOf(parts, widths) {
|
|
310
|
+
let advance = widths;
|
|
311
|
+
let glyphs = 0;
|
|
312
|
+
for (const part of parts) {
|
|
313
|
+
if (typeof part === 'number')
|
|
314
|
+
advance -= part;
|
|
315
|
+
else
|
|
316
|
+
glyphs += part.length / 4;
|
|
317
|
+
}
|
|
318
|
+
return { parts, advance, glyphs };
|
|
319
|
+
}
|
|
320
|
+
/** The parts of a text holding spaces the face has no glyph for, or
|
|
321
|
+
* invisible characters (see {@link fallbackOperator}). */
|
|
322
|
+
function fallbackRun(font, face, pieces) {
|
|
323
|
+
const toText = 1000 / face.unitsPerEm;
|
|
324
|
+
const spaceGlyph = face.hasGlyphForCodePoint(0x20) ? face.glyphForCodePoint(0x20) : undefined;
|
|
325
|
+
const parts = [];
|
|
326
|
+
let widths = 0;
|
|
327
|
+
for (const piece of pieces) {
|
|
328
|
+
if ('space' in piece) {
|
|
329
|
+
if (spaceGlyph) {
|
|
330
|
+
pushPart(parts, font.encodeText(' ').asString());
|
|
331
|
+
pushPart(parts, tjNumber((spaceGlyph.advanceWidth - piece.space) * toText));
|
|
332
|
+
widths += spaceGlyph.advanceWidth * toText;
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
pushPart(parts, tjNumber(-piece.space * toText));
|
|
336
|
+
}
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
const encoded = font.encodeText(piece.text);
|
|
340
|
+
const shaped = shapedRun(font, piece.text, encoded);
|
|
341
|
+
for (const part of shaped?.parts ?? [encoded.asString()])
|
|
342
|
+
pushPart(parts, part);
|
|
343
|
+
widths += shaped?.widths ?? font.widthOfTextAtSize(piece.text, 1000);
|
|
344
|
+
}
|
|
345
|
+
return shownRunOf(parts, widths);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* The show-text operator of a text holding a space the face has no glyph
|
|
349
|
+
* for (a narrow no-break space, a figure space…) or an invisible character
|
|
350
|
+
* (a word joiner): painted as the canvas measured it, not as `.notdef`
|
|
351
|
+
* boxes (see `fallbackSpaces.ts`). A missing space is the face's space
|
|
352
|
+
* glyph — text extraction still finds a space there — moved to the
|
|
353
|
+
* browser's advance for it; an invisible character is not drawn. Undefined
|
|
354
|
+
* for text that needs none of this.
|
|
355
|
+
*/
|
|
356
|
+
function fallbackOperator(font, text) {
|
|
357
|
+
const shaping = shapingFace(font);
|
|
358
|
+
if (!shaping)
|
|
359
|
+
return undefined;
|
|
360
|
+
const pieces = fallbackPieces(shaping.face, text);
|
|
361
|
+
if (!pieces)
|
|
362
|
+
return undefined;
|
|
363
|
+
return partsOperator(font, fallbackRun(font, shaping.face, pieces).parts);
|
|
364
|
+
}
|
|
365
|
+
const runsByFont = new WeakMap();
|
|
366
|
+
/** `text` as {@link showTextShaped} paints it, with the advance and glyph
|
|
367
|
+
* count it leaves (cached per font). Undefined when the font carries no
|
|
368
|
+
* shaper to measure it with. */
|
|
369
|
+
function shownRun(font, text) {
|
|
370
|
+
let cache = runsByFont.get(font);
|
|
371
|
+
if (!cache) {
|
|
372
|
+
cache = new Map();
|
|
373
|
+
runsByFont.set(font, cache);
|
|
374
|
+
}
|
|
375
|
+
const hit = cache.get(text);
|
|
376
|
+
if (hit)
|
|
377
|
+
return hit;
|
|
378
|
+
const shaping = shapingFace(font);
|
|
379
|
+
if (!shaping)
|
|
380
|
+
return undefined;
|
|
381
|
+
const pieces = fallbackPieces(shaping.face, text);
|
|
382
|
+
let run;
|
|
383
|
+
if (pieces) {
|
|
384
|
+
run = fallbackRun(font, shaping.face, pieces);
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
const encoded = font.encodeText(text);
|
|
388
|
+
const hex = encoded.asString();
|
|
389
|
+
const shaped = shapedRun(font, text, encoded);
|
|
390
|
+
run = shownRunOf(shaped?.parts ?? (hex ? [hex] : []), shaped?.widths ?? font.widthOfTextAtSize(text, 1000));
|
|
391
|
+
}
|
|
392
|
+
if (cache.size >= ENCODE_CACHE_SLOTS)
|
|
393
|
+
cache.clear();
|
|
394
|
+
cache.set(text, run);
|
|
395
|
+
return run;
|
|
396
|
+
}
|
|
397
|
+
/** Below this (thousandths of the font size) the pen is left where the
|
|
398
|
+
* glyphs put it and the difference is carried to the next piece: the
|
|
399
|
+
* layout and the embedded face agree on almost every word, and the
|
|
400
|
+
* `TJ` then holds only the kerning. */
|
|
401
|
+
const MEASURED_TOLERANCE = 0.5;
|
|
402
|
+
/**
|
|
403
|
+
* One show-text operator for a line's pieces (its words and spaces, each
|
|
404
|
+
* with the width the layout measured it at): every piece starts where the
|
|
405
|
+
* layout put it (EF-137). The face's own glyphs set each piece, a `TJ`
|
|
406
|
+
* number after it moves the pen to where the next one starts, so a glyph
|
|
407
|
+
* the embedded face lacks (measured by the browser in another font) or
|
|
408
|
+
* any other difference between the two measures never shifts the words
|
|
409
|
+
* after it. Spaces stay real space glyphs, for text extraction.
|
|
410
|
+
* `trackingPx` is the character spacing (`Tc`) the line is painted with,
|
|
411
|
+
* added after every glyph. Undefined when the font carries no shaper.
|
|
412
|
+
*/
|
|
413
|
+
export function measuredTextOperator(font, pieces, sizePx, trackingPx = 0) {
|
|
414
|
+
if (!(sizePx > 0))
|
|
415
|
+
return undefined;
|
|
416
|
+
const parts = [];
|
|
417
|
+
const tracking = (trackingPx / sizePx) * 1000;
|
|
418
|
+
// How far the pen is right of where the layout wants it, in thousandths.
|
|
419
|
+
let ahead = 0;
|
|
420
|
+
for (let i = 0; i < pieces.length; i++) {
|
|
421
|
+
const piece = pieces[i];
|
|
422
|
+
const run = shownRun(font, piece.text);
|
|
423
|
+
if (!run)
|
|
424
|
+
return undefined;
|
|
425
|
+
for (const part of run.parts)
|
|
426
|
+
pushPart(parts, part);
|
|
427
|
+
ahead += run.advance + run.glyphs * tracking - (piece.width / sizePx) * 1000;
|
|
428
|
+
if (i < pieces.length - 1 && Math.abs(ahead) >= MEASURED_TOLERANCE) {
|
|
429
|
+
const n = tjNumber(ahead);
|
|
430
|
+
pushPart(parts, n);
|
|
431
|
+
ahead -= n;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
return partsOperator(font, parts);
|
|
435
|
+
}
|
|
185
436
|
const fontKeysByPage = new WeakMap();
|
|
186
437
|
function fontKeyOn(page, font) {
|
|
187
438
|
let keys = fontKeysByPage.get(page);
|
|
@@ -196,12 +447,61 @@ function fontKeyOn(page, font) {
|
|
|
196
447
|
}
|
|
197
448
|
return key;
|
|
198
449
|
}
|
|
199
|
-
|
|
450
|
+
/** `actualText`, when set, is what copying, text extraction and assistive
|
|
451
|
+
* technology read for the glyphs painted (see {@link pushTextObject}). */
|
|
452
|
+
export function drawTextPx(ctx, text, xPx, baselinePx, font, sizePx, color, outline, actualText) {
|
|
200
453
|
if (!text)
|
|
201
454
|
return;
|
|
455
|
+
pushTextObject(ctx, showTextShaped(font, text), xPx, baselinePx, font, sizePx, color, outline, actualText);
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Paint a line's pieces (its words and spaces, with their measured widths)
|
|
459
|
+
* in one text object from `xPx`, each piece where the layout measured it
|
|
460
|
+
* (see {@link measuredTextOperator}). `trackingPx` is the character spacing
|
|
461
|
+
* already set for the line. Returns false, painting nothing, when the font
|
|
462
|
+
* cannot be measured that way; the caller then paints the text itself.
|
|
463
|
+
* `actualText` as in {@link drawTextPx}.
|
|
464
|
+
*/
|
|
465
|
+
export function drawMeasuredTextPx(ctx, pieces, xPx, baselinePx, font, sizePx, color, trackingPx = 0, actualText) {
|
|
466
|
+
const op = measuredTextOperator(font, pieces, sizePx, trackingPx);
|
|
467
|
+
if (!op)
|
|
468
|
+
return false;
|
|
469
|
+
pushTextObject(ctx, op, xPx, baselinePx, font, sizePx, color, undefined, actualText);
|
|
470
|
+
return true;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* The operators pdf-lib's `drawText` emits, around a show-text operator.
|
|
474
|
+
* With `actualText` the show-text operator sits in a `/Span` marked-content
|
|
475
|
+
* sequence whose `/ActualText` is that text (PDF 1.7 §14.9.4), inside the
|
|
476
|
+
* text object, where readers expect it: copying, text extraction and
|
|
477
|
+
* assistive technology read it instead of the glyphs. The span has no MCID,
|
|
478
|
+
* so in a tagged PDF it nests in the structure sequence open around it.
|
|
479
|
+
*/
|
|
480
|
+
function pushTextObject(ctx, show, xPx, baselinePx, font, sizePx, color, outline, actualText) {
|
|
202
481
|
const { scale, pageHeightPt } = ctx;
|
|
482
|
+
// Text render mode 2 fills then strokes the glyphs; mode 1 only strokes.
|
|
483
|
+
const outlineOps = outline && outline.widthPx > 0
|
|
484
|
+
? [
|
|
485
|
+
setStrokingColor(outline.color),
|
|
486
|
+
setLineWidth(outline.widthPx * scale),
|
|
487
|
+
setTextRenderingMode(outline.hollow ? TextRenderingMode.Outline : TextRenderingMode.FillAndOutline),
|
|
488
|
+
]
|
|
489
|
+
: [];
|
|
203
490
|
// The operators pdf-lib's `drawText` emits, with the encoding cached.
|
|
204
|
-
ctx.page.pushOperators(pushGraphicsState(),
|
|
491
|
+
ctx.page.pushOperators(pushGraphicsState(),
|
|
492
|
+
// The outline's own alpha is the stroke alpha of the glyphs.
|
|
493
|
+
...opt(alphaStateOp(ctx, alphaOf(color), outlineOps.length > 0 ? alphaOf(outline.color) : 1)), ...outlineOps, beginText(), setFillingColor(color), setFontAndSize(fontKeyOn(ctx.page, font), sizePx * scale), setTextMatrix(1, 0, 0, 1, xPx * scale, pageHeightPt - baselinePx * scale), ...(actualText === undefined ? [show] : withActualText(ctx, actualText, show)), endText(), popGraphicsState());
|
|
494
|
+
}
|
|
495
|
+
/** `show` inside a `/Span` whose `/ActualText` is `text`. */
|
|
496
|
+
function withActualText(ctx, text, show) {
|
|
497
|
+
// A property list (`<< /ActualText … >>`) is an inline dictionary operand
|
|
498
|
+
// of `BDC`; pdf-lib types operator arguments narrowly but serialises it.
|
|
499
|
+
const props = ctx.page.doc.context.obj({ ActualText: PDFHexString.fromText(text) });
|
|
500
|
+
return [
|
|
501
|
+
PDFOperator.of(PDFOperatorNames.BeginMarkedContentSequence, [PDFName.of('Span'), props]),
|
|
502
|
+
show,
|
|
503
|
+
PDFOperator.of(PDFOperatorNames.EndMarkedContent),
|
|
504
|
+
];
|
|
205
505
|
}
|
|
206
506
|
export function pushClipRect(ctx, xPx, yPx, wPx, hPx) {
|
|
207
507
|
const { scale, pageHeightPt } = ctx;
|
|
@@ -251,7 +551,7 @@ export function pushClipOutline(ctx, o) {
|
|
|
251
551
|
}
|
|
252
552
|
/** Fill a rounded outline (px). */
|
|
253
553
|
export function fillOutlinePx(ctx, o, color) {
|
|
254
|
-
ctx.page.pushOperators(pushGraphicsState(), setFillingColor(color), ...roundedOutlineOps(ctx, o), fill(), popGraphicsState());
|
|
554
|
+
ctx.page.pushOperators(pushGraphicsState(), ...opt(alphaStateOp(ctx, alphaOf(color))), setFillingColor(color), ...roundedOutlineOps(ctx, o), fill(), popGraphicsState());
|
|
255
555
|
}
|
|
256
556
|
/** The box of an inline chip (`:chip[…]`) whose segment starts at `xPx` on
|
|
257
557
|
* a line of baseline `baselinePx`: the fill, then the outline stroked
|
|
@@ -272,6 +572,6 @@ export function drawChipBoxPx(ctx, chip, xPx, baselinePx) {
|
|
|
272
572
|
}
|
|
273
573
|
/** Stroke a rounded outline (px) `thicknessPx` wide, centred on it. */
|
|
274
574
|
export function strokeOutlinePx(ctx, o, color, thicknessPx) {
|
|
275
|
-
ctx.page.pushOperators(pushGraphicsState(), setStrokingColor(color), setLineWidth(Math.max(0.01, thicknessPx * ctx.scale)), ...roundedOutlineOps(ctx, o), stroke(), popGraphicsState());
|
|
575
|
+
ctx.page.pushOperators(pushGraphicsState(), ...opt(alphaStateOp(ctx, 1, alphaOf(color))), setStrokingColor(color), setLineWidth(Math.max(0.01, thicknessPx * ctx.scale)), ...roundedOutlineOps(ctx, o), stroke(), popGraphicsState());
|
|
276
576
|
}
|
|
277
577
|
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/pdf-backend/primitives.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/pdf-backend/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The bytes are sniffed, so the host never has to say what it hands over:
|
|
11
11
|
* - `%PDF` → the first page is embedded as a form XObject and drawn
|
|
12
|
-
* verbatim (vector print masters
|
|
12
|
+
* verbatim (vector print masters: an SVG's
|
|
13
|
+
* `Resource.svg.pdfFileId`, named on every use of the SVG in
|
|
14
|
+
* the VDT, is asked for first, outside single-ink mode);
|
|
13
15
|
* - SVG → single-ink recolouring when `diagramStyle.singleInk` is on,
|
|
14
16
|
* then vector emission through {@link svgToVectorDrawing}, with
|
|
15
17
|
* `text` set in fonts loaded through the document's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderResourceBlock.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/renderResourceBlock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"renderResourceBlock.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/renderResourceBlock.ts"],"names":[],"mappings":"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"}
|