Warn when pdf.js can't load an OS font
This commit is contained in:
parent
95ab2b8b17
commit
385f275ad9
@ -451,6 +451,7 @@ function getFontSubstitution(
|
|||||||
css: loadedName,
|
css: loadedName,
|
||||||
guessFallback: true,
|
guessFallback: true,
|
||||||
loadedName,
|
loadedName,
|
||||||
|
baseFontName,
|
||||||
src: `local(${baseFontName})`,
|
src: `local(${baseFontName})`,
|
||||||
style,
|
style,
|
||||||
};
|
};
|
||||||
@ -470,6 +471,7 @@ function getFontSubstitution(
|
|||||||
css: `${loadedName},${ultimate}`,
|
css: `${loadedName},${ultimate}`,
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
loadedName,
|
loadedName,
|
||||||
|
baseFontName,
|
||||||
src: src.join(","),
|
src: src.join(","),
|
||||||
style,
|
style,
|
||||||
};
|
};
|
||||||
|
@ -97,17 +97,10 @@ class FontLoader {
|
|||||||
await fontFace.load();
|
await fontFace.load();
|
||||||
this.#systemFonts.add(loadedName);
|
this.#systemFonts.add(loadedName);
|
||||||
} catch {
|
} catch {
|
||||||
if (info.guessFallback) {
|
warn(
|
||||||
// We're trying to load only one system font.
|
`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`
|
||||||
const match = src.match(/^local\((.*)\)$/);
|
);
|
||||||
warn(
|
|
||||||
`Cannot load system font: ${match?.[1]}, installing it could help to improve PDF rendering.`
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
warn(
|
|
||||||
`Cannot load system font: ${loadedName} for style ${style.style} and weight ${style.weight}.`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
this.removeNativeFontFace(fontFace);
|
this.removeNativeFontFace(fontFace);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -32,6 +32,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: true,
|
guessFallback: true,
|
||||||
|
baseFontName: "Foo",
|
||||||
src: "local(Foo)",
|
src: "local(Foo)",
|
||||||
style: {
|
style: {
|
||||||
style: "normal",
|
style: "normal",
|
||||||
@ -54,6 +55,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: true,
|
guessFallback: true,
|
||||||
|
baseFontName: "Foo-Bold",
|
||||||
src: "local(Foo-Bold)",
|
src: "local(Foo-Bold)",
|
||||||
style: {
|
style: {
|
||||||
style: "normal",
|
style: "normal",
|
||||||
@ -76,6 +78,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: true,
|
guessFallback: true,
|
||||||
|
baseFontName: "Foo-Italic",
|
||||||
src: "local(Foo-Italic)",
|
src: "local(Foo-Italic)",
|
||||||
style: {
|
style: {
|
||||||
style: "italic",
|
style: "italic",
|
||||||
@ -98,6 +101,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: true,
|
guessFallback: true,
|
||||||
|
baseFontName: "Foo-BoldItalic",
|
||||||
src: "local(Foo-BoldItalic)",
|
src: "local(Foo-BoldItalic)",
|
||||||
style: {
|
style: {
|
||||||
style: "italic",
|
style: "italic",
|
||||||
@ -120,6 +124,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Foo",
|
||||||
src:
|
src:
|
||||||
"local(Foo),local(Helvetica),local(Helvetica Neue)," +
|
"local(Foo),local(Helvetica),local(Helvetica Neue)," +
|
||||||
"local(Arial),local(Arial Nova),local(Liberation Sans)," +
|
"local(Arial),local(Arial Nova),local(Liberation Sans)," +
|
||||||
@ -150,6 +155,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Foo-Italic",
|
||||||
src:
|
src:
|
||||||
"local(Foo-Italic),local(Helvetica Italic)," +
|
"local(Foo-Italic),local(Helvetica Italic)," +
|
||||||
"local(Helvetica Neue Italic),local(Arial Italic)," +
|
"local(Helvetica Neue Italic),local(Arial Italic)," +
|
||||||
@ -182,6 +188,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Foo-Bold",
|
||||||
src:
|
src:
|
||||||
"local(Foo-Bold),local(Helvetica Bold),local(Helvetica Neue Bold)," +
|
"local(Foo-Bold),local(Helvetica Bold),local(Helvetica Neue Bold)," +
|
||||||
"local(Arial Bold),local(Arial Nova Bold)," +
|
"local(Arial Bold),local(Arial Nova Bold)," +
|
||||||
@ -213,6 +220,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Foo-BoldItalic",
|
||||||
src:
|
src:
|
||||||
"local(Foo-BoldItalic),local(Helvetica Bold Italic)," +
|
"local(Foo-BoldItalic),local(Helvetica Bold Italic)," +
|
||||||
"local(Helvetica Neue Bold Italic),local(Arial Bold Italic)," +
|
"local(Helvetica Neue Bold Italic),local(Arial Bold Italic)," +
|
||||||
@ -247,6 +255,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Calibri",
|
||||||
src:
|
src:
|
||||||
"local(Calibri),local(Carlito),local(Helvetica)," +
|
"local(Calibri),local(Carlito),local(Helvetica)," +
|
||||||
"local(Helvetica Neue),local(Arial),local(Arial Nova)," +
|
"local(Helvetica Neue),local(Arial),local(Arial Nova)," +
|
||||||
@ -277,6 +286,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "Calibri-Bold",
|
||||||
src:
|
src:
|
||||||
"local(Calibri Bold),local(Carlito Bold),local(Helvetica Bold)," +
|
"local(Calibri Bold),local(Carlito Bold),local(Helvetica Bold)," +
|
||||||
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
||||||
@ -309,6 +319,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "ArialBlack",
|
||||||
src:
|
src:
|
||||||
"local(Arial Black),local(Helvetica Bold)," +
|
"local(Arial Black),local(Helvetica Bold)," +
|
||||||
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
||||||
@ -341,6 +352,7 @@ describe("getFontSubstitution", function () {
|
|||||||
expect(fontSubstitution).toEqual(
|
expect(fontSubstitution).toEqual(
|
||||||
jasmine.objectContaining({
|
jasmine.objectContaining({
|
||||||
guessFallback: false,
|
guessFallback: false,
|
||||||
|
baseFontName: "ArialBlack-Bold",
|
||||||
src:
|
src:
|
||||||
"local(Arial Black),local(Helvetica Bold)," +
|
"local(Arial Black),local(Helvetica Bold)," +
|
||||||
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
"local(Helvetica Neue Bold),local(Arial Bold)," +
|
||||||
|
Loading…
Reference in New Issue
Block a user