Skip to content

Commit 25a80eb

Browse files
authored
feat: support bold-italic standard fonts (#1841)
1 parent 434df31 commit 25a80eb

24 files changed

Lines changed: 129 additions & 2471 deletions

.changeset/wild-deers-kiss.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@react-pdf/font': minor
3+
'@react-pdf/layout': minor
4+
'@react-pdf/pdfkit': minor
5+
---
6+
7+
feat: support bold-italic standard fonts

packages/font/src/standard.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ export default [
22
'Courier',
33
'Courier-Bold',
44
'Courier-Oblique',
5+
'Courier-BoldOblique',
56
'Helvetica',
67
'Helvetica-Bold',
78
'Helvetica-Oblique',
9+
'Helvetica-BoldOblique',
810
'Times-Roman',
911
'Times-Bold',
1012
'Times-Italic',
13+
'Times-BoldItalic',
1114
];

packages/layout/src/text/standardFont.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ class StandardFont {
5757
case 'Times-Roman':
5858
case 'Times-Bold':
5959
case 'Times-Italic':
60+
case 'Times-BoldItalic':
6061
return 650;
6162
case 'Courier':
6263
case 'Courier-Bold':
6364
case 'Courier-Oblique':
65+
case 'Courier-BoldOblique':
6466
return 550;
6567
default:
6668
return 690;
@@ -73,10 +75,12 @@ class StandardFont {
7375
case 'Times-Roman':
7476
case 'Times-Bold':
7577
case 'Times-Italic':
78+
case 'Times-BoldItalic':
7679
return 440;
7780
case 'Courier':
7881
case 'Courier-Bold':
7982
case 'Courier-Oblique':
83+
case 'Courier-BoldOblique':
8084
return 390;
8185
default:
8286
return 490;
@@ -89,10 +93,12 @@ class StandardFont {
8993
case 'Times-Roman':
9094
case 'Times-Bold':
9195
case 'Times-Italic':
96+
case 'Times-BoldItalic':
9297
return -220;
9398
case 'Courier':
9499
case 'Courier-Bold':
95100
case 'Courier-Oblique':
101+
case 'Courier-BoldOblique':
96102
return -230;
97103
default:
98104
return -200;

packages/pdfkit/src/font/afm.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ function parse(contents) {
151151
case 'KernPairs':
152152
match = line.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/);
153153
if (match) {
154-
obj.kernPairs[match[1] + '\0' + match[2]] = parseInt(match[3]);
154+
obj.kernPairs[match[1] + match[2]] = parseInt(match[3]);
155155
}
156156
break;
157157
}
@@ -241,7 +241,7 @@ class AFMFont {
241241
}
242242

243243
getKernPair(left, right) {
244-
return this.kernPairs[left + '\0' + right] || 0;
244+
return this.kernPairs[left + right] || 0;
245245
}
246246

247247
advancesForGlyphs(glyphs) {

packages/pdfkit/src/font/data/Courier-Bold.b64.afm

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/pdfkit/src/font/data/Courier-BoldOblique.afm

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Weight Bold
1010
ItalicAngle -12
1111
IsFixedPitch true
1212
CharacterSet ExtendedRoman
13-
FontBBox -57 -250 869 801
13+
FontBBox -57 -250 869 801
1414
UnderlinePosition -100
1515
UnderlineThickness 50
1616
Version 003.000

packages/pdfkit/src/font/data/Courier-BoldOblique.b64.afm

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)