mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 10:08:06 +02:00
XFA - Add the possibily to layout and measure text
- some containers doesn't always have their 2 dimensions and those dimensions re based on contents; - so in order to measure text, we must get the glyph widths (for the xfa fonts) before starting the layout; - implement a word-wrap algorithm; - handle font change during text layout.
This commit is contained in:
parent
335d4cb2fc
commit
8eeb7ab4a3
12 changed files with 416 additions and 91 deletions
|
@ -872,6 +872,7 @@ class Font {
|
|||
this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;
|
||||
this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;
|
||||
this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;
|
||||
this.lineHeight = this.ascent - this.descent;
|
||||
this.fontMatrix = properties.fontMatrix;
|
||||
this.bbox = properties.bbox;
|
||||
this.defaultEncoding = properties.defaultEncoding;
|
||||
|
@ -2495,13 +2496,16 @@ class Font {
|
|||
unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),
|
||||
yMax: int16(tables.head.data[42], tables.head.data[43]),
|
||||
yMin: signedInt16(tables.head.data[38], tables.head.data[39]),
|
||||
ascent: int16(tables.hhea.data[4], tables.hhea.data[5]),
|
||||
ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),
|
||||
descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),
|
||||
lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),
|
||||
};
|
||||
|
||||
// PDF FontDescriptor metrics lie -- using data from actual font.
|
||||
this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;
|
||||
this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;
|
||||
this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;
|
||||
this.lineHeight = this.ascent - this.descent + this.lineGap;
|
||||
|
||||
// The 'post' table has glyphs names.
|
||||
if (tables.post) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue