postext-pdf 1.4.2 → 1.5.1
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,6 +1,6 @@
|
|
|
1
1
|
import { PDFDocument, BlendMode, } from 'pdf-lib';
|
|
2
2
|
import fontkit from '@pdf-lib/fontkit';
|
|
3
|
-
import { columnClipRect, computePageTextExtent, dimensionToPx } from 'postext';
|
|
3
|
+
import { columnClipRect, computePageTextExtent, dimensionToPx, pageColumnRule } from 'postext';
|
|
4
4
|
import { FontCache } from '../fontCache';
|
|
5
5
|
import { colorFromHex, fillRectPx, makeScale, popClip, pushClipRect, whiteColor, } from './primitives';
|
|
6
6
|
import { collectFontStrings } from './fontHelpers';
|
|
@@ -13,17 +13,51 @@ import { preloadResourceImages, } from './renderResourceBlock';
|
|
|
13
13
|
import { LinkRegistry } from './links';
|
|
14
14
|
import { StructTree, tagArtifact } from './tagging';
|
|
15
15
|
import { StructureFlow } from './structureFlow';
|
|
16
|
-
/**
|
|
17
|
-
function
|
|
16
|
+
/** The warning of a face set in another cut of its family. */
|
|
17
|
+
function fontFallbackWarning(f) {
|
|
18
|
+
const face = (weight, style) => `${weight}${style === 'italic' ? ' italic' : ''}`;
|
|
19
|
+
return {
|
|
20
|
+
kind: 'fontFallback',
|
|
21
|
+
...f,
|
|
22
|
+
message: `postext-pdf: "${f.family}" ${face(f.weight, f.style)} is not available from the font provider (${f.reason}); using ${face(f.fallback.weight, f.fallback.style)} instead`,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** BCP 47 tag of a postext locale (`/Lang`): the tag the document named
|
|
26
|
+
* (`'es-ES'`, `'sv'`) when its hyphenation patterns are another locale's,
|
|
27
|
+
* else the patterns' own (`'en-us'` → `'en-US'`). */
|
|
28
|
+
function languageTag(hyphenation) {
|
|
29
|
+
const locale = hyphenation?.tag?.trim() || hyphenation?.locale;
|
|
18
30
|
if (!locale)
|
|
19
31
|
return undefined;
|
|
20
|
-
|
|
21
|
-
|
|
32
|
+
// Canonical case: language lower, a two-letter region upper, the script
|
|
33
|
+
// and variant subtags as given.
|
|
34
|
+
return locale.replace(/_/g, '-').split('-')
|
|
35
|
+
.map((sub, i) => (i === 0 ? sub.toLowerCase() : sub.length === 2 ? sub.toUpperCase() : sub))
|
|
36
|
+
.join('-');
|
|
37
|
+
}
|
|
38
|
+
/** A metadata value as PDF text. The engine hands the printed fields over
|
|
39
|
+
* as strings; a VDT from elsewhere may still carry typed YAML values
|
|
40
|
+
* (`title: 1984` is a number, a date a `Date`, `author: [A, B]` a list),
|
|
41
|
+
* which pdf-lib rejects — coerce them rather than throw. */
|
|
42
|
+
function metadataString(value) {
|
|
43
|
+
if (typeof value === 'string')
|
|
44
|
+
return value;
|
|
45
|
+
if (typeof value === 'number')
|
|
46
|
+
return Number.isFinite(value) ? String(value) : undefined;
|
|
47
|
+
if (typeof value === 'boolean')
|
|
48
|
+
return String(value);
|
|
49
|
+
if (value instanceof Date)
|
|
50
|
+
return Number.isNaN(value.getTime()) ? undefined : value.toISOString().slice(0, 10);
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
const items = value.map(metadataString).filter((v) => !!v);
|
|
53
|
+
return items.length > 0 ? items.join(', ') : undefined;
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
22
56
|
}
|
|
23
57
|
/** Title of the document for the PDF metadata: the declared title, else the
|
|
24
58
|
* first heading (PDF/UA-1 §7.1 requires one). */
|
|
25
59
|
function documentTitle(docs) {
|
|
26
|
-
const declared = docs[0]?.metadata?.title?.trim();
|
|
60
|
+
const declared = metadataString(docs[0]?.metadata?.title)?.trim();
|
|
27
61
|
if (declared)
|
|
28
62
|
return declared;
|
|
29
63
|
let best;
|
|
@@ -46,7 +80,9 @@ function documentTitle(docs) {
|
|
|
46
80
|
}
|
|
47
81
|
/** The heading element an opener band's text belongs to: the part title on
|
|
48
82
|
* a part-divider page, else the `span: 'page'` heading the band replaced
|
|
49
|
-
* (hidden in its column
|
|
83
|
+
* (hidden in its column, its lines still set — a structural `hidden`
|
|
84
|
+
* heading, whose lines have no height, prints nothing at all), else a
|
|
85
|
+
* plain paragraph. */
|
|
50
86
|
function openerTextElem(page, structure) {
|
|
51
87
|
let elem;
|
|
52
88
|
return () => {
|
|
@@ -56,19 +92,27 @@ function openerTextElem(page, structure) {
|
|
|
56
92
|
return (elem = structure.partHeading());
|
|
57
93
|
for (const col of page.columns) {
|
|
58
94
|
for (const block of col.blocks) {
|
|
59
|
-
if (block.hidden && block.type === 'heading')
|
|
95
|
+
if (block.hidden && block.type === 'heading' && (block.lines[0]?.bbox.height ?? 0) > 0)
|
|
60
96
|
return (elem = structure.blockElem(block));
|
|
61
97
|
}
|
|
62
98
|
}
|
|
63
99
|
return (elem = structure.tree.root.child('P'));
|
|
64
100
|
};
|
|
65
101
|
}
|
|
66
|
-
function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, resourceCtx, tree) {
|
|
102
|
+
function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, resourceCtx, tree, onMissingImage) {
|
|
67
103
|
const scale = makeScale(doc.config.page.dpi);
|
|
68
104
|
const pageWidthPt = vdtPage.width * scale;
|
|
69
105
|
const pageHeightPt = vdtPage.height * scale;
|
|
70
106
|
const page = pdfDoc.addPage([pageWidthPt, pageHeightPt]);
|
|
71
|
-
|
|
107
|
+
// With cut lines the sheet carries the bleed and the marks: say where the
|
|
108
|
+
// page is trimmed and how far its art runs, for imposition and preflight.
|
|
109
|
+
if (doc.config.page.cutLines.enabled) {
|
|
110
|
+
const trimPt = doc.trimOffset * scale;
|
|
111
|
+
const bleedPt = Math.max(0, doc.trimOffset - dimensionToPx(doc.config.page.cutLines.bleed, doc.config.page.dpi)) * scale;
|
|
112
|
+
page.setTrimBox(trimPt, trimPt, pageWidthPt - 2 * trimPt, pageHeightPt - 2 * trimPt);
|
|
113
|
+
page.setBleedBox(bleedPt, bleedPt, pageWidthPt - 2 * bleedPt, pageHeightPt - 2 * bleedPt);
|
|
114
|
+
}
|
|
115
|
+
const ctx = { page, pageHeightPt, scale, colorSpace, tags: tree?.beginPage(page), ...(onMissingImage ? { onMissingImage } : {}) };
|
|
72
116
|
const structure = resourceCtx.structure;
|
|
73
117
|
// Background: full page white first (cut-mark area stays white), then the
|
|
74
118
|
// trim+bleed area filled with the configured page background colour.
|
|
@@ -76,12 +120,20 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
76
120
|
fillRectPx(ctx, 0, 0, vdtPage.width, vdtPage.height, whiteColor(colorSpace));
|
|
77
121
|
const bgHex = doc.config.page.backgroundColor.hex;
|
|
78
122
|
const trimOff = doc.trimOffset;
|
|
123
|
+
const bleedPx = trimOff > 0
|
|
124
|
+
? dimensionToPx(doc.config.page.cutLines.bleed, doc.config.page.dpi)
|
|
125
|
+
: 0;
|
|
79
126
|
if (bgHex && bgHex !== 'transparent') {
|
|
80
|
-
const bleedPx = trimOff > 0
|
|
81
|
-
? dimensionToPx(doc.config.page.cutLines.bleed, doc.config.page.dpi)
|
|
82
|
-
: 0;
|
|
83
127
|
fillRectPx(ctx, trimOff - bleedPx, trimOff - bleedPx, vdtPage.width - (trimOff - bleedPx) * 2, vdtPage.height - (trimOff - bleedPx) * 2, colorFromHex(bgHex, colorSpace));
|
|
84
128
|
}
|
|
129
|
+
// With cut lines the sheet also carries the slug, where only the marks
|
|
130
|
+
// print: everything the page paints is clipped to the bleed box, as a
|
|
131
|
+
// DTP export clips it (EF-133). The marks are drawn after the clip ends.
|
|
132
|
+
const bleedClip = trimOff > 0;
|
|
133
|
+
if (bleedClip) {
|
|
134
|
+
const inset = Math.max(0, trimOff - bleedPx);
|
|
135
|
+
pushClipRect(ctx, inset, inset, vdtPage.width - inset * 2, vdtPage.height - inset * 2);
|
|
136
|
+
}
|
|
85
137
|
tagArtifact(ctx, { type: 'Layout' });
|
|
86
138
|
if (doc.config.page.baselineGrid.enabled) {
|
|
87
139
|
// Bound the grid to the page's actual text: from the first text line to
|
|
@@ -93,9 +145,11 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
93
145
|
renderBaselineGrid(ctx, contentArea, doc.baselineGrid, doc.config.page.baselineGrid.color.hex, gridLineWidthPx, textExtent);
|
|
94
146
|
}
|
|
95
147
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
148
|
+
// The page's own rule on a styled section's pages, else the document's
|
|
149
|
+
// (mirrors the canvas backend via `pageColumnRule`).
|
|
150
|
+
const columnRule = pageColumnRule(vdtPage, doc);
|
|
151
|
+
if (columnRule.enabled && vdtPage.columns.length > 1) {
|
|
152
|
+
renderColumnRule(ctx, vdtPage.columns, columnRule.color, columnRule.lineWidthPx);
|
|
99
153
|
}
|
|
100
154
|
// Opener / part bands go under the columns so their backgrounds sit
|
|
101
155
|
// beneath the body text (mirrors the canvas backend). Their text is the
|
|
@@ -110,8 +164,13 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
110
164
|
const clip = columnClipRect(col, doc.config.page.dpi);
|
|
111
165
|
pushClipRect(ctx, clip.x, clip.y, clip.width, clip.height);
|
|
112
166
|
for (const block of col.blocks) {
|
|
113
|
-
if (block.tocPart && block.designOverlay)
|
|
167
|
+
if (block.tocPart && block.designOverlay) {
|
|
168
|
+
// Painted below, but read in its place among the contents rows.
|
|
169
|
+
if (structure && !block.hidden && block.designOverlay.blocks.some((b) => b.kind === 'text')) {
|
|
170
|
+
structure.blockElem(block);
|
|
171
|
+
}
|
|
114
172
|
continue;
|
|
173
|
+
}
|
|
115
174
|
renderBlock(ctx, block, col.bbox.width, col.bbox.x, fontCache, resourceCtx);
|
|
116
175
|
}
|
|
117
176
|
popClip(ctx);
|
|
@@ -119,15 +178,25 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
119
178
|
// run past the column (a band reaching beyond the page numbers): it
|
|
120
179
|
// is drawn outside the column clip, like a float.
|
|
121
180
|
for (const block of col.blocks) {
|
|
122
|
-
if (block.tocPart
|
|
123
|
-
|
|
181
|
+
if (!block.tocPart || !block.designOverlay)
|
|
182
|
+
continue;
|
|
183
|
+
const paint = () => renderBlock(ctx, block, col.bbox.width, col.bbox.x, fontCache, resourceCtx);
|
|
184
|
+
if (structure)
|
|
185
|
+
structure.aside(paint);
|
|
186
|
+
else
|
|
187
|
+
paint();
|
|
124
188
|
}
|
|
125
189
|
}
|
|
126
190
|
// Floated resources sit outside the column clip (a `span: 'page'` float can
|
|
127
191
|
// cross the gutter); they carry an absolute bbox positioned at build time.
|
|
192
|
+
// A tagged render reads each one after the text that cites it (EF-146).
|
|
128
193
|
if (vdtPage.floats) {
|
|
129
194
|
for (const fb of vdtPage.floats) {
|
|
130
|
-
renderBlock(ctx, fb, fb.bbox.width, fb.bbox.x, fontCache, resourceCtx);
|
|
195
|
+
const paint = () => renderBlock(ctx, fb, fb.bbox.width, fb.bbox.x, fontCache, resourceCtx);
|
|
196
|
+
if (structure)
|
|
197
|
+
structure.readFloat(fb, paint);
|
|
198
|
+
else
|
|
199
|
+
paint();
|
|
131
200
|
}
|
|
132
201
|
}
|
|
133
202
|
// Running headers and footers are pagination artifacts.
|
|
@@ -136,13 +205,12 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
136
205
|
renderHeaderFooterSlot(ctx, vdtPage.header, fontCache, resourceCtx.images, pagination('Header'));
|
|
137
206
|
if (vdtPage.footer)
|
|
138
207
|
renderHeaderFooterSlot(ctx, vdtPage.footer, fontCache, resourceCtx.images, pagination('Footer'));
|
|
208
|
+
if (bleedClip)
|
|
209
|
+
popClip(ctx);
|
|
139
210
|
// Page negative: overlay white rect with Difference blend across trim+bleed.
|
|
140
211
|
// Crop marks remain un-inverted (drawn afterwards).
|
|
141
212
|
tagArtifact(ctx, { type: 'Page' });
|
|
142
213
|
if (pageNegative) {
|
|
143
|
-
const bleedPx = trimOff > 0
|
|
144
|
-
? dimensionToPx(doc.config.page.cutLines.bleed, doc.config.page.dpi)
|
|
145
|
-
: 0;
|
|
146
214
|
const invX = trimOff - bleedPx;
|
|
147
215
|
const invY = trimOff - bleedPx;
|
|
148
216
|
const invW = vdtPage.width - (trimOff - bleedPx) * 2;
|
|
@@ -152,6 +220,18 @@ function renderPage(pdfDoc, vdtPage, doc, fontCache, pageNegative, colorSpace, r
|
|
|
152
220
|
renderCutLines(ctx, vdtPage, doc);
|
|
153
221
|
ctx.tags?.close();
|
|
154
222
|
}
|
|
223
|
+
/** The output settings of a render: each one from `options` when given,
|
|
224
|
+
* else from the document's `config.pdfGeneration` (a colour space only
|
|
225
|
+
* while its `forceColorSpace` is on), else the default — RGB, bookmarks
|
|
226
|
+
* and tagging on. */
|
|
227
|
+
function pdfSettings(options, doc) {
|
|
228
|
+
const gen = doc?.config.pdfGeneration;
|
|
229
|
+
return {
|
|
230
|
+
outlines: options.outlines ?? gen?.outlines ?? true,
|
|
231
|
+
accessible: options.accessible ?? gen?.accessible ?? true,
|
|
232
|
+
colorSpace: options.colorSpace ?? (gen?.forceColorSpace ? gen.colorSpace : undefined) ?? 'rgb',
|
|
233
|
+
};
|
|
234
|
+
}
|
|
155
235
|
/**
|
|
156
236
|
* Render one document — or a book, as the documents of its chapters in
|
|
157
237
|
* order, each laid out with the continuation of the ones before it — into
|
|
@@ -167,26 +247,33 @@ export async function renderToPdf(input, options) {
|
|
|
167
247
|
const totalPages = docs.reduce((n, d) => n + d.pages.length, 0);
|
|
168
248
|
const pdfDoc = await PDFDocument.create();
|
|
169
249
|
pdfDoc.registerFontkit(fontkit);
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
if (
|
|
173
|
-
pdfDoc.
|
|
250
|
+
const metaTitle = metadataString(first.metadata?.title);
|
|
251
|
+
const metaAuthor = metadataString(first.metadata?.author);
|
|
252
|
+
if (metaTitle)
|
|
253
|
+
pdfDoc.setTitle(metaTitle);
|
|
254
|
+
if (metaAuthor)
|
|
255
|
+
pdfDoc.setAuthor(metaAuthor);
|
|
174
256
|
pdfDoc.setCreator('postext');
|
|
175
257
|
pdfDoc.setProducer('postext-pdf');
|
|
176
|
-
const
|
|
258
|
+
const warn = options.onWarning ?? ((w) => { if (w.kind === 'fontFallback')
|
|
259
|
+
console.warn(w.message); });
|
|
260
|
+
const fontCache = new FontCache(pdfDoc, options.fontProvider, (f) => warn(fontFallbackWarning(f)));
|
|
177
261
|
for (const doc of docs)
|
|
178
262
|
await fontCache.preloadFontStrings(collectFontStrings(doc));
|
|
179
263
|
const missing = fontCache.missing();
|
|
180
264
|
if (missing.length > 0) {
|
|
181
265
|
throw new Error(`postext-pdf: failed to load font(s): ${missing.join(', ')}`);
|
|
182
266
|
}
|
|
183
|
-
|
|
267
|
+
// Each setting: the option when given, else the first document's
|
|
268
|
+
// `pdfGeneration`, else the default.
|
|
269
|
+
const settings = pdfSettings(options, first);
|
|
270
|
+
const colorSpace = settings.colorSpace;
|
|
184
271
|
// Accessible output: the structure tree the pages tag their content into.
|
|
185
|
-
const tree =
|
|
272
|
+
const tree = settings.accessible
|
|
186
273
|
? new StructTree(pdfDoc, {
|
|
187
274
|
title: documentTitle(docs),
|
|
188
|
-
author:
|
|
189
|
-
lang: languageTag(first.config.bodyText.hyphenation
|
|
275
|
+
author: metaAuthor,
|
|
276
|
+
lang: languageTag(first.config.bodyText.hyphenation),
|
|
190
277
|
producer: 'postext-pdf',
|
|
191
278
|
creatorTool: 'postext',
|
|
192
279
|
})
|
|
@@ -203,7 +290,10 @@ export async function renderToPdf(input, options) {
|
|
|
203
290
|
// onto the PDF's pages from the first document's offset.
|
|
204
291
|
const linkRegistry = new LinkRegistry(first.pageIndexOffset ?? 0);
|
|
205
292
|
let rendered = 0;
|
|
206
|
-
|
|
293
|
+
// Placeholders are reported once per image for the whole file.
|
|
294
|
+
const onWarning = options.onWarning;
|
|
295
|
+
const reportedImages = new Set();
|
|
296
|
+
for (const [documentIndex, doc] of docs.entries()) {
|
|
207
297
|
// Block ids restart per document: each gets its own structure flow
|
|
208
298
|
// (paragraph fragments, lists and callouts never span chapters).
|
|
209
299
|
const resourceCtx = {
|
|
@@ -212,18 +302,28 @@ export async function renderToPdf(input, options) {
|
|
|
212
302
|
structure: tree ? new StructureFlow(tree) : undefined,
|
|
213
303
|
};
|
|
214
304
|
for (const page of doc.pages) {
|
|
215
|
-
|
|
305
|
+
const onMissingImage = onWarning
|
|
306
|
+
? (fileId, resourceId) => {
|
|
307
|
+
if (reportedImages.has(fileId))
|
|
308
|
+
return;
|
|
309
|
+
reportedImages.add(fileId);
|
|
310
|
+
onWarning({ kind: 'missingImage', fileId, ...(resourceId !== undefined ? { resourceId } : {}), pageIndex: page.index, documentIndex });
|
|
311
|
+
}
|
|
312
|
+
: undefined;
|
|
313
|
+
renderPage(pdfDoc, page, doc, fontCache, options.pageNegative ?? false, colorSpace, resourceCtx, tree, onMissingImage);
|
|
216
314
|
rendered++;
|
|
217
315
|
options.onProgress?.({ phase: 'pages', pages: rendered, totalPages });
|
|
218
316
|
}
|
|
219
317
|
}
|
|
220
318
|
// Attach inline-ref link annotations now that every destination is known.
|
|
221
319
|
linkRegistry.finalize(pdfDoc, tree);
|
|
222
|
-
if (
|
|
320
|
+
if (settings.outlines) {
|
|
223
321
|
addOutlines(pdfDoc, docs);
|
|
224
322
|
}
|
|
225
323
|
addPageLabels(pdfDoc, docs);
|
|
226
324
|
tree?.finalize();
|
|
325
|
+
// A face asked for but never drawn with is not written.
|
|
326
|
+
fontCache.dropUnusedFonts();
|
|
227
327
|
options.onProgress?.({ phase: 'save', pages: rendered, totalPages });
|
|
228
328
|
return pdfDoc.save();
|
|
229
329
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf-backend/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf-backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* top-left). Each inline `:ref{id=…}` becomes a `/Link` annotation whose
|
|
7
7
|
* rectangle covers the rendered ref text and whose `/Dest` is the matching
|
|
8
8
|
* destination. A row of the contents (`:::toc`) becomes a `/Link` to the
|
|
9
|
-
* top of the page it lists, when that page is in the document.
|
|
9
|
+
* top of the page it lists, when that page is in the document. The words of
|
|
10
|
+
* a Markdown link (`VDTLineSegment.href`) become a `/Link` with a URI
|
|
11
|
+
* action, one per line they run over.
|
|
10
12
|
*
|
|
11
13
|
* Destinations and links can be emitted in any page order, so collection is
|
|
12
14
|
* two-phase: callers record destinations + pending links during page rendering,
|
|
@@ -21,6 +23,10 @@ export interface LinkStruct {
|
|
|
21
23
|
elem: StructElem;
|
|
22
24
|
contents: string;
|
|
23
25
|
}
|
|
26
|
+
/** A Markdown link target as a PDF URI (7-bit ASCII, ISO 32000-1 §12.6.4.7):
|
|
27
|
+
* characters outside printable ASCII percent-encoded as UTF-8; undefined
|
|
28
|
+
* for a relative URL, which a PDF has no base to resolve against. */
|
|
29
|
+
export declare function pdfUri(href: string): string | undefined;
|
|
24
30
|
export declare class LinkRegistry {
|
|
25
31
|
private readonly pageIndexOffset;
|
|
26
32
|
private dests;
|
|
@@ -32,6 +38,9 @@ export declare class LinkRegistry {
|
|
|
32
38
|
addDestination(resourceId: string, page: PDFPage, leftPt: number, topPt: number): void;
|
|
33
39
|
/** Record a pending inline-ref link to be attached at finalize. */
|
|
34
40
|
addLink(page: PDFPage, rect: [number, number, number, number], resourceId: string, struct?: LinkStruct): void;
|
|
41
|
+
/** Record a pending link to a URI (a Markdown link's words on one line);
|
|
42
|
+
* `uri` is already a {@link pdfUri}. */
|
|
43
|
+
addUriLink(page: PDFPage, rect: [number, number, number, number], uri: string, struct?: LinkStruct): void;
|
|
35
44
|
/** Record a pending link to the top of a book page (a contents row). */
|
|
36
45
|
addPageLink(page: PDFPage, rect: [number, number, number, number], pageIndex: number, struct?: LinkStruct): void;
|
|
37
46
|
/** Attach all pending link annotations. Links whose destination resource was
|
|
@@ -41,4 +50,76 @@ export declare class LinkRegistry {
|
|
|
41
50
|
* `/StructParent`) and carries `/Contents` (PDF/UA-1 §7.18.5). */
|
|
42
51
|
finalize(pdfDoc: PDFDocument, tree?: StructTree): void;
|
|
43
52
|
}
|
|
53
|
+
/** The fields of a line segment that say which reference it paints. */
|
|
54
|
+
interface RefSegment {
|
|
55
|
+
text: string;
|
|
56
|
+
refResourceId?: string;
|
|
57
|
+
refContinues?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/** A reference being painted: where it starts (px), its text so far and
|
|
60
|
+
* its `Link` element (tagged render only). */
|
|
61
|
+
export interface RefRunState {
|
|
62
|
+
resourceId: string;
|
|
63
|
+
startX: number;
|
|
64
|
+
text: string;
|
|
65
|
+
link?: StructElem;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Follows one inline `:ref` across the segments that paint it. A reference
|
|
69
|
+
* set in small capitals is painted as several runs, one per case, the later
|
|
70
|
+
* ones flagged `refContinues`: they share one `Link` element, and the link
|
|
71
|
+
* annotation, recorded once the last run is painted, covers them all.
|
|
72
|
+
*/
|
|
73
|
+
export declare class RefRun {
|
|
74
|
+
private current;
|
|
75
|
+
/** Call before painting `seg` at `x` (px). Returns the `Link` element its
|
|
76
|
+
* text joins: a new child of `elem` at a reference's first run, the same
|
|
77
|
+
* one for the runs that continue it; none for plain text or an untagged
|
|
78
|
+
* render. */
|
|
79
|
+
enter(seg: RefSegment, x: number, elem: StructElem | undefined, resourceId?: string | undefined): StructElem | undefined;
|
|
80
|
+
/** Call after painting `seg`. Returns the whole reference once its last
|
|
81
|
+
* run is painted (`next` does not continue it), else nothing. */
|
|
82
|
+
leave(seg: RefSegment, next: RefSegment | undefined, resourceId?: string | undefined): RefRunState | undefined;
|
|
83
|
+
}
|
|
84
|
+
/** What a {@link UriRuns} needs of the page being drawn. */
|
|
85
|
+
interface UriRunsCtx {
|
|
86
|
+
page: PDFPage;
|
|
87
|
+
pageHeightPt: number;
|
|
88
|
+
scale: number;
|
|
89
|
+
mapRectPt?: (rect: [number, number, number, number]) => [number, number, number, number];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The Markdown links of one line as it is painted left to right: each run
|
|
93
|
+
* of words sharing a target — spaces between them included — becomes one
|
|
94
|
+
* URI link annotation over the line box and, in a tagged render, one `Link`
|
|
95
|
+
* element (child of `parent`) holding their text. Feed every segment in
|
|
96
|
+
* order, then call {@link end}.
|
|
97
|
+
*/
|
|
98
|
+
export declare class UriRuns {
|
|
99
|
+
private readonly ctx;
|
|
100
|
+
private readonly line;
|
|
101
|
+
private readonly registry;
|
|
102
|
+
private readonly parent;
|
|
103
|
+
private run;
|
|
104
|
+
constructor(ctx: UriRunsCtx, line: {
|
|
105
|
+
bbox: {
|
|
106
|
+
y: number;
|
|
107
|
+
height: number;
|
|
108
|
+
};
|
|
109
|
+
}, registry: LinkRegistry | undefined, parent: StructElem | undefined);
|
|
110
|
+
/** A word at `x` (px) of `width`: the `Link` element its text joins when
|
|
111
|
+
* it is part of a link (`href` a PDF-openable URL), else undefined. A
|
|
112
|
+
* word without a link, or with another one, ends the open run. */
|
|
113
|
+
word(href: string | undefined, x: number, width: number, text: string): StructElem | undefined;
|
|
114
|
+
/** A word space: joins the open run's element (a space inside a link;
|
|
115
|
+
* one after its last word ends up there too, which extraction reads the
|
|
116
|
+
* same). The run's box only grows with the next word. */
|
|
117
|
+
space(text: string): StructElem | undefined;
|
|
118
|
+
/** Anything that is not a word (a formula, a swatch, a chip) ends the
|
|
119
|
+
* open run. */
|
|
120
|
+
other(): void;
|
|
121
|
+
end(): void;
|
|
122
|
+
private flush;
|
|
123
|
+
}
|
|
124
|
+
export {};
|
|
44
125
|
//# sourceMappingURL=links.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/links.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/links.ts"],"names":[],"mappings":"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"}
|