Reputation: 375
Can anyone say how to add custom font with @react-pdf/pdfkit
in react.js?
I tried to use doc.registerFont(path, font_family)
But its showing an error like Unhandled Rejection (Error): fontkit.openSync unavailable for browser build
Can anyone help me? I dont want to render the pdf. Instead I am trying to create and download it. So I cant use react-pdf/renderer
. Thats why I used react-pdf/pdfkit
Upvotes: 13
Views: 30026
Reputation: 336
For some reason, using create react app with typescript kept on giving me issues including it (even as a variable) because it couldn't resolve the type. I ended up resolving it by using a require to include the font.
import { Font } from '@react-pdf/renderer';
export const registerFonts = () => {
Font.register({
family: 'DM Sans', fonts: [
{ src: require('./DMSans/static/DMSans-Regular.ttf'), fontWeight: 'normal' },
{ src: require('./DMSans/static/DMSans-Bold.ttf'), fontWeight: 'bold' },
]
})
Font.register({
family: 'Roboto Slab', fonts: [
{ src: require('./RobotoSlab/static/RobotoSlab-Regular.ttf'), fontWeight: 'normal' },
{ src: require('./RobotoSlab/static/RobotoSlab-Bold.ttf'), fontWeight: 'bold' },
]
});
}
Upvotes: 0
Reputation: 41
This worked for me!
Font.register({
family: 'Roboto',
fonts: [
{
src: '/fonts/Roboto-Regular.ttf',
fontWeight: 400,
},
{
src: '/fonts/Roboto-Bold.ttf',
fontWeight: 700,
}
]
})
const styles = StyleSheet.create({
page: {
fontFamily: 'Roboto',
}
})
Upvotes: 3
Reputation: 602
import FontUbuntuRegular from './styles/pdfFonts/ubuntuRegular.ttf';
import FontUbuntuItalic from '.7styles/pdfFonts/ubuntuItalic.ttf';
import FontUbuntu700 from './styles/pdfFonts/ubuntu700.ttf';
Font.register({
family: 'Ubuntu',
fonts: [
{
src: FontUbuntuRegular,
},
{
src: FontUbuntuItalic,
fontWeight: 'bold',
},
{
src: FontUbuntu700,
fontWeight: 'normal',
fontStyle: 'italic',
},
],
});
2. (RECOMMENDED) EASY, and simple, NO webpack configuration.
I found another way to add the src, it was to look for the Webfont.
Font.register({
family: 'Ubuntu',
fonts: [
{
src: 'https://fonts.gstatic.com/s/questrial/v13/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf',
},
{
src: 'https://fonts.gstatic.com/s/questrial/v13/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf',
fontWeight: 'bold',
},
{
src: 'https://fonts.gstatic.com/s/questrial/v13/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf',
fontWeight: 'normal',
fontStyle: 'italic',
},
],
});
Upvotes: 30