Custom Google fonts do PDF v dotblue/nette-pdf
- cafesk8
- Člen | 103
Zdravím,
vůbec se mi nedaří do PDF vygenerovaného přes dotblue/nette-pdf vložit svůj Google font.
config.neon
mpdf:
templatesDir: %appDir%/presenters/templates/pdf
themes:
standard:
margin:
left: 20
right: 20
top: 20
bottom: 20
size: [148,98]
fonts:
ultra:
R: %appDir%/presenters/templates/pdf/fonts/Ultra.ttf
PDF tvořím takto:
PDFPresenter.php
public function actionTest() {
$pdfko = $this->docFactory->createPdf('standard');
// zkoušel jsem i
// $pdfko = $this->docFactory->createPdf('standard','default.latte',['default_font' => 'ultra']);
$pdfko->getTemplate()->test = 'Text, který bych potřeboval fontem Ultra';
$pdfko->printPdf();
}
app/presenters/templates/pdf/standard/default.latte
<html>
<body>
<p style="font-family: 'ultra';">{$test}</p>
</body>
</html>
Zkoušel jsem font-family nastavovat i přes style.css, který se automaticky do šablony includne. Vše co tam v css napíšu tak funguje, kromě toho custom fontu.
Když zkusím dát font-family na něco odtud tak to funguje vpořádku, když dám
font-family: 'ultra'
, tak se vždy text vypíše základním
fontem. Nesetkali jste se s tím už někdo? Případně doporučit jinou
extension, ale u těch ostatních jsem se trápil s tím že custom fonty
nešly nastavit už vůbec. Zde se to píše i v dokumentaci jak na to, ale
já to za boha nemůžu rozchodit.
Díky
- ali
- Člen | 342
Cast kodu, kde si do MPDF vkladam font awesome, mozna pomuze ;-)
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new Mpdf\Mpdf([
'fontDir' => array_merge($fontDirs, [
__DIR__ . '/../../../../www/webfonts',
]),
'fontdata' => $fontData + [
'fa-regular' => [
'R' => 'fa-regular-400.ttf',
]
],
]);
- cafesk8
- Člen | 103
ali napsal(a):
Cast kodu, kde si do MPDF vkladam font awesome, mozna pomuze ;-)
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults(); $fontData = $defaultFontConfig['fontdata']; $mpdf = new Mpdf\Mpdf([ 'fontDir' => array_merge($fontDirs, [ __DIR__ . '/../../../../www/webfonts', ]), 'fontdata' => $fontData + [ 'fa-regular' => [ 'R' => 'fa-regular-400.ttf', ] ], ]);
Ahoj,
ona ta extension ty custom fonty měla podporovat (a asi i podporuje, jenom se mi to nedaří). Forknul a upravil jsem si tedy samotnou extension a přes custom repository to nahrál jako composer balíček a funguje to.
Díky moc!
- Vojtěch Dobeš
- Gold Partner | 1316
@cafesk8 Ahoj, readme v repozitáři je špatně po upgradu na novější Mpdf.
Je třeba konfig nastavit takto:
mpdf:
templatesDir: %appDir%/presenters/templates/pdf
themes:
standard:
margin:
left: 20
right: 20
top: 20
bottom: 20
size: [148,98]
fonts:
ultra:
R: Ultra.ttf
fontsDirs:
- %appDir%/presenters/templates/pdf/fonts