Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix alternative schemes placement #228

Merged
merged 11 commits into from
Oct 4, 2023
3 changes: 2 additions & 1 deletion src/PaymentPart/Output/AbstractOutput.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Sprain\SwissQrBill\PaymentPart\Output;

use Sprain\SwissQrBill\DataGroup\Element\PaymentReference;
use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Text;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Title;
Expand Down Expand Up @@ -157,7 +158,7 @@ protected function getFurtherInformationElements(): array
foreach ($this->qrBill->getAlternativeSchemes() as $alternativeScheme) {
$furtherInformationLines[] = $alternativeScheme->getParameter();
}
$furtherInformationElements[] = Text::create(implode("\n", $furtherInformationLines));
$furtherInformationElements[] = FurtherInformation::create(implode("\n", $furtherInformationLines));

return $furtherInformationElements;
}
Expand Down
24 changes: 24 additions & 0 deletions src/PaymentPart/Output/Element/FurtherInformation.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php declare(strict_types=1);

namespace Sprain\SwissQrBill\PaymentPart\Output\Element;

/**
* @internal
*/
final class FurtherInformation implements OutputElementInterface
{
private string $furtherInformation;

public static function create(string $furtherInformation): self
{
$element = new self();
$element->furtherInformation = $furtherInformation;

return $element;
}

public function getText(): string
{
return $this->furtherInformation;
}
}
38 changes: 29 additions & 9 deletions src/PaymentPart/Output/FpdfOutput/FpdfOutput.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use setasign\Fpdi\Fpdi;
use Sprain\SwissQrBill\Exception\InvalidFpdfImageFormat;
use Sprain\SwissQrBill\PaymentPart\Output\AbstractOutput;
use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation;
use Sprain\SwissQrBill\PaymentPart\Output\Element\OutputElementInterface;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Text;
Expand Down Expand Up @@ -100,7 +101,7 @@ private function addSwissQrCodeImage(): void
$yPosQrCode = 209.5 + $this->offsetY;
$xPosQrCode = 67 + $this->offsetX;

