postext-pdf 1.8.6 → 1.9.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 +1 -1
- package/dist/__tests__/accessibility.test.js +44 -0
- package/dist/__tests__/accessibility.test.js.map +1 -1
- package/dist/__tests__/chinesePageLabels.test.d.ts +2 -0
- package/dist/__tests__/chinesePageLabels.test.d.ts.map +1 -0
- package/dist/__tests__/chinesePageLabels.test.js +58 -0
- package/dist/__tests__/chinesePageLabels.test.js.map +1 -0
- package/dist/__tests__/cjkAnnotations.test.d.ts +2 -0
- package/dist/__tests__/cjkAnnotations.test.d.ts.map +1 -0
- package/dist/__tests__/cjkAnnotations.test.js +83 -0
- package/dist/__tests__/cjkAnnotations.test.js.map +1 -0
- package/dist/__tests__/cjkDashRule.test.d.ts +2 -0
- package/dist/__tests__/cjkDashRule.test.d.ts.map +1 -0
- package/dist/__tests__/cjkDashRule.test.js +101 -0
- package/dist/__tests__/cjkDashRule.test.js.map +1 -0
- package/dist/__tests__/cjkFontFiles.test.d.ts +2 -0
- package/dist/__tests__/cjkFontFiles.test.d.ts.map +1 -0
- package/dist/__tests__/cjkFontFiles.test.js +302 -0
- package/dist/__tests__/cjkFontFiles.test.js.map +1 -0
- package/dist/__tests__/cjkGrid.test.d.ts +2 -0
- package/dist/__tests__/cjkGrid.test.d.ts.map +1 -0
- package/dist/__tests__/cjkGrid.test.js +57 -0
- package/dist/__tests__/cjkGrid.test.js.map +1 -0
- package/dist/__tests__/cjkPunctuation.test.d.ts +2 -0
- package/dist/__tests__/cjkPunctuation.test.d.ts.map +1 -0
- package/dist/__tests__/cjkPunctuation.test.js +143 -0
- package/dist/__tests__/cjkPunctuation.test.js.map +1 -0
- package/dist/__tests__/cjkTracking.test.d.ts +2 -0
- package/dist/__tests__/cjkTracking.test.d.ts.map +1 -0
- package/dist/__tests__/cjkTracking.test.js +100 -0
- package/dist/__tests__/cjkTracking.test.js.map +1 -0
- package/dist/__tests__/documentLanguage.test.js +13 -3
- package/dist/__tests__/documentLanguage.test.js.map +1 -1
- package/dist/__tests__/fallbackSpaces.test.js +49 -0
- package/dist/__tests__/fallbackSpaces.test.js.map +1 -1
- package/dist/__tests__/outlineTitles.test.js +87 -0
- package/dist/__tests__/outlineTitles.test.js.map +1 -1
- package/dist/__tests__/pdfWorker.test.js +17 -0
- package/dist/__tests__/pdfWorker.test.js.map +1 -1
- package/dist/__tests__/renderOptionsDocs.test.d.ts +2 -0
- package/dist/__tests__/renderOptionsDocs.test.d.ts.map +1 -0
- package/dist/__tests__/renderOptionsDocs.test.js +32 -0
- package/dist/__tests__/renderOptionsDocs.test.js.map +1 -0
- package/dist/__tests__/rightBinding.test.d.ts +2 -0
- package/dist/__tests__/rightBinding.test.d.ts.map +1 -0
- package/dist/__tests__/rightBinding.test.js +112 -0
- package/dist/__tests__/rightBinding.test.js.map +1 -0
- package/dist/__tests__/verticalDesignImage.test.d.ts +2 -0
- package/dist/__tests__/verticalDesignImage.test.d.ts.map +1 -0
- package/dist/__tests__/verticalDesignImage.test.js +152 -0
- package/dist/__tests__/verticalDesignImage.test.js.map +1 -0
- package/dist/__tests__/verticalText.test.d.ts +2 -0
- package/dist/__tests__/verticalText.test.d.ts.map +1 -0
- package/dist/__tests__/verticalText.test.js +380 -0
- package/dist/__tests__/verticalText.test.js.map +1 -0
- package/dist/faceFiles.d.ts +70 -0
- package/dist/faceFiles.d.ts.map +1 -0
- package/dist/faceFiles.js +154 -0
- package/dist/faceFiles.js.map +1 -0
- package/dist/fontCache.d.ts +101 -7
- package/dist/fontCache.d.ts.map +1 -1
- package/dist/fontCache.js +178 -26
- package/dist/fontCache.js.map +1 -1
- package/dist/fontFamilies.d.ts +12 -0
- package/dist/fontFamilies.d.ts.map +1 -0
- package/dist/fontFamilies.js +12 -0
- package/dist/fontFamilies.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pdf-backend/annotations.d.ts +29 -0
- package/dist/pdf-backend/annotations.d.ts.map +1 -0
- package/dist/pdf-backend/annotations.js +133 -0
- package/dist/pdf-backend/annotations.js.map +1 -0
- package/dist/pdf-backend/blockRender.d.ts.map +1 -1
- package/dist/pdf-backend/blockRender.js +160 -30
- package/dist/pdf-backend/blockRender.js.map +1 -1
- package/dist/pdf-backend/fallbackSpaces.d.ts +21 -2
- package/dist/pdf-backend/fallbackSpaces.d.ts.map +1 -1
- package/dist/pdf-backend/fallbackSpaces.js +43 -6
- package/dist/pdf-backend/fallbackSpaces.js.map +1 -1
- package/dist/pdf-backend/fontHelpers.d.ts +12 -0
- package/dist/pdf-backend/fontHelpers.d.ts.map +1 -1
- package/dist/pdf-backend/fontHelpers.js +49 -11
- package/dist/pdf-backend/fontHelpers.js.map +1 -1
- package/dist/pdf-backend/headerFooter.d.ts +8 -3
- package/dist/pdf-backend/headerFooter.d.ts.map +1 -1
- package/dist/pdf-backend/headerFooter.js +74 -16
- package/dist/pdf-backend/headerFooter.js.map +1 -1
- package/dist/pdf-backend/index.d.ts +74 -8
- package/dist/pdf-backend/index.d.ts.map +1 -1
- package/dist/pdf-backend/index.js +121 -25
- package/dist/pdf-backend/index.js.map +1 -1
- package/dist/pdf-backend/inkScale.d.ts +12 -0
- package/dist/pdf-backend/inkScale.d.ts.map +1 -0
- package/dist/pdf-backend/inkScale.js +16 -0
- package/dist/pdf-backend/inkScale.js.map +1 -0
- package/dist/pdf-backend/outlines.d.ts +12 -1
- package/dist/pdf-backend/outlines.d.ts.map +1 -1
- package/dist/pdf-backend/outlines.js +46 -16
- package/dist/pdf-backend/outlines.js.map +1 -1
- package/dist/pdf-backend/pageDecorations.d.ts +5 -1
- package/dist/pdf-backend/pageDecorations.d.ts.map +1 -1
- package/dist/pdf-backend/pageDecorations.js +22 -1
- package/dist/pdf-backend/pageDecorations.js.map +1 -1
- package/dist/pdf-backend/pageLabels.d.ts +3 -1
- package/dist/pdf-backend/pageLabels.d.ts.map +1 -1
- package/dist/pdf-backend/pageLabels.js +12 -6
- package/dist/pdf-backend/pageLabels.js.map +1 -1
- package/dist/pdf-backend/primitives.d.ts +153 -6
- package/dist/pdf-backend/primitives.d.ts.map +1 -1
- package/dist/pdf-backend/primitives.js +269 -28
- package/dist/pdf-backend/primitives.js.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.d.ts +4 -0
- package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/pdf-backend/renderResourceBlock.js +105 -26
- package/dist/pdf-backend/renderResourceBlock.js.map +1 -1
- package/dist/pdf-backend/structureFlow.d.ts +5 -0
- package/dist/pdf-backend/structureFlow.d.ts.map +1 -1
- package/dist/pdf-backend/structureFlow.js +8 -0
- package/dist/pdf-backend/structureFlow.js.map +1 -1
- package/dist/pdf-backend/svgVector.d.ts.map +1 -1
- package/dist/pdf-backend/svgVector.js +13 -2
- package/dist/pdf-backend/svgVector.js.map +1 -1
- package/dist/pdf-backend/tagging.d.ts +8 -1
- package/dist/pdf-backend/tagging.d.ts.map +1 -1
- package/dist/pdf-backend/tagging.js +7 -1
- package/dist/pdf-backend/tagging.js.map +1 -1
- package/dist/pdf-backend/verticalText.d.ts +43 -0
- package/dist/pdf-backend/verticalText.d.ts.map +1 -0
- package/dist/pdf-backend/verticalText.js +284 -0
- package/dist/pdf-backend/verticalText.js.map +1 -0
- package/dist/verticalFonts.d.ts +75 -0
- package/dist/verticalFonts.d.ts.map +1 -0
- package/dist/verticalFonts.js +136 -0
- package/dist/verticalFonts.js.map +1 -0
- package/dist/worker/client.d.ts +1 -1
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +7 -5
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/pdf.worker.js +8 -4
- package/dist/worker/pdf.worker.js.map +1 -1
- package/dist/worker/protocol.d.ts +10 -5
- package/dist/worker/protocol.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fontHelpers.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/fontHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAA0B,MAAM,SAAS,CAAC;AAU7E;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"fontHelpers.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/fontHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAA0B,MAAM,SAAS,CAAC;AAU7E,iFAAiF;AACjF,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAahD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CAE7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,GAAE,QAAoB,GAAG,QAAQ,CAWtF;AAqGD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,QAAQ,GACd,MAAM,CAKR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,QAAQ,GACd,MAAM,CAIR"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/** Record that `text` is set in `fontString`; an empty text still records
|
|
2
|
+
* the face. */
|
|
3
|
+
function add(out, fontString, text = '') {
|
|
4
|
+
let cps = out.get(fontString);
|
|
5
|
+
if (!cps) {
|
|
6
|
+
cps = new Set();
|
|
7
|
+
out.set(fontString, cps);
|
|
8
|
+
}
|
|
9
|
+
for (const ch of text)
|
|
10
|
+
cps.add(ch.codePointAt(0));
|
|
11
|
+
}
|
|
1
12
|
/**
|
|
2
13
|
* Collect the fontString of every face the pages paint, walking them the
|
|
3
14
|
* way the renderer does: a block's base face when it sets any line, the
|
|
@@ -9,7 +20,19 @@
|
|
|
9
20
|
* lines of a block drawn through its design overlay, paint nothing.
|
|
10
21
|
*/
|
|
11
22
|
export function collectFontStrings(doc) {
|
|
12
|
-
|
|
23
|
+
return [...collectFontText(doc).keys()];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* {@link collectFontStrings} with the characters set in each face, for a
|
|
27
|
+
* font provider that serves a family as several files (issue #196). A
|
|
28
|
+
* block's base face is credited with the whole text of its lines (it paints
|
|
29
|
+
* the spaces and every plain line), so it may list characters a styled run
|
|
30
|
+
* sets in another face: the provider may hand over a file that is never
|
|
31
|
+
* drawn from, which is left out of the PDF. `into` gathers several
|
|
32
|
+
* documents (the chapters of a book).
|
|
33
|
+
*/
|
|
34
|
+
export function collectFontText(doc, into = new Map()) {
|
|
35
|
+
const out = into;
|
|
13
36
|
for (const page of doc.pages) {
|
|
14
37
|
for (const col of page.columns) {
|
|
15
38
|
for (const block of col.blocks)
|
|
@@ -21,7 +44,7 @@ export function collectFontStrings(doc) {
|
|
|
21
44
|
for (const slot of [page.header, page.footer, page.openerBand])
|
|
22
45
|
addSlotFonts(slot, out);
|
|
23
46
|
}
|
|
24
|
-
return
|
|
47
|
+
return out;
|
|
25
48
|
}
|
|
26
49
|
function addBlockFonts(block, out) {
|
|
27
50
|
if (block.hidden)
|
|
@@ -66,9 +89,9 @@ function addBlockFonts(block, out) {
|
|
|
66
89
|
return;
|
|
67
90
|
}
|
|
68
91
|
if (block.type === 'listItem' && block.bulletText && block.bulletFontString && block.bulletOffsetX !== undefined && block.lines[0]) {
|
|
69
|
-
|
|
92
|
+
add(out, block.bulletFontString, block.bulletText);
|
|
70
93
|
if (block.separatorText && block.separatorX !== undefined)
|
|
71
|
-
|
|
94
|
+
add(out, block.separatorFontString ?? block.bulletFontString, block.separatorText);
|
|
72
95
|
}
|
|
73
96
|
addLinesFonts(block.lines, {
|
|
74
97
|
normal: block.fontString,
|
|
@@ -84,20 +107,34 @@ function addLinesFonts(lines, faces, out) {
|
|
|
84
107
|
const segments = line.segments ?? [];
|
|
85
108
|
if (line.text.length === 0 && segments.length === 0)
|
|
86
109
|
continue;
|
|
87
|
-
|
|
110
|
+
add(out, faces.normal, line.text);
|
|
88
111
|
for (const seg of segments) {
|
|
89
|
-
if (seg.kind === 'space' || seg.kind === 'math' || seg.kind === 'swatch')
|
|
112
|
+
if (seg.kind === 'space' || seg.kind === 'math' || seg.kind === 'swatch') {
|
|
113
|
+
if (seg.kind === 'space')
|
|
114
|
+
add(out, faces.normal, seg.text);
|
|
90
115
|
continue;
|
|
116
|
+
}
|
|
91
117
|
// A chip may set its own family; its runs carry their faces.
|
|
92
118
|
if (seg.chip) {
|
|
93
119
|
for (const run of seg.chip.runs)
|
|
94
120
|
if (run.text)
|
|
95
|
-
|
|
121
|
+
add(out, run.fontString, run.text);
|
|
96
122
|
continue;
|
|
97
123
|
}
|
|
124
|
+
// A warichu note paints its rows; a ruby base its reading too.
|
|
125
|
+
if (seg.warichu) {
|
|
126
|
+
for (const run of seg.warichu.runs)
|
|
127
|
+
if (run.text)
|
|
128
|
+
add(out, run.fontString, run.text);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (seg.ruby)
|
|
132
|
+
for (const run of seg.ruby.runs)
|
|
133
|
+
if (run.text)
|
|
134
|
+
add(out, run.fontString, run.text);
|
|
98
135
|
if (!seg.text)
|
|
99
136
|
continue;
|
|
100
|
-
|
|
137
|
+
add(out, seg.fontString ?? pickFace(!!seg.bold, !!seg.italic, faces), seg.text);
|
|
101
138
|
}
|
|
102
139
|
}
|
|
103
140
|
}
|
|
@@ -105,12 +142,13 @@ function addSlotFonts(slot, out) {
|
|
|
105
142
|
for (const b of slot?.blocks ?? []) {
|
|
106
143
|
if (b.kind !== 'text' || !b.lines.some((l) => l.text.length > 0))
|
|
107
144
|
continue;
|
|
108
|
-
|
|
109
|
-
// Inline-mark runs: bold, italic, a script at the reduced size.
|
|
145
|
+
add(out, b.fontString);
|
|
110
146
|
for (const line of b.lines) {
|
|
147
|
+
add(out, b.fontString, line.text);
|
|
148
|
+
// Inline-mark runs: bold, italic, a script at the reduced size.
|
|
111
149
|
for (const run of line.runs ?? [])
|
|
112
150
|
if (run.text)
|
|
113
|
-
|
|
151
|
+
add(out, run.fontString, run.text);
|
|
114
152
|
}
|
|
115
153
|
}
|
|
116
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fontHelpers.js","sourceRoot":"","sources":["../../src/pdf-backend/fontHelpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fontHelpers.js","sourceRoot":"","sources":["../../src/pdf-backend/fontHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { VDTDesignSlot } from 'postext';
|
|
2
2
|
import { type ResourceImageMap } from './renderResourceBlock';
|
|
3
|
-
import { type ArtifactSpec, type StructElem } from './tagging';
|
|
3
|
+
import { type ArtifactSpec, type StructAttrs, type StructElem } from './tagging';
|
|
4
4
|
/** How an accessible render tags a design slot: its text goes to the
|
|
5
5
|
* element `text()` returns (created on first use), or counts as an
|
|
6
6
|
* artifact when `text` is absent (running headers / footers) or the text
|
|
7
7
|
* block is pagination furniture (`artifact`: a split callout's repeated
|
|
8
|
-
* title and continuation marker)
|
|
9
|
-
*
|
|
8
|
+
* title and continuation marker). A picture with alternative text
|
|
9
|
+
* (`VDTDesignImageBlock.altText`, #213) is a `Figure` that `figure`
|
|
10
|
+
* creates — read after the slot's text element, `after`, when the slot
|
|
11
|
+
* has text; without `figure` (running heads) it stays an artifact. Rules,
|
|
12
|
+
* boxes and pictures without alternative text are artifacts of class
|
|
13
|
+
* `artifact`. */
|
|
10
14
|
export interface SlotMark {
|
|
11
15
|
text?: () => StructElem;
|
|
12
16
|
artifact: ArtifactSpec;
|
|
17
|
+
figure?: (alt: string, attributes: StructAttrs['attributes'], after: StructElem | undefined) => StructElem;
|
|
13
18
|
}
|
|
14
19
|
import { FontCache } from '../fontCache';
|
|
15
20
|
import { type PageCtx } from './primitives';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerFooter.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/headerFooter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,SAAS,CAAC;AAEjB,OAAO,
|
|
1
|
+
{"version":3,"file":"headerFooter.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/headerFooter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1G;;;;;;;;;kBASkB;AAClB,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,UAAU,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,CAAC;CAC5G;AAQD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,KAAK,OAAO,EAab,MAAM,cAAc,CAAC;AAwOtB,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAkCN"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { drawEmbeddedResource } from './renderResourceBlock';
|
|
1
|
+
import { segmentOrientation } from 'postext';
|
|
2
|
+
import { drawEmbeddedResource, figureLayout } from './renderResourceBlock';
|
|
3
3
|
import { tagArtifact, tagContent } from './tagging';
|
|
4
4
|
function tagSlotText(ctx, mark, block) {
|
|
5
5
|
if (!mark)
|
|
@@ -10,7 +10,7 @@ function tagSlotText(ctx, mark, block) {
|
|
|
10
10
|
tagArtifact(ctx, mark.artifact);
|
|
11
11
|
}
|
|
12
12
|
import { parseFontString } from '../fontString';
|
|
13
|
-
import { alphaOf, colorFromHex, drawTextPx, fillRectPx, pushClipOutline, pushClipRect, popClip, } from './primitives';
|
|
13
|
+
import { alphaOf, colorFromHex, drawTextPx, setTrackingPx, pushFrame, popFrame, quarterTurnMatrix, fillRectPx, pushClipOutline, pushClipRect, popClip, } from './primitives';
|
|
14
14
|
/** pdf-lib drawing options for a translucent fill / stroke (none when opaque). */
|
|
15
15
|
const opacity = (alpha) => (alpha < 1 ? { opacity: alpha } : {});
|
|
16
16
|
const borderOpacity = (alpha) => (alpha < 1 ? { borderOpacity: alpha } : {});
|
|
@@ -121,27 +121,46 @@ function renderTextBlock(ctx, block, fontCache, mark) {
|
|
|
121
121
|
// Negative tracking tightens the letters (EF-82).
|
|
122
122
|
const tracked = block.letterSpacingPx !== undefined && block.letterSpacingPx !== 0;
|
|
123
123
|
if (tracked)
|
|
124
|
-
ctx
|
|
124
|
+
setTrackingPx(ctx, block.letterSpacingPx);
|
|
125
125
|
const outline = block.stroke && block.stroke.widthPx > 0
|
|
126
126
|
? { color: colorFromHex(block.stroke.color, ctx.colorSpace), widthPx: block.stroke.widthPx, hollow: block.stroke.hollow }
|
|
127
127
|
: undefined;
|
|
128
128
|
tagSlotText(ctx, mark, block);
|
|
129
|
+
// A vertical block (`VDTDesignTextBlock.vertical`) paints its lines in
|
|
130
|
+
// its own frame, turned a quarter turn clockwise about the box's top
|
|
131
|
+
// right corner, set down the column.
|
|
132
|
+
const vertical = block.vertical;
|
|
133
|
+
const outerVertical = ctx.vertical;
|
|
134
|
+
if (vertical) {
|
|
135
|
+
pushFrame(ctx, quarterTurnMatrix({ direction: 'cw', originX: block.bbox.x + block.bbox.width, originY: block.bbox.y }, ctx.scale, ctx.pageHeightPt));
|
|
136
|
+
ctx.vertical = { region: vertical.region, uprightDigits: vertical.uprightDigits, axes: vertical.centralBaselines };
|
|
137
|
+
tagSlotText(ctx, mark, block);
|
|
138
|
+
}
|
|
139
|
+
const originX = vertical ? 0 : block.bbox.x;
|
|
129
140
|
for (const line of block.lines) {
|
|
130
141
|
if (!line.runs) {
|
|
131
|
-
drawTextPx(ctx, line.text,
|
|
142
|
+
drawTextPx(ctx, line.text, originX + line.xOffset, line.baselineY, font, size, color, outline);
|
|
132
143
|
continue;
|
|
133
144
|
}
|
|
134
145
|
// Inline marks: each run in its own font, one after another.
|
|
135
|
-
let x =
|
|
146
|
+
let x = originX + line.xOffset;
|
|
136
147
|
for (const run of line.runs) {
|
|
137
148
|
const runFont = fontCache.get(run.fontString) ?? font;
|
|
138
149
|
const runSize = parseFontString(run.fontString)?.sizePx ?? size;
|
|
139
|
-
|
|
150
|
+
// A vertical line: the orientation its author gave the run.
|
|
151
|
+
drawTextPx(ctx, run.text, x, line.baselineY + (run.baselineShift ?? 0), runFont, runSize, color, outline, undefined, segmentOrientation(run));
|
|
140
152
|
x += run.width;
|
|
141
153
|
}
|
|
142
154
|
}
|
|
155
|
+
if (vertical) {
|
|
156
|
+
popFrame(ctx);
|
|
157
|
+
if (outerVertical)
|
|
158
|
+
ctx.vertical = outerVertical;
|
|
159
|
+
else
|
|
160
|
+
delete ctx.vertical;
|
|
161
|
+
}
|
|
143
162
|
if (tracked)
|
|
144
|
-
ctx
|
|
163
|
+
setTrackingPx(ctx, 0);
|
|
145
164
|
if (clip)
|
|
146
165
|
popClip(ctx);
|
|
147
166
|
}
|
|
@@ -158,19 +177,46 @@ function renderBoxBlock(ctx, block) {
|
|
|
158
177
|
drawRoundedBox(ctx, block.bbox.x, block.bbox.y, block.bbox.width, block.bbox.height, block.box);
|
|
159
178
|
}
|
|
160
179
|
/** Image block (e.g. a callout icon): drawn from the preloaded resource
|
|
161
|
-
* image map, with a neutral placeholder when the image is absent.
|
|
162
|
-
|
|
180
|
+
* image map, with a neutral placeholder when the image is absent. `tag`
|
|
181
|
+
* routes the picture in an accessible render (a `Figure`, an artifact):
|
|
182
|
+
* it runs where the picture is painted, inside the turned frame of a
|
|
183
|
+
* vertical page, since entering a frame ends the open marked-content
|
|
184
|
+
* sequence. */
|
|
185
|
+
function renderImageBlock(ctx, block, images, tag) {
|
|
163
186
|
const { x, y, width, height } = block.bbox;
|
|
187
|
+
const turned = !!ctx.vertical && width > 0 && height > 0;
|
|
188
|
+
if (!turned)
|
|
189
|
+
tag?.();
|
|
164
190
|
if (width <= 0 || height <= 0)
|
|
165
191
|
return;
|
|
166
192
|
const embedded = images?.get(block.fileId);
|
|
167
|
-
|
|
168
|
-
|
|
193
|
+
const draw = (bx, by, bw, bh) => {
|
|
194
|
+
if (embedded) {
|
|
195
|
+
drawEmbeddedResource(ctx, embedded, bx, by, bw, bh);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
ctx.onMissingImage?.(block.fileId);
|
|
199
|
+
fillRectPx(ctx, bx, by, bw, bh, colorFromHex('#e8e8e8', ctx.colorSpace));
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
if (!ctx.vertical) {
|
|
203
|
+
draw(x, y, width, height);
|
|
204
|
+
return;
|
|
169
205
|
}
|
|
206
|
+
// In a vertical page's flow the picture stands upright on the sheet, as
|
|
207
|
+
// the canvas and the HTML draw it: turned back inside its box, whose
|
|
208
|
+
// `width` runs down the sheet and whose `height` runs across it. A box
|
|
209
|
+
// sized for that (`upright`) is filled; any other picture (a callout
|
|
210
|
+
// icon) is fitted inside it, keeping its proportions.
|
|
211
|
+
pushFrame(ctx, quarterTurnMatrix({ direction: 'ccw', originX: x, originY: y + height }, ctx.scale, ctx.pageHeightPt));
|
|
212
|
+
tag?.();
|
|
213
|
+
if (block.upright)
|
|
214
|
+
draw(0, 0, height, width);
|
|
170
215
|
else {
|
|
171
|
-
|
|
172
|
-
|
|
216
|
+
const k = Math.min(height / width, width / height);
|
|
217
|
+
draw((height - width * k) / 2, (width - height * k) / 2, width * k, height * k);
|
|
173
218
|
}
|
|
219
|
+
popFrame(ctx);
|
|
174
220
|
}
|
|
175
221
|
export function renderHeaderFooterSlot(ctx, slot, fontCache, images, mark) {
|
|
176
222
|
for (const block of slot.blocks) {
|
|
@@ -178,6 +224,16 @@ export function renderHeaderFooterSlot(ctx, slot, fontCache, images, mark) {
|
|
|
178
224
|
renderTextBlock(ctx, block, fontCache, mark);
|
|
179
225
|
continue;
|
|
180
226
|
}
|
|
227
|
+
if (block.kind === 'image' && block.altText && mark?.figure) {
|
|
228
|
+
// A picture that is content: a `Figure` with its alternative text,
|
|
229
|
+
// read after the slot's own text (a chapter's plate after its
|
|
230
|
+
// heading).
|
|
231
|
+
const hasText = !!mark.text && slot.blocks.some((b) => b.kind === 'text' && !b.artifact);
|
|
232
|
+
const { x, y, width, height } = block.bbox;
|
|
233
|
+
const figure = mark.figure(block.altText, figureLayout(ctx, x, y, width, height), hasText ? mark.text() : undefined);
|
|
234
|
+
renderImageBlock(ctx, block, images, () => tagContent(ctx, figure));
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
181
237
|
if (block.kind === 'box' && block.clip) {
|
|
182
238
|
// A callout stripe on a rounded frame, clipped to the frame's
|
|
183
239
|
// outline. The clip's graphics state opens first: a marked-content
|
|
@@ -189,12 +245,14 @@ export function renderHeaderFooterSlot(ctx, slot, fontCache, images, mark) {
|
|
|
189
245
|
popClip(ctx);
|
|
190
246
|
continue;
|
|
191
247
|
}
|
|
248
|
+
if (block.kind === 'image') {
|
|
249
|
+
renderImageBlock(ctx, block, images, mark ? () => tagArtifact(ctx, mark.artifact) : undefined);
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
192
252
|
if (mark)
|
|
193
253
|
tagArtifact(ctx, mark.artifact);
|
|
194
254
|
if (block.kind === 'rule')
|
|
195
255
|
renderRuleBlock(ctx, block);
|
|
196
|
-
else if (block.kind === 'image')
|
|
197
|
-
renderImageBlock(ctx, block, images);
|
|
198
256
|
else
|
|
199
257
|
renderBoxBlock(ctx, block);
|
|
200
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerFooter.js","sourceRoot":"","sources":["../../src/pdf-backend/headerFooter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headerFooter.js","sourceRoot":"","sources":["../../src/pdf-backend/headerFooter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { PDFDocument } from 'pdf-lib';
|
|
1
2
|
import type { SvgRasterizer } from './renderResourceBlock';
|
|
2
3
|
import type { PdfColorSpace, RenderWarning, VDTDocument } from 'postext';
|
|
3
|
-
import { type PdfFontProvider } from '../fontCache';
|
|
4
|
+
import { type PdfFontProvider, type PdfFontRequest } from '../fontCache';
|
|
5
|
+
import './verticalText';
|
|
4
6
|
import { type ResourceBytesProvider } from './renderResourceBlock';
|
|
5
7
|
export interface RenderToPdfOptions {
|
|
6
8
|
fontProvider: PdfFontProvider;
|
|
@@ -32,6 +34,10 @@ export interface RenderToPdfOptions {
|
|
|
32
34
|
* flagged as artifacts. When omitted, the first document's
|
|
33
35
|
* `config.pdfGeneration.accessible`, else true. */
|
|
34
36
|
accessible?: boolean;
|
|
37
|
+
/** Draw the character grid (`cjk.grid.show`) over the type area, as
|
|
38
|
+
* the canvas and HTML do on screen. Default false: the grid is a
|
|
39
|
+
* screen aid and stays out of a file meant for print. */
|
|
40
|
+
characterGrid?: boolean;
|
|
35
41
|
/** Called as the render advances: after the fonts and resources are
|
|
36
42
|
* embedded, after every page, and before the file is written. */
|
|
37
43
|
onProgress?: (progress: RenderProgress) => void;
|
|
@@ -40,12 +46,16 @@ export interface RenderToPdfOptions {
|
|
|
40
46
|
rasterizeSvg?: SvgRasterizer;
|
|
41
47
|
/** Called for each non-fatal problem met while rendering (see
|
|
42
48
|
* {@link PdfWarning}): a face the font provider rejected and another cut
|
|
43
|
-
* of its family embedded instead (`fontFallback`)
|
|
44
|
-
*
|
|
49
|
+
* of its family embedded instead (`fontFallback`); characters no file of
|
|
50
|
+
* a face has a glyph for (`missingGlyph`, once per face, after the pages
|
|
51
|
+
* are drawn); a variable font asked for at a weight other than its
|
|
52
|
+
* default instance (`variableFontDefaultInstance`); a CFF face over
|
|
53
|
+
* 2 MB embedded whole (`cffEmbeddedWhole`); and an image with no bytes
|
|
54
|
+
* from `resourceBytes` (or bytes that did not decode), drawn as a
|
|
45
55
|
* placeholder and reported once per `fileId` as a `missingImage` warning
|
|
46
56
|
* carrying the page and the index of its document in `input`. Without
|
|
47
|
-
* it,
|
|
48
|
-
* `missingImage` is not reported. */
|
|
57
|
+
* it, the font warnings go to `console.warn` with their `message`, and
|
|
58
|
+
* a `missingImage` is not reported. */
|
|
49
59
|
onWarning?: (warning: PdfWarning) => void;
|
|
50
60
|
}
|
|
51
61
|
/** A face set in another cut of its family. The render goes on; the text
|
|
@@ -71,19 +81,72 @@ export interface PdfFontFallbackWarning {
|
|
|
71
81
|
/** A one-line English description, for logs. */
|
|
72
82
|
message: string;
|
|
73
83
|
}
|
|
84
|
+
/** Characters a face has no glyph for in any of its files. */
|
|
85
|
+
export interface PdfMissingGlyphWarning {
|
|
86
|
+
/** `missingGlyph`: the pages set characters that no file the font
|
|
87
|
+
* provider gave for this face has a glyph for. The PDF still builds;
|
|
88
|
+
* each of them is drawn as the font's `.notdef` glyph (an empty box, or
|
|
89
|
+
* nothing, depending on the font) at the width the layout measured.
|
|
90
|
+
* Reported once per face, after the pages are drawn. Typical causes: a
|
|
91
|
+
* provider that returns only a Latin file for a Chinese family, or a
|
|
92
|
+
* font's named subset that leaves marks out (Fontsource's
|
|
93
|
+
* `chinese-traditional` file has no full-width ,!?()). */
|
|
94
|
+
kind: 'missingGlyph';
|
|
95
|
+
family: string;
|
|
96
|
+
weight: number;
|
|
97
|
+
style: 'normal' | 'italic';
|
|
98
|
+
/** The characters, in the order the pages first set them. */
|
|
99
|
+
characters: string[];
|
|
100
|
+
message: string;
|
|
101
|
+
}
|
|
102
|
+
/** A variable font embedded at its default instance. */
|
|
103
|
+
export interface PdfVariableFontWarning {
|
|
104
|
+
/** `variableFontDefaultInstance`: the provider answered a face with a
|
|
105
|
+
* variable font (it has an `fvar` table) whose default instance is
|
|
106
|
+
* another weight. pdf-lib embeds the default instance only, so text in
|
|
107
|
+
* this face prints at `defaultWeight`. Give the provider a static file
|
|
108
|
+
* per weight (fontTools `instancer` makes one). */
|
|
109
|
+
kind: 'variableFontDefaultInstance';
|
|
110
|
+
family: string;
|
|
111
|
+
weight: number;
|
|
112
|
+
style: 'normal' | 'italic';
|
|
113
|
+
defaultWeight: number;
|
|
114
|
+
message: string;
|
|
115
|
+
}
|
|
116
|
+
/** A large CFF face embedded whole. */
|
|
117
|
+
export interface PdfCffEmbeddedWholeWarning {
|
|
118
|
+
/** `cffEmbeddedWhole`: a CFF-flavoured OpenType file (`.otf`) over 2 MB
|
|
119
|
+
* went into the PDF whole, since postext-pdf does not subset CFF
|
|
120
|
+
* outlines. A CJK face such as Source Han Serif adds 8 to 25 MB per
|
|
121
|
+
* weight; its TrueType build (Noto Serif CJK from Google Fonts or
|
|
122
|
+
* Fontsource) is subset to the glyphs used. */
|
|
123
|
+
kind: 'cffEmbeddedWhole';
|
|
124
|
+
family: string;
|
|
125
|
+
weight: number;
|
|
126
|
+
style: 'normal' | 'italic';
|
|
127
|
+
/** Size of the file, in bytes. */
|
|
128
|
+
bytes: number;
|
|
129
|
+
message: string;
|
|
130
|
+
}
|
|
74
131
|
/** A non-fatal problem met while rendering a PDF. The render goes on; the
|
|
75
132
|
* output differs from what the document asked for in the way described:
|
|
76
|
-
* a font fallback ({@link PdfFontFallbackWarning}),
|
|
133
|
+
* a font fallback ({@link PdfFontFallbackWarning}), characters a face
|
|
134
|
+
* lacks ({@link PdfMissingGlyphWarning}), a variable font set at its
|
|
135
|
+
* default weight ({@link PdfVariableFontWarning}), a CFF face embedded
|
|
136
|
+
* whole ({@link PdfCffEmbeddedWholeWarning}), or one of the engine's
|
|
77
137
|
* render warnings (`RenderWarning`: an image painted as a placeholder,
|
|
78
138
|
* `formatWarning` describes it). Narrow on `kind`. */
|
|
79
|
-
export type PdfWarning = PdfFontFallbackWarning | RenderWarning;
|
|
139
|
+
export type PdfWarning = PdfFontFallbackWarning | PdfMissingGlyphWarning | PdfVariableFontWarning | PdfCffEmbeddedWholeWarning | RenderWarning;
|
|
140
|
+
/** The font warnings: the kinds that carry a `message`, logged when the
|
|
141
|
+
* caller passes no `onWarning`. */
|
|
142
|
+
export type PdfFontWarning = Exclude<PdfWarning, RenderWarning>;
|
|
80
143
|
export interface RenderProgress {
|
|
81
144
|
phase: 'prepare' | 'pages' | 'save';
|
|
82
145
|
/** Pages rendered so far, and how many there are. */
|
|
83
146
|
pages: number;
|
|
84
147
|
totalPages: number;
|
|
85
148
|
}
|
|
86
|
-
export type { PdfFontProvider };
|
|
149
|
+
export type { PdfFontProvider, PdfFontRequest };
|
|
87
150
|
export type { ResourceBytesProvider } from './renderResourceBlock';
|
|
88
151
|
/**
|
|
89
152
|
* Render one document — or a book, as the documents of its chapters in
|
|
@@ -92,5 +155,8 @@ export type { ResourceBytesProvider } from './renderResourceBlock';
|
|
|
92
155
|
* tree; page indices in contents links are book-absolute already, so they
|
|
93
156
|
* resolve across chapters.
|
|
94
157
|
*/
|
|
158
|
+
/** `/ViewerPreferences << /Direction /R2L >>` and `/PageLayout
|
|
159
|
+
* /TwoPageRight` (page 1 alone, then pairs), for a right-bound book. */
|
|
160
|
+
export declare function setRightToLeft(pdfDoc: PDFDocument): void;
|
|
95
161
|
export declare function renderToPdf(input: VDTDocument | VDTDocument[], options: RenderToPdfOptions): Promise<Uint8Array>;
|
|
96
162
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/index.ts"],"names":[],"mappings":"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"}
|