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.
Files changed (208) hide show
  1. package/README.md +3 -3
  2. package/dist/__tests__/accessibility.test.js +66 -0
  3. package/dist/__tests__/accessibility.test.js.map +1 -1
  4. package/dist/__tests__/alpha.test.d.ts +2 -0
  5. package/dist/__tests__/alpha.test.d.ts.map +1 -0
  6. package/dist/__tests__/alpha.test.js +164 -0
  7. package/dist/__tests__/alpha.test.js.map +1 -0
  8. package/dist/__tests__/bleedClip.test.d.ts +2 -0
  9. package/dist/__tests__/bleedClip.test.d.ts.map +1 -0
  10. package/dist/__tests__/bleedClip.test.js +83 -0
  11. package/dist/__tests__/bleedClip.test.js.map +1 -0
  12. package/dist/__tests__/boxBorderInside.test.d.ts +2 -0
  13. package/dist/__tests__/boxBorderInside.test.d.ts.map +1 -0
  14. package/dist/__tests__/boxBorderInside.test.js +63 -0
  15. package/dist/__tests__/boxBorderInside.test.js.map +1 -0
  16. package/dist/__tests__/calloutRuntTracking.test.d.ts +2 -0
  17. package/dist/__tests__/calloutRuntTracking.test.d.ts.map +1 -0
  18. package/dist/__tests__/calloutRuntTracking.test.js +72 -0
  19. package/dist/__tests__/calloutRuntTracking.test.js.map +1 -0
  20. package/dist/__tests__/calloutStripeRadius.test.d.ts +2 -0
  21. package/dist/__tests__/calloutStripeRadius.test.d.ts.map +1 -0
  22. package/dist/__tests__/calloutStripeRadius.test.js +90 -0
  23. package/dist/__tests__/calloutStripeRadius.test.js.map +1 -0
  24. package/dist/__tests__/chipVerticalPadding.test.d.ts +2 -0
  25. package/dist/__tests__/chipVerticalPadding.test.d.ts.map +1 -0
  26. package/dist/__tests__/chipVerticalPadding.test.js +71 -0
  27. package/dist/__tests__/chipVerticalPadding.test.js.map +1 -0
  28. package/dist/__tests__/chips.test.js +20 -3
  29. package/dist/__tests__/chips.test.js.map +1 -1
  30. package/dist/__tests__/documentLanguage.test.d.ts +2 -0
  31. package/dist/__tests__/documentLanguage.test.d.ts.map +1 -0
  32. package/dist/__tests__/documentLanguage.test.js +44 -0
  33. package/dist/__tests__/documentLanguage.test.js.map +1 -0
  34. package/dist/__tests__/fallbackSpaces.test.d.ts +2 -0
  35. package/dist/__tests__/fallbackSpaces.test.d.ts.map +1 -0
  36. package/dist/__tests__/fallbackSpaces.test.js +156 -0
  37. package/dist/__tests__/fallbackSpaces.test.js.map +1 -0
  38. package/dist/__tests__/floatReadingOrder.test.d.ts +2 -0
  39. package/dist/__tests__/floatReadingOrder.test.d.ts.map +1 -0
  40. package/dist/__tests__/floatReadingOrder.test.js +208 -0
  41. package/dist/__tests__/floatReadingOrder.test.js.map +1 -0
  42. package/dist/__tests__/fontEmbedding.test.d.ts +2 -0
  43. package/dist/__tests__/fontEmbedding.test.d.ts.map +1 -0
  44. package/dist/__tests__/fontEmbedding.test.js +118 -0
  45. package/dist/__tests__/fontEmbedding.test.js.map +1 -0
  46. package/dist/__tests__/fontFaces.test.d.ts +2 -0
  47. package/dist/__tests__/fontFaces.test.d.ts.map +1 -0
  48. package/dist/__tests__/fontFaces.test.js +193 -0
  49. package/dist/__tests__/fontFaces.test.js.map +1 -0
  50. package/dist/__tests__/fontStack.test.d.ts +2 -0
  51. package/dist/__tests__/fontStack.test.d.ts.map +1 -0
  52. package/dist/__tests__/fontStack.test.js +48 -0
  53. package/dist/__tests__/fontStack.test.js.map +1 -0
  54. package/dist/__tests__/headerFooter.test.js +83 -1
  55. package/dist/__tests__/headerFooter.test.js.map +1 -1
  56. package/dist/__tests__/headingAlign.test.d.ts +2 -0
  57. package/dist/__tests__/headingAlign.test.d.ts.map +1 -0
  58. package/dist/__tests__/headingAlign.test.js +66 -0
  59. package/dist/__tests__/headingAlign.test.js.map +1 -0
  60. package/dist/__tests__/hiddenHeadings.test.d.ts +2 -0
  61. package/dist/__tests__/hiddenHeadings.test.d.ts.map +1 -0
  62. package/dist/__tests__/hiddenHeadings.test.js +96 -0
  63. package/dist/__tests__/hiddenHeadings.test.js.map +1 -0
  64. package/dist/__tests__/lineTracking.test.d.ts +2 -0
  65. package/dist/__tests__/lineTracking.test.d.ts.map +1 -0
  66. package/dist/__tests__/lineTracking.test.js +80 -0
  67. package/dist/__tests__/lineTracking.test.js.map +1 -0
  68. package/dist/__tests__/measuredLines.test.d.ts +2 -0
  69. package/dist/__tests__/measuredLines.test.d.ts.map +1 -0
  70. package/dist/__tests__/measuredLines.test.js +255 -0
  71. package/dist/__tests__/measuredLines.test.js.map +1 -0
  72. package/dist/__tests__/metadata.test.d.ts +2 -0
  73. package/dist/__tests__/metadata.test.d.ts.map +1 -0
  74. package/dist/__tests__/metadata.test.js +51 -0
  75. package/dist/__tests__/metadata.test.js.map +1 -0
  76. package/dist/__tests__/outlineTitles.test.d.ts +2 -0
  77. package/dist/__tests__/outlineTitles.test.d.ts.map +1 -0
  78. package/dist/__tests__/outlineTitles.test.js +59 -0
  79. package/dist/__tests__/outlineTitles.test.js.map +1 -0
  80. package/dist/__tests__/pdfGenerationConfig.test.d.ts +2 -0
  81. package/dist/__tests__/pdfGenerationConfig.test.d.ts.map +1 -0
  82. package/dist/__tests__/pdfGenerationConfig.test.js +76 -0
  83. package/dist/__tests__/pdfGenerationConfig.test.js.map +1 -0
  84. package/dist/__tests__/pdfWorker.test.d.ts +2 -0
  85. package/dist/__tests__/pdfWorker.test.d.ts.map +1 -0
  86. package/dist/__tests__/pdfWorker.test.js +123 -0
  87. package/dist/__tests__/pdfWorker.test.js.map +1 -0
  88. package/dist/__tests__/printMarks.test.d.ts +2 -0
  89. package/dist/__tests__/printMarks.test.d.ts.map +1 -0
  90. package/dist/__tests__/printMarks.test.js +170 -0
  91. package/dist/__tests__/printMarks.test.js.map +1 -0
  92. package/dist/__tests__/printMaster.test.d.ts +2 -0
  93. package/dist/__tests__/printMaster.test.d.ts.map +1 -0
  94. package/dist/__tests__/printMaster.test.js +161 -0
  95. package/dist/__tests__/printMaster.test.js.map +1 -0
  96. package/dist/__tests__/renderWarnings.test.d.ts +2 -0
  97. package/dist/__tests__/renderWarnings.test.d.ts.map +1 -0
  98. package/dist/__tests__/renderWarnings.test.js +89 -0
  99. package/dist/__tests__/renderWarnings.test.js.map +1 -0
  100. package/dist/__tests__/repeatedHyphen.test.d.ts +2 -0
  101. package/dist/__tests__/repeatedHyphen.test.d.ts.map +1 -0
  102. package/dist/__tests__/repeatedHyphen.test.js +125 -0
  103. package/dist/__tests__/repeatedHyphen.test.js.map +1 -0
  104. package/dist/__tests__/scriptStacking.test.d.ts +2 -0
  105. package/dist/__tests__/scriptStacking.test.d.ts.map +1 -0
  106. package/dist/__tests__/scriptStacking.test.js +66 -0
  107. package/dist/__tests__/scriptStacking.test.js.map +1 -0
  108. package/dist/__tests__/sectionColumnRule.test.d.ts +2 -0
  109. package/dist/__tests__/sectionColumnRule.test.d.ts.map +1 -0
  110. package/dist/__tests__/sectionColumnRule.test.js +144 -0
  111. package/dist/__tests__/sectionColumnRule.test.js.map +1 -0
  112. package/dist/__tests__/svgFormReuse.test.d.ts +2 -0
  113. package/dist/__tests__/svgFormReuse.test.d.ts.map +1 -0
  114. package/dist/__tests__/svgFormReuse.test.js +102 -0
  115. package/dist/__tests__/svgFormReuse.test.js.map +1 -0
  116. package/dist/__tests__/svgVector.test.js +85 -11
  117. package/dist/__tests__/svgVector.test.js.map +1 -1
  118. package/dist/__tests__/tableFillSeams.test.d.ts +2 -0
  119. package/dist/__tests__/tableFillSeams.test.d.ts.map +1 -0
  120. package/dist/__tests__/tableFillSeams.test.js +72 -0
  121. package/dist/__tests__/tableFillSeams.test.js.map +1 -0
  122. package/dist/__tests__/tocLeaderKerning.test.d.ts +2 -0
  123. package/dist/__tests__/tocLeaderKerning.test.d.ts.map +1 -0
  124. package/dist/__tests__/tocLeaderKerning.test.js +84 -0
  125. package/dist/__tests__/tocLeaderKerning.test.js.map +1 -0
  126. package/dist/__tests__/tocNumberBaseline.test.d.ts +2 -0
  127. package/dist/__tests__/tocNumberBaseline.test.d.ts.map +1 -0
  128. package/dist/__tests__/tocNumberBaseline.test.js +72 -0
  129. package/dist/__tests__/tocNumberBaseline.test.js.map +1 -0
  130. package/dist/__tests__/tocTagging.test.d.ts +2 -0
  131. package/dist/__tests__/tocTagging.test.d.ts.map +1 -0
  132. package/dist/__tests__/tocTagging.test.js +120 -0
  133. package/dist/__tests__/tocTagging.test.js.map +1 -0
  134. package/dist/__tests__/trackedLineAlign.test.d.ts +2 -0
  135. package/dist/__tests__/trackedLineAlign.test.d.ts.map +1 -0
  136. package/dist/__tests__/trackedLineAlign.test.js +73 -0
  137. package/dist/__tests__/trackedLineAlign.test.js.map +1 -0
  138. package/dist/__tests__/uriLinks.test.d.ts +2 -0
  139. package/dist/__tests__/uriLinks.test.d.ts.map +1 -0
  140. package/dist/__tests__/uriLinks.test.js +103 -0
  141. package/dist/__tests__/uriLinks.test.js.map +1 -0
  142. package/dist/colors.d.ts +18 -3
  143. package/dist/colors.d.ts.map +1 -1
  144. package/dist/colors.js +77 -25
  145. package/dist/colors.js.map +1 -1
  146. package/dist/fontCache.d.ts +67 -4
  147. package/dist/fontCache.d.ts.map +1 -1
  148. package/dist/fontCache.js +200 -23
  149. package/dist/fontCache.js.map +1 -1
  150. package/dist/index.d.ts +1 -1
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/pdf-backend/blockRender.d.ts.map +1 -1
  153. package/dist/pdf-backend/blockRender.js +127 -28
  154. package/dist/pdf-backend/blockRender.js.map +1 -1
  155. package/dist/pdf-backend/fallbackSpaces.d.ts +37 -0
  156. package/dist/pdf-backend/fallbackSpaces.d.ts.map +1 -0
  157. package/dist/pdf-backend/fallbackSpaces.js +119 -0
  158. package/dist/pdf-backend/fallbackSpaces.js.map +1 -0
  159. package/dist/pdf-backend/fontHelpers.d.ts +10 -1
  160. package/dist/pdf-backend/fontHelpers.d.ts.map +1 -1
  161. package/dist/pdf-backend/fontHelpers.js +111 -65
  162. package/dist/pdf-backend/fontHelpers.js.map +1 -1
  163. package/dist/pdf-backend/headerFooter.d.ts +4 -2
  164. package/dist/pdf-backend/headerFooter.d.ts.map +1 -1
  165. package/dist/pdf-backend/headerFooter.js +105 -48
  166. package/dist/pdf-backend/headerFooter.js.map +1 -1
  167. package/dist/pdf-backend/index.d.ts +55 -6
  168. package/dist/pdf-backend/index.d.ts.map +1 -1
  169. package/dist/pdf-backend/index.js +135 -35
  170. package/dist/pdf-backend/index.js.map +1 -1
  171. package/dist/pdf-backend/links.d.ts +82 -1
  172. package/dist/pdf-backend/links.d.ts.map +1 -1
  173. package/dist/pdf-backend/links.js +141 -3
  174. package/dist/pdf-backend/links.js.map +1 -1
  175. package/dist/pdf-backend/outlines.d.ts.map +1 -1
  176. package/dist/pdf-backend/outlines.js +7 -0
  177. package/dist/pdf-backend/outlines.js.map +1 -1
  178. package/dist/pdf-backend/pageDecorations.d.ts.map +1 -1
  179. package/dist/pdf-backend/pageDecorations.js +42 -26
  180. package/dist/pdf-backend/pageDecorations.js.map +1 -1
  181. package/dist/pdf-backend/primitives.d.ts +61 -1
  182. package/dist/pdf-backend/primitives.d.ts.map +1 -1
  183. package/dist/pdf-backend/primitives.js +318 -18
  184. package/dist/pdf-backend/primitives.js.map +1 -1
  185. package/dist/pdf-backend/renderResourceBlock.d.ts +3 -1
  186. package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -1
  187. package/dist/pdf-backend/renderResourceBlock.js +97 -19
  188. package/dist/pdf-backend/renderResourceBlock.js.map +1 -1
  189. package/dist/pdf-backend/structureFlow.d.ts +70 -3
  190. package/dist/pdf-backend/structureFlow.d.ts.map +1 -1
  191. package/dist/pdf-backend/structureFlow.js +209 -27
  192. package/dist/pdf-backend/structureFlow.js.map +1 -1
  193. package/dist/pdf-backend/svgVector.d.ts +7 -2
  194. package/dist/pdf-backend/svgVector.d.ts.map +1 -1
  195. package/dist/pdf-backend/svgVector.js +157 -72
  196. package/dist/pdf-backend/svgVector.js.map +1 -1
  197. package/dist/pdf-backend/tagging.d.ts +1 -1
  198. package/dist/pdf-backend/tagging.d.ts.map +1 -1
  199. package/dist/pdf-backend/tagging.js.map +1 -1
  200. package/dist/worker/client.d.ts +1 -1
  201. package/dist/worker/client.d.ts.map +1 -1
  202. package/dist/worker/client.js +8 -0
  203. package/dist/worker/client.js.map +1 -1
  204. package/dist/worker/pdf.worker.js +1 -0
  205. package/dist/worker/pdf.worker.js.map +1 -1
  206. package/dist/worker/protocol.d.ts +8 -1
  207. package/dist/worker/protocol.d.ts.map +1 -1
  208. 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
- ...(fill ? { color: colorFromHex(fill, ctx.colorSpace) } : {}),
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
- // `encodeText` also registers the glyphs with the font's subset (the ids
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 shapedOperator(font, text, encoded) {
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
- const run = face.layout(text, embedder.fontFeatures);
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
- pendingHex += hex.slice(i * 4, i * 4 + 4);
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
- if (parts.length === 1)
177
- return undefined;
178
- const context = font.doc.context;
179
- const array = PDFArray.withContext(context);
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
- export function drawTextPx(ctx, text, xPx, baselinePx, font, sizePx, color) {
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(), beginText(), setFillingColor(color), setFontAndSize(fontKeyOn(ctx.page, font), sizePx * scale), setTextMatrix(1, 0, 0, 1, xPx * scale, pageHeightPt - baselinePx * scale), showTextShaped(font, text), endText(), popGraphicsState());
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, `Resource.svg.pdfFileId`);
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":"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"}
1
+ {"version":3,"file":"renderResourceBlock.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/renderResourceBlock.ts"],"names":[],"mappings":"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"}