if ((bool)ini_get('allow_url_fopen')) {
if (ini_get('allow_url_fopen')) {
$this->fpdf->Image(
$qrCode->getDataUri($this->getQrCodeImageFormat()),
$xPosQrCode,
Expand Down Expand Up @@ -212,11 +213,10 @@ private function addAmountContent(): void
private function addFurtherInformationContent(): void
{
$this->SetXY(self::RIGHT_PART_X, 286);
$this->fpdf->SetFont(self::FONT, '', self::FONT_SIZE_FURTHER_INFORMATION);

foreach ($this->getFurtherInformationElements() as $furtherInformationElement) {
$this->setX(self::RIGHT_PART_X);
$this->setContentElement($furtherInformationElement, true);
$this->setContentElement($furtherInformationElement, false);
}
}

Expand All @@ -234,6 +234,10 @@ private function addSeparatorContentIfNotPrintable(): void

private function setContentElement(OutputElementInterface $element, bool $isReceiptPart): void
{
if ($element instanceof FurtherInformation) {
$this->setFurtherInformationElement($element);
}

if ($element instanceof Title) {
$this->setTitleElement($element, $isReceiptPart);
}
Expand All @@ -250,11 +254,15 @@ private function setContentElement(OutputElementInterface $element, bool $isRece
private function setTitleElement(Title $element, bool $isReceiptPart): void
{
$this->fpdf->SetFont(self::FONT, 'B', $isReceiptPart ? self::FONT_SIZE_TITLE_RECEIPT : self::FONT_SIZE_TITLE_PAYMENT_PART);
$this->fpdf->MultiCell(0, 2.8, iconv(
'UTF-8',
'windows-1252',
Translation::get(str_replace("text.", "", $element->getTitle()), $this->language)
));
$this->fpdf->MultiCell(
0,
2.8,
iconv(
'UTF-8',
'windows-1252',
Translation::get(str_replace('text.', '', $element->getTitle()), $this->language)
)
);
$this->fpdf->Ln($this->amountLS);
}

Expand All @@ -264,13 +272,25 @@ private function setTextElement(Text $element, bool $isReceiptPart): void
$this->fpdf->MultiCell(
$isReceiptPart ? 54 : 0,
$isReceiptPart ? 3.3 : 4,
str_replace("text.", "", iconv('UTF-8', 'windows-1252', $element->getText())),
str_replace('text.', '', iconv('UTF-8', 'windows-1252', $element->getText())),
self::BORDER,
self::ALIGN_LEFT
);
$this->fpdf->Ln($isReceiptPart ? self::LINE_SPACING_RECEIPT : self::LINE_SPACING_PAYMENT_PART);
}

private function setFurtherInformationElement(FurtherInformation $element): void
{
$this->fpdf->SetFont(self::FONT, '', self::FONT_SIZE_FURTHER_INFORMATION);
$this->fpdf->MultiCell(
0,
4,
iconv('UTF-8', 'windows-1252', $element->getText()),
self::BORDER,
self::ALIGN_LEFT
);
}

private function setPlaceholderElement(Placeholder $element): void
{
$type = $element->getType();
Expand Down
13 changes: 12 additions & 1 deletion src/PaymentPart/Output/HtmlOutput/HtmlOutput.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
namespace Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput;

use Sprain\SwissQrBill\PaymentPart\Output\AbstractOutput;
use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Text;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Title;
use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\Template\FurtherInformationElementTemplate;
use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\Template\PlaceholderElementTemplate;
use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\Template\PrintableStylesTemplate;
use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\Template\TextElementTemplate;
Expand Down Expand Up @@ -133,11 +135,12 @@ private function hideSeparatorContentIfPrintable(string $paymentPart): string
return $paymentPart;
}

private function getContentElement(Title|Text|Placeholder $element): string
private function getContentElement(FurtherInformation|Title|Text|Placeholder $element): string
{
# https://github.com/phpstan/phpstan/issues/4451
# @phpstan-ignore-next-line
return match (get_class($element)) {
FurtherInformation::class => $this->getFurtherInformationElement($element),
Title::class => $this->getTitleElement($element),
Text::class => $this->getTextElement($element),
Placeholder::class => $this->getPlaceholderElement($element)
Expand All @@ -160,6 +163,14 @@ private function getTextElement(Text $element): string
return $elementString;
}

private function getFurtherInformationElement(FurtherInformation $element): string
{
$elementTemplate = FurtherInformationElementTemplate::TEMPLATE;
$elementString = str_replace('{{ text }}', nl2br($element->getText()), $elementTemplate);

return $elementString;
}

private function getPlaceholderElement(Placeholder $element): string
{
$elementTemplate = PlaceholderElementTemplate::TEMPLATE;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\Template;

class FurtherInformationElementTemplate
{
public const TEMPLATE = <<<EOT
<p>{{ text }}</p>
EOT;
}
41 changes: 28 additions & 13 deletions src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use setasign\Fpdi\Tcpdf\Fpdi;
use Sprain\SwissQrBill\PaymentPart\Output\AbstractOutput;
use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation;
use Sprain\SwissQrBill\PaymentPart\Output\Element\OutputElementInterface;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder;
use Sprain\SwissQrBill\PaymentPart\Output\Element\Text;
Expand All @@ -29,6 +30,7 @@ final class TcPdfOutput extends AbstractOutput implements OutputInterface
private const RIGHT_CELL_HEIGHT_RATIO_COMMON = 1.1;
private const LEFT_CELL_HEIGHT_RATIO_CURRENCY_AMOUNT = 1.5;
private const RIGHT_CELL_HEIGHT_RATIO_CURRENCY_AMOUNT = 1.5;
private const FURTHER_INFORMATION_CELL_HEIGHT_RATIO_COMMON = 1.5;

// Positioning
private const CURRENCY_AMOUNT_Y = 259;
Expand Down Expand Up @@ -95,15 +97,15 @@ private function addSwissQrCodeImage(): void
$qrCode = $this->getQrCode();

$method = match ($this->getQrCodeImageFormat()) {
QrCode::FILE_FORMAT_SVG => "ImageSVG",
default => "Image",
QrCode::FILE_FORMAT_SVG => 'ImageSVG',
default => 'Image',
};

$yPosQrCode = 209.5 + $this->offsetY;
$xPosQrCode = self::RIGHT_PART_X + 1 + $this->offsetX;

$img = $qrCode->getAsString($this->getQrCodeImageFormat());
$this->tcPdf->$method("@".$img, $xPosQrCode, $yPosQrCode, 46, 46);
$this->tcPdf->$method('@'.$img, $xPosQrCode, $yPosQrCode, 46, 46);
}

private function addInformationContentReceipt(): void
Expand Down Expand Up @@ -201,13 +203,12 @@ private function addAmountContent(): void
private function addFurtherInformationContent(): void
{
$x = self::RIGHT_PART_X;
$this->tcPdf->setCellHeightRatio(self::RIGHT_CELL_HEIGHT_RATIO_COMMON);
$this->tcPdf->setCellHeightRatio(self::FURTHER_INFORMATION_CELL_HEIGHT_RATIO_COMMON);
$this->setY(286);
$this->tcPdf->SetFont(self::FONT, '', self::FONT_SIZE_FURTHER_INFORMATION);

foreach ($this->getFurtherInformationElements() as $furtherInformationElement) {
$this->setX($x);
$this->setContentElement($furtherInformationElement, true);
$this->setContentElement($furtherInformationElement, false);
}
}

Expand All @@ -226,6 +227,10 @@ private function addSeparatorContentIfNotPrintable(): void

private function setContentElement(OutputElementInterface $element, bool $isReceiptPart): void
{
if ($element instanceof FurtherInformation) {
$this->setFurtherInformationElement($element);
}

if ($element instanceof Title) {
$this->setTitleElement($element, $isReceiptPart);
}
Expand All @@ -247,7 +252,7 @@ private function setTitleElement(Title $element, bool $isReceiptPart): void
$isReceiptPart ? self::FONT_SIZE_TITLE_RECEIPT : self::FONT_SIZE_TITLE_PAYMENT_PART
);
$this->printCell(
Translation::get(str_replace("text.", "", $element->getTitle()), $this->language),
Translation::get(str_replace('text.', '', $element->getTitle()), $this->language),
0,
0,
self::ALIGN_BELOW
Expand All @@ -263,15 +268,26 @@ private function setTextElement(Text $element, bool $isReceiptPart): void
);

$this->printMultiCell(
str_replace("text.", "", $element->getText()),
str_replace('text.', '', $element->getText()),
$isReceiptPart ? 54 : 0,
0,
self::ALIGN_BELOW,
self::ALIGN_LEFT
self::ALIGN_BELOW
);

$this->tcPdf->Ln($isReceiptPart ? self::LINE_SPACING_RECEIPT : self::LINE_SPACING_PAYMENT_PART);
}

private function setFurtherInformationElement(FurtherInformation $element): void
{
$this->tcPdf->SetFont(self::FONT, '', self::FONT_SIZE_FURTHER_INFORMATION);
$this->printMultiCell(
iconv('UTF-8', 'windows-1252', $element->getText()),
0,
0,
self::BORDER
);
}

private function setPlaceholderElement(Placeholder $element): void
{
$type = $element->getType();
Expand Down Expand Up @@ -325,10 +341,9 @@ private function printMultiCell(
string $text,
int $w = 0,
int $h = 0,
int $nextLineAlign = 0,
string $textAlign = self::ALIGN_LEFT
int $nextLineAlign = 0
): void {
$this->tcPdf->MultiCell($w, $h, $text, self::BORDER, $textAlign, false, $nextLineAlign);
$this->tcPdf->MultiCell($w, $h, $text, self::BORDER, self::ALIGN_LEFT, false, $nextLineAlign);
}

private function printLine(int $x1, int $y1, int $x2, int $y2): void
Expand Down
12 changes: 6 additions & 6 deletions tests/QrBillTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ public function testAlternativeSchemesCanBeSetAtOnce()
]);

$qrBill->setAlternativeSchemes([
AlternativeScheme::create('foo'),
AlternativeScheme::create('foo')
AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9'),
AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9')
]);

$this->assertSame(
Expand Down Expand Up @@ -214,7 +214,7 @@ public function testAlternativeSchemesMustBeValid()
'paymentReferenceQr',
]);

$qrBill->addAlternativeScheme(AlternativeScheme::create('foo'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9'));
$qrBill->addAlternativeScheme(AlternativeScheme::create(''));

$this->assertFalse($qrBill->isValid());
Expand All @@ -230,9 +230,9 @@ public function testMaximumTwoAlternativeSchemesAreAllowed()
'paymentReferenceQr'
]);

$qrBill->addAlternativeScheme(AlternativeScheme::create('foo'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('foo'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('foo'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9'));
$qrBill->addAlternativeScheme(AlternativeScheme::create('CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9'));

$this->assertFalse($qrBill->isValid());
}
Expand Down
Binary file modified tests/TestData/FpdfOutput/qr-additional-information.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-additional-information.print.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-alternative-schemes.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-alternative-schemes.print.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-full-set.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-full-set.print.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-international-ultimate-debtor.pdf
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-minimal-setup.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-minimal-setup.print.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-payment-reference-non.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-payment-reference-non.print.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-payment-reference-scor.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-payment-reference-scor.print.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-ultimate-debtor.pdf
Binary file not shown.
Binary file modified tests/TestData/FpdfOutput/qr-ultimate-debtor.print.pdf
Binary file not shown.
6 changes: 3 additions & 3 deletions tests/TestData/HtmlOutput/qr-alternative-schemes.svg.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions tests/TestData/HtmlOutput/qr-full-set.svg.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions tests/TestData/HtmlOutput/qr-full-set.svg.print.html

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions tests/TestData/QrCodes/TestDataTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ public function testQrFile(string $file, string $hash): void
public function qrFileProvider(): array
{
return [
[__DIR__ . '/qr-additional-information.png', 'c690b3c552cb31057a34d1bbe1e3a158'],
[__DIR__ . '/qr-alternative-schemes.png', 'ca22587f45609486ec9128f8bfb9ef83'],
[__DIR__ . '/qr-full-set.png', 'ae3aa21373bb4b6ad61a8df96995f06b'],
[__DIR__ . '/qr-international-ultimate-debtor.png', '3178b54237dbbf43df99ea98bba82aaa'],
[__DIR__ . '/qr-minimal-setup.png', '246e856c5c75e92ad9e70298e870d957'],
[__DIR__ . '/qr-additional-information.png', '5089db74d380d6ece97d02c86cb35e2d'],
[__DIR__ . '/qr-alternative-schemes.png', 'd34aeb0d10da0663a5dfd9df54503e71'],
[__DIR__ . '/qr-full-set.png', 'b52be79babcc58485ee68fb4f722657c'],
[__DIR__ . '/qr-international-ultimate-debtor.png', 'c56676e8c98f3ba54fac959c450a0995'],
[__DIR__ . '/qr-minimal-setup.png', '72911d0c7d23298aeb14e4960204d6e0'],
[__DIR__ . '/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor.png', 'c347c35996eee781942ee2fa35da0a88'],
[__DIR__ . '/qr-payment-information-without-amount-and-long-addresses.png', 'c5d23d3fe94aeed310bdf3b9349ce2f9'],
[__DIR__ . '/qr-payment-information-without-amount.png', 'd21e7106158945a52c7b2be00fbd5369'],
[__DIR__ . '/qr-payment-information-without-amount-but-debtor.png', '67b382fdaa8cd69eb328862d8393fb9f'],
[__DIR__ . '/qr-payment-information-zero-amount.png', '66c1373bac50b98705d94b33462a72c6'],
[__DIR__ . '/qr-payment-reference-non.png', '5843f882b1883f8202c43c17fa07ae86'],
[__DIR__ . '/qr-payment-reference-scor.png', '4ef959e7b428650ec4198491a6d91f1c'],
[__DIR__ . '/qr-ultimate-debtor.png', '9d1d257c2b65d9d04d4d7a20ced6ef1a'],
[__DIR__ . '/qr-payment-information-without-amount.png', '1da10251b49d72aa48c35207f54d4f1e'],
[__DIR__ . '/qr-payment-information-without-amount-but-debtor.png', '7f0276efa720448229a0cbeccc2aa805'],
[__DIR__ . '/qr-payment-information-zero-amount.png', 'd779c23775b755e7d193b22e93b51ed4'],
[__DIR__ . '/qr-payment-reference-non.png', '176a87b6743ebb3b4d15e9d85937780a'],
[__DIR__ . '/qr-payment-reference-scor.png', '7abd60316b137fa472165faff8e4a28c'],
[__DIR__ . '/qr-ultimate-debtor.png', 'ed279b73f429a8d9960b8dcb94c2c429'],

[__DIR__ . '/proof-of-validation.png', '5089538f592679b5cd69130b7f16fe24'],
[__DIR__ . '/proof-of-validation.png', 'a50bc5625703d22da79b46880ff3aef4'],
];
}
}
Binary file modified tests/TestData/QrCodes/proof-of-validation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-additional-information.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-alternative-schemes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions tests/TestData/QrCodes/qr-alternative-schemes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ QRR
123456789012345678901234567

EPD
foo
foo
CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
Binary file modified tests/TestData/QrCodes/qr-full-set.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions tests/TestData/QrCodes/qr-full-set.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ QRR
Invoice 1234568 Gardening work
EPD
Bill Information
foo
foo
CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
Binary file modified tests/TestData/QrCodes/qr-international-ultimate-debtor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-minimal-setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-payment-information-without-amount.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-payment-information-zero-amount.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-payment-reference-non.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-payment-reference-scor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/QrCodes/qr-ultimate-debtor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/TestData/TcPdfOutput/qr-additional-information.svg.pdf
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-alternative-schemes.svg.pdf
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-alternative-schemes.svg.print.pdf
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-full-set.svg.pdf
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-full-set.svg.print.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-minimal-setup.svg.pdf
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-minimal-setup.svg.print.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-payment-reference-non.svg.pdf
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-payment-reference-scor.svg.pdf
Binary file not shown.
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-ultimate-debtor.svg.pdf
Binary file not shown.
Binary file modified tests/TestData/TcPdfOutput/qr-ultimate-debtor.svg.print.pdf
Binary file not shown.
Loading