use custom fonts in mpdf via twig template (#3509)

This commit is contained in:
Alexander Pankow
2022-09-04 00:58:54 +02:00
committed by GitHub
parent 3f4f63dc33
commit a04b72e866
8 changed files with 104 additions and 11 deletions

View File

@@ -11,6 +11,7 @@ namespace App\Tests\Export\Renderer;
use App\Export\Renderer\PDFRenderer;
use App\Project\ProjectStatisticService;
use App\Tests\Mocks\FileHelperFactory;
use App\Utils\HtmlToPdfConverter;
use App\Utils\MPdfConverter;
use Symfony\Component\HttpFoundation\Request;
@@ -49,7 +50,7 @@ class PdfRendererTest extends AbstractRendererTest
$twig = $kernel->getContainer()->get('twig');
$stack = $kernel->getContainer()->get('request_stack');
$cacheDir = $kernel->getContainer()->getParameter('kernel.cache_dir');
$converter = new MPdfConverter($cacheDir);
$converter = new MPdfConverter((new FileHelperFactory($this))->create(), $cacheDir);
$request = new Request();
$request->setLocale('en');
$stack->push($request);

View File

@@ -11,6 +11,7 @@ namespace App\Tests\Export\Timesheet;
use App\Export\Timesheet\PDFRenderer;
use App\Project\ProjectStatisticService;
use App\Tests\Mocks\FileHelperFactory;
use App\Utils\HtmlToPdfConverter;
use App\Utils\MPdfConverter;
use Symfony\Component\HttpFoundation\Request;
@@ -42,7 +43,7 @@ class PdfRendererTest extends AbstractRendererTest
$twig = $kernel->getContainer()->get('twig');
$stack = $kernel->getContainer()->get('request_stack');
$cacheDir = $kernel->getContainer()->getParameter('kernel.cache_dir');
$converter = new MPdfConverter($cacheDir);
$converter = new MPdfConverter((new FileHelperFactory($this))->create(), $cacheDir);
$request = new Request();
$request->setLocale('en');
$stack->push($request);

View File

@@ -10,6 +10,7 @@
namespace App\Tests\Invoice\Renderer;
use App\Invoice\Renderer\PdfRenderer;
use App\Tests\Mocks\FileHelperFactory;
use App\Utils\MPdfConverter;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\HttpFoundation\Request;
@@ -56,7 +57,7 @@ class PdfRendererTest extends KernelTestCase
$loader = $twig->getLoader();
$loader->addPath(__DIR__ . '/../templates/', 'invoice');
$sut = new PdfRenderer($twig, new MPdfConverter($cacheDir));
$sut = new PdfRenderer($twig, new MPdfConverter((new FileHelperFactory($this))->create(), $cacheDir));
$model = $this->getInvoiceModel();
$document = $this->getInvoiceDocument('default.pdf.twig', true);

View File

@@ -0,0 +1,22 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Tests\Mocks;
use App\Utils\FileHelper;
class FileHelperFactory extends AbstractMockFactory
{
public function create(): FileHelper
{
$data = realpath(__DIR__ . '/../../var/data/');
return new FileHelper($data);
}
}

View File

@@ -9,6 +9,7 @@
namespace App\Tests\Utils;
use App\Tests\Mocks\FileHelperFactory;
use App\Utils\MPdfConverter;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
@@ -28,7 +29,7 @@ class MPdfConverterTest extends KernelTestCase
$kernel = self::bootKernel();
$cacheDir = $kernel->getContainer()->getParameter('kernel.cache_dir');
$sut = new MPdfConverter($cacheDir);
$sut = new MPdfConverter((new FileHelperFactory($this))->create(), $cacheDir);
$result = $sut->convertToPdf('<h1>Test</h1>');
// Yeah, thats not a real test, I know ;-)
$this->assertNotEmpty($result);