@unisim/doc 0.5.0 → 0.7.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/dist/convert.d.ts +2 -1
- package/dist/convert.d.ts.map +1 -1
- package/dist/convert.js +4 -3
- package/dist/convert.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +15 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +17 -0
- package/dist/model.js.map +1 -1
- package/dist/pdfcore.d.ts +45 -3
- package/dist/pdfcore.d.ts.map +1 -1
- package/dist/pdfcore.js +352 -27
- package/dist/pdfcore.js.map +1 -1
- package/dist/read/docx.js +68 -1
- package/dist/read/docx.js.map +1 -1
- package/dist/read/odt.js +2 -2
- package/dist/read/odt.js.map +1 -1
- package/dist/truetype.d.ts +33 -0
- package/dist/truetype.d.ts.map +1 -0
- package/dist/truetype.js +289 -0
- package/dist/truetype.js.map +1 -0
- package/dist/write/pdf.d.ts +17 -1
- package/dist/write/pdf.d.ts.map +1 -1
- package/dist/write/pdf.js +149 -13
- package/dist/write/pdf.js.map +1 -1
- package/package.json +1 -1
package/dist/convert.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DocNotice, RichDoc } from './model.js';
|
|
2
2
|
import { type PdfSettings } from './write/pdfSettings.js';
|
|
3
|
+
import type { FallbackFontLoader } from './write/pdf.js';
|
|
3
4
|
export type { PdfSettings, PaperSize, Orientation, PageMargin, FontChoice } from './write/pdfSettings.js';
|
|
4
5
|
export { DEFAULT_PDF_SETTINGS } from './write/pdfSettings.js';
|
|
5
6
|
export type { DocNotice, RichDoc } from './model.js';
|
|
@@ -50,5 +51,5 @@ export declare function commonTargets(exts: readonly string[]): DocFormat[];
|
|
|
50
51
|
* and not a converted file, so that it can concatenate before writing once.
|
|
51
52
|
*/
|
|
52
53
|
export declare function readToDoc(file: File): Promise<RichDoc>;
|
|
53
|
-
export declare function convertDocument(file: File, settings: DocSettings, onProgress?: (fraction: number) => void): Promise<DocResult>;
|
|
54
|
+
export declare function convertDocument(file: File, settings: DocSettings, onProgress?: (fraction: number) => void, loadFallbackFont?: FallbackFontLoader): Promise<DocResult>;
|
|
54
55
|
//# sourceMappingURL=convert.d.ts.map
|
package/dist/convert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,SAAS,EAAQ,OAAO,EAAE,MAAM,YAAY,CAAA;AAI1D,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,SAAS,EAAQ,OAAO,EAAE,MAAM,YAAY,CAAA;AAI1D,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAI/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,WAAW,CAAA;IAChB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAIlC,CAAA;AAED,uEAAuE;AACvE;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,oFAAoF;IACpF,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,qHAGjB,CAAA;AAIV,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAKnD;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,CAKlE;AAOD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAsDD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,gBAAgB,CAAC,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,CAsEpB"}
|
package/dist/convert.js
CHANGED
|
@@ -128,7 +128,7 @@ async function read(file, ext) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
// ── The conversion ───────────────────────────────────────────────────────────
|
|
131
|
-
export async function convertDocument(file, settings, onProgress) {
|
|
131
|
+
export async function convertDocument(file, settings, onProgress, loadFallbackFont) {
|
|
132
132
|
const ext = extensionOf(file.name);
|
|
133
133
|
onProgress?.(0.05);
|
|
134
134
|
const { doc, grid } = await read(file, ext);
|
|
@@ -140,7 +140,7 @@ export async function convertDocument(file, settings, onProgress) {
|
|
|
140
140
|
switch (settings.format) {
|
|
141
141
|
case 'pdf': {
|
|
142
142
|
const { docToPdf } = await import('./write/pdf.js');
|
|
143
|
-
const result = await docToPdf(doc, settings.pdf);
|
|
143
|
+
const result = await docToPdf(doc, settings.pdf, loadFallbackFont);
|
|
144
144
|
if (result.dropped.length) {
|
|
145
145
|
// Named, not counted. "12 characters could not be written" sends
|
|
146
146
|
// somebody hunting; showing them the actual glyphs makes it obvious
|
|
@@ -150,7 +150,8 @@ export async function convertDocument(file, settings, onProgress) {
|
|
|
150
150
|
severity: 'loss',
|
|
151
151
|
message: `Some characters aren’t in the PDF’s built-in fonts and came out as “?”: ${sample}` +
|
|
152
152
|
(result.dropped.length > 12 ? ` and ${result.dropped.length - 12} more.` : '.') +
|
|
153
|
-
'
|
|
153
|
+
' That script isn’t in the fallback font this app embeds, which covers' +
|
|
154
|
+
' Latin, Cyrillic, Greek and Hebrew but not Chinese, Japanese, Korean or Arabic.',
|
|
154
155
|
});
|
|
155
156
|
}
|
|
156
157
|
onProgress?.(1);
|
package/dist/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,sCAAsC;AACtC,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,EAAE;AACF,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAG9E,+EAA+E;AAC/E,+EAA+E;AAC/E,iEAAiE;AACjE,OAAO,EAAE,oBAAoB,EAAoB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
export type { Block, DocNotice, Grid, ListItem, RichDoc, Run, } from './model.js';
|
|
2
|
+
export { isMonospaceFamily } from './model.js';
|
|
2
3
|
export { DEFAULT_DOC_SETTINGS, DEFAULT_PDF_SETTINGS, DOC_INPUT_EXTS, commonTargets, convertDocument, isTabular, readToDoc, targetsFor, } from './convert.js';
|
|
3
4
|
export type { DocFormat, DocResult, DocSettings, FontChoice, Orientation, PageMargin, PaperSize, PdfSettings, } from './convert.js';
|
|
4
5
|
export { readDocx } from './read/docx.js';
|
|
5
6
|
export { readOdt } from './read/odt.js';
|
|
6
7
|
export { readMarkdown } from './read/markdown.js';
|
|
7
8
|
export { docToPdf } from './write/pdf.js';
|
|
8
|
-
export type { PdfResult } from './write/pdf.js';
|
|
9
|
+
export type { FallbackFontLoader, PdfResult } from './write/pdf.js';
|
|
9
10
|
export { docToHtml, docToMarkdown, docToText } from './write/text.js';
|
|
10
11
|
export { ZipArchive, unzipSupported } from './unzip.js';
|
|
11
12
|
export { mergeToPdf, readForMerge } from './merge.js';
|
|
12
13
|
export type { MergePart } from './merge.js';
|
|
13
|
-
export { PdfDocument, PdfPage, rgb, widthOfText } from './pdfcore.js';
|
|
14
|
+
export { PdfDocument, PdfPage, rgb, toWinAnsi, unspellable, widthOfText } from './pdfcore.js';
|
|
15
|
+
export { readTrueType, FontFormatError } from './truetype.js';
|
|
16
|
+
export type { EmbeddableFont } from './truetype.js';
|
|
14
17
|
export type { FontId, PdfImage, Rgb } from './pdfcore.js';
|
|
15
18
|
export { imageToJpeg, imagesToPdf } from './image.js';
|
|
16
19
|
export type { PdfPageSource } from './image.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2CA,YAAY,EACV,KAAK,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2CA,YAAY,EACV,KAAK,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK3C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG7F,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC7D,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,9 @@
|
|
|
39
39
|
// NO RUNTIME DEPENDENCIES, and it should stay that way — that constraint is the
|
|
40
40
|
// product for one of its two consumers.
|
|
41
41
|
// ---------------------------------------------------------------------------
|
|
42
|
+
// Exported for the self-tests, and because a consuming app that grows its own
|
|
43
|
+
// reader needs the same answer about a font name as the two here.
|
|
44
|
+
export { isMonospaceFamily } from './model.js';
|
|
42
45
|
// ---- Reading, writing, and the orchestration over both ---------------------
|
|
43
46
|
export { DEFAULT_DOC_SETTINGS, DEFAULT_PDF_SETTINGS, DOC_INPUT_EXTS, commonTargets, convertDocument, isTabular, readToDoc, targetsFor, } from './convert.js';
|
|
44
47
|
// ---- The individual readers and the PDF writer ----------------------------
|
|
@@ -57,7 +60,9 @@ export { mergeToPdf, readForMerge } from './merge.js';
|
|
|
57
60
|
// ---- The PDF primitives, for a consumer that wants them directly ----------
|
|
58
61
|
// Universal Converter's "images → one PDF" feature builds pages itself rather
|
|
59
62
|
// than going through the document model, so the writer surface is public.
|
|
60
|
-
export { PdfDocument, PdfPage, rgb, widthOfText } from './pdfcore.js';
|
|
63
|
+
export { PdfDocument, PdfPage, rgb, toWinAnsi, unspellable, widthOfText } from './pdfcore.js';
|
|
64
|
+
// ---- Embedding a font, for the alphabets base-14 cannot spell --------------
|
|
65
|
+
export { readTrueType, FontFormatError } from './truetype.js';
|
|
61
66
|
export { imageToJpeg, imagesToPdf } from './image.js';
|
|
62
67
|
// ---- Source lengths → points ----------------------------------------------
|
|
63
68
|
// Exported so the self-tests can reach them: they are the one part of the
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,EAAE;AACF,0BAA0B;AAC1B,0BAA0B;AAC1B,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,+EAA+E;AAC/E,4EAA4E;AAC5E,YAAY;AACZ,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,sEAAsE;AACtE,+EAA+E;AAC/E,2EAA2E;AAC3E,gFAAgF;AAChF,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,EAAE;AACF,uDAAuD;AACvD,uDAAuD;AACvD,6EAA6E;AAC7E,gFAAgF;AAChF,+DAA+D;AAC/D,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,4DAA4D;AAC5D,EAAE;AACF,gFAAgF;AAChF,wCAAwC;AACxC,8EAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,EAAE;AACF,0BAA0B;AAC1B,0BAA0B;AAC1B,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,+EAA+E;AAC/E,4EAA4E;AAC5E,YAAY;AACZ,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,sEAAsE;AACtE,+EAA+E;AAC/E,2EAA2E;AAC3E,gFAAgF;AAChF,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,EAAE;AACF,uDAAuD;AACvD,uDAAuD;AACvD,6EAA6E;AAC7E,gFAAgF;AAChF,+DAA+D;AAC/D,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,4DAA4D;AAC5D,EAAE;AACF,gFAAgF;AAChF,wCAAwC;AACxC,8EAA8E;AAW9E,8EAA8E;AAC9E,kEAAkE;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,+EAA+E;AAC/E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAA;AAYrB,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEvD,8EAA8E;AAC9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGrD,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE7F,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGrD,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,sDAAsD;AACtD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/model.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export type Block = {
|
|
|
45
45
|
alt: string;
|
|
46
46
|
width?: number;
|
|
47
47
|
height?: number;
|
|
48
|
+
withPrevious?: boolean;
|
|
48
49
|
} | {
|
|
49
50
|
kind: 'pagebreak';
|
|
50
51
|
} | {
|
|
@@ -98,6 +99,20 @@ export declare function mergeRuns(runs: readonly Run[]): Run[];
|
|
|
98
99
|
* manual pagination inside a different page size produces holes.
|
|
99
100
|
*/
|
|
100
101
|
export declare function tidy(doc: RichDoc): RichDoc;
|
|
102
|
+
/**
|
|
103
|
+
* Does this font family name a monospaced face?
|
|
104
|
+
*
|
|
105
|
+
* Word and OpenDocument both mark a code sample by simply SWITCHING FONT —
|
|
106
|
+
* there is no "this is code" property to read — so recognising the family is
|
|
107
|
+
* the only way to keep an ASCII diagram monospaced on the way out. Shared
|
|
108
|
+
* because `read/odt.ts` had this test and `read/docx.ts` did not, which is why
|
|
109
|
+
* the same diagram survived an .odt and came out of a .docx in Helvetica with
|
|
110
|
+
* its columns no longer lining up.
|
|
111
|
+
*
|
|
112
|
+
* ⚠️ `\bmono\b`, not `/mono/`. The loose form matches **Monotype Corsiva**, a
|
|
113
|
+
* script face about as far from monospaced as a font gets.
|
|
114
|
+
*/
|
|
115
|
+
export declare function isMonospaceFamily(family: string): boolean;
|
|
101
116
|
export declare function addNotice(doc: RichDoc, message: string, severity?: DocNotice['severity']): void;
|
|
102
117
|
/**
|
|
103
118
|
* A grid, kept alongside `RichDoc` rather than inside it.
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAkBA,oEAAoE;AACpE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js
CHANGED
|
@@ -113,6 +113,23 @@ export function tidy(doc) {
|
|
|
113
113
|
function isSpacer(block) {
|
|
114
114
|
return block.kind === 'paragraph' && !runsToText(block.runs).trim();
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Does this font family name a monospaced face?
|
|
118
|
+
*
|
|
119
|
+
* Word and OpenDocument both mark a code sample by simply SWITCHING FONT —
|
|
120
|
+
* there is no "this is code" property to read — so recognising the family is
|
|
121
|
+
* the only way to keep an ASCII diagram monospaced on the way out. Shared
|
|
122
|
+
* because `read/odt.ts` had this test and `read/docx.ts` did not, which is why
|
|
123
|
+
* the same diagram survived an .odt and came out of a .docx in Helvetica with
|
|
124
|
+
* its columns no longer lining up.
|
|
125
|
+
*
|
|
126
|
+
* ⚠️ `\bmono\b`, not `/mono/`. The loose form matches **Monotype Corsiva**, a
|
|
127
|
+
* script face about as far from monospaced as a font gets.
|
|
128
|
+
*/
|
|
129
|
+
export function isMonospaceFamily(family) {
|
|
130
|
+
return /\bmono\b|monospace|courier|consolas|menlo|monaco|cascadia|inconsolata|typewriter|console/i
|
|
131
|
+
.test(family);
|
|
132
|
+
}
|
|
116
133
|
export function addNotice(doc, message, severity = 'loss') {
|
|
117
134
|
if (doc.notices.some((n) => n.message === message))
|
|
118
135
|
return;
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qDAAqD;AACrD,EAAE;AACF,2CAA2C;AAC3C,2CAA2C;AAC3C,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/pdfcore.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FontId } from './metrics.js';
|
|
2
|
+
import type { EmbeddableFont } from './truetype.js';
|
|
2
3
|
export type { FontId };
|
|
3
4
|
export interface Rgb {
|
|
4
5
|
r: number;
|
|
@@ -16,6 +17,20 @@ export interface EncodeReport {
|
|
|
16
17
|
/** Distinct characters that could not be written at all. */
|
|
17
18
|
dropped: Set<string>;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* The one embedded face, and the glyphs the document has actually asked it for.
|
|
22
|
+
*
|
|
23
|
+
* Shared by reference between the document and every page it opens, because the
|
|
24
|
+
* font objects are written ONCE at save time and have to know the full set —
|
|
25
|
+
* `/W` and `/ToUnicode` are per-document, and a page cannot know what page four
|
|
26
|
+
* used. The alternative, walking every page's ops back at save time, means
|
|
27
|
+
* parsing the content streams we just wrote.
|
|
28
|
+
*/
|
|
29
|
+
export interface EmbedState {
|
|
30
|
+
font?: EmbeddableFont;
|
|
31
|
+
/** Glyph id → the text it spells. Feeds `/W` and `/ToUnicode`. */
|
|
32
|
+
used: Map<number, string>;
|
|
33
|
+
}
|
|
19
34
|
/**
|
|
20
35
|
* A JS string as WinAnsi bytes.
|
|
21
36
|
*
|
|
@@ -24,8 +39,22 @@ export interface EncodeReport {
|
|
|
24
39
|
* it themselves halfway down page four.
|
|
25
40
|
*/
|
|
26
41
|
export declare function toWinAnsi(text: string, report?: EncodeReport): number[];
|
|
27
|
-
/**
|
|
28
|
-
|
|
42
|
+
/**
|
|
43
|
+
* The characters in `text` that WinAnsi cannot write.
|
|
44
|
+
*
|
|
45
|
+
* Empty means the base-14 fonts can spell the whole string, and no font needs
|
|
46
|
+
* to be fetched or embedded. This is what lets an English document pay nothing
|
|
47
|
+
* for a feature it does not use — the loader is never even called.
|
|
48
|
+
*/
|
|
49
|
+
export declare function unspellable(text: string): Set<string>;
|
|
50
|
+
/**
|
|
51
|
+
* The width of a string at a given size, in points.
|
|
52
|
+
*
|
|
53
|
+
* `embedded` must be the SAME face the page will draw with, or the line-breaker
|
|
54
|
+
* and the content stream disagree. Callers that never embed one pass nothing
|
|
55
|
+
* and get exactly the behaviour they had.
|
|
56
|
+
*/
|
|
57
|
+
export declare function widthOfText(font: FontId, text: string, size: number, embedded?: EmbeddableFont): number;
|
|
29
58
|
interface LinkAnnot {
|
|
30
59
|
rect: [number, number, number, number];
|
|
31
60
|
url: string;
|
|
@@ -46,8 +75,10 @@ export declare class PdfPage {
|
|
|
46
75
|
private links;
|
|
47
76
|
/** Fonts actually used, so a page's /Resources only names what it draws. */
|
|
48
77
|
private usedFonts;
|
|
78
|
+
private usesEmbedded;
|
|
49
79
|
private report?;
|
|
50
|
-
|
|
80
|
+
private embed?;
|
|
81
|
+
constructor(width: number, height: number, report?: EncodeReport, embed?: EmbedState);
|
|
51
82
|
/**
|
|
52
83
|
* Change this page's paper size. See the note on `width`/`height` above:
|
|
53
84
|
* valid only before anything is drawn.
|
|
@@ -92,6 +123,7 @@ export declare class PdfPage {
|
|
|
92
123
|
images: PdfImage[];
|
|
93
124
|
links: LinkAnnot[];
|
|
94
125
|
fonts: FontId[];
|
|
126
|
+
embedded: boolean;
|
|
95
127
|
};
|
|
96
128
|
}
|
|
97
129
|
export interface PdfMeta {
|
|
@@ -104,6 +136,16 @@ export declare class PdfDocument {
|
|
|
104
136
|
private pages;
|
|
105
137
|
/** Collected across every page, so the UI can report it once at the end. */
|
|
106
138
|
readonly report: EncodeReport;
|
|
139
|
+
private readonly embed;
|
|
140
|
+
/**
|
|
141
|
+
* Offer a face for everything WinAnsi cannot spell.
|
|
142
|
+
*
|
|
143
|
+
* Optional on purpose, and the whole document works without one — this is the
|
|
144
|
+
* difference between a Cyrillic paragraph and a row of '?', not between a PDF
|
|
145
|
+
* and no PDF. Must be set BEFORE anything is drawn, because a page splits its
|
|
146
|
+
* text between the two fonts as it draws.
|
|
147
|
+
*/
|
|
148
|
+
embedFallbackFont(font: EmbeddableFont): void;
|
|
107
149
|
addPage(width: number, height: number): PdfPage;
|
|
108
150
|
get pageCount(): number;
|
|
109
151
|
/**
|
package/dist/pdfcore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfcore.d.ts","sourceRoot":"","sources":["../src/pdfcore.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"pdfcore.d.ts","sourceRoot":"","sources":["../src/pdfcore.ts"],"names":[],"mappings":"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"}
|