mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
XFA -- Load fonts permanently from the pdf
- Different fonts can be used in xfa and some of them are embedded in the pdf. - Load all the fonts in window.document. Update src/core/document.js Co-authored-by: Jonas Jenwald <jonas.jenwald@gmail.com> Update src/core/worker.js Co-authored-by: Jonas Jenwald <jonas.jenwald@gmail.com>
This commit is contained in:
parent
6cf3070008
commit
7e9579045f
8 changed files with 318 additions and 21 deletions
|
@ -370,7 +370,22 @@ class FontFaceObject {
|
|||
if (!this.data || this.disableFontFace) {
|
||||
return null;
|
||||
}
|
||||
const nativeFontFace = new FontFace(this.loadedName, this.data, {});
|
||||
let nativeFontFace;
|
||||
if (!this.cssFontInfo) {
|
||||
nativeFontFace = new FontFace(this.loadedName, this.data, {});
|
||||
} else {
|
||||
const css = {
|
||||
weight: this.cssFontInfo.fontWeight,
|
||||
};
|
||||
if (this.cssFontInfo.italicAngle) {
|
||||
css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;
|
||||
}
|
||||
nativeFontFace = new FontFace(
|
||||
this.cssFontInfo.fontFamily,
|
||||
this.data,
|
||||
css
|
||||
);
|
||||
}
|
||||
|
||||
if (this.fontRegistry) {
|
||||
this.fontRegistry.registerFont(this);
|
||||
|
@ -385,7 +400,16 @@ class FontFaceObject {
|
|||
const data = bytesToString(new Uint8Array(this.data));
|
||||
// Add the @font-face rule to the document.
|
||||
const url = `url(data:${this.mimetype};base64,${btoa(data)});`;
|
||||
const rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
|
||||
let rule;
|
||||
if (!this.cssFontInfo) {
|
||||
rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
|
||||
} else {
|
||||
let css = `font-weight: ${this.cssFontInfo.fontWeight};`;
|
||||
if (this.cssFontInfo.italicAngle) {
|
||||
css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;
|
||||
}
|
||||
rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`;
|
||||
}
|
||||
|
||||
if (this.fontRegistry) {
|
||||
this.fontRegistry.registerFont(this, url);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue