mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-08 20:22:42 +01:00
Page numbering with TCPDF
This commit is contained in:
parent
a7e3d82054
commit
36f8dddc4d
23
app/Utils/Traits/Pdf/PDF.php
Normal file
23
app/Utils/Traits/Pdf/PDF.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utils\Traits\Pdf;
|
||||
|
||||
use setasign\Fpdi\Fpdi;
|
||||
|
||||
class PDF extends FPDI
|
||||
{
|
||||
|
||||
function Footer()
|
||||
{
|
||||
// Position at 1.5 cm from bottom
|
||||
// $this->SetY(-7);
|
||||
// $this->SetX(-50);
|
||||
|
||||
$this->SetXY(0, -5);
|
||||
|
||||
// Arial italic 8
|
||||
$this->SetFont('Arial','I',8);
|
||||
// Page number
|
||||
$this->Cell(0,5, ctrans('texts.page').' '.$this->PageNo().'/{nb}',0,0,'C');
|
||||
}
|
||||
}
|
@ -14,6 +14,7 @@ namespace App\Utils\Traits\Pdf;
|
||||
|
||||
use App\Exceptions\InternalPDFFailure;
|
||||
use Beganovich\Snappdf\Snappdf;
|
||||
use setasign\Fpdi\PdfParser\StreamReader;
|
||||
|
||||
trait PdfMaker
|
||||
{
|
||||
@ -43,6 +44,32 @@ trait PdfMaker
|
||||
->setHtml($html)
|
||||
->generate();
|
||||
|
||||
|
||||
// initiate PDF
|
||||
$pdf = new PDF();
|
||||
|
||||
// set the source file
|
||||
// $pageCount = $pdf->setSourceFile("file-1.pdf");
|
||||
$pageCount = $pdf->setSourceFile(StreamReader::createByString($generated));
|
||||
|
||||
$pdf->AliasNbPages();
|
||||
for ($i=1; $i <= $pageCount; $i++) {
|
||||
//import a page then get the id and will be used in the template
|
||||
$tplId = $pdf->importPage($i);
|
||||
//create a page
|
||||
|
||||
$templateSize = $pdf->getTemplateSize($tplId);
|
||||
$pdf->AddPage('', [$templateSize['width'], $templateSize['height']]);
|
||||
|
||||
// $pdf->AddPage();
|
||||
//use the template of the imporated page
|
||||
$pdf->useTemplate($tplId);
|
||||
}
|
||||
|
||||
|
||||
$generated = $pdf->Output();
|
||||
|
||||
|
||||
if($generated)
|
||||
return $generated;
|
||||
|
||||
|
@ -74,6 +74,8 @@
|
||||
"predis/predis": "^1.1",
|
||||
"razorpay/razorpay": "2.*",
|
||||
"sentry/sentry-laravel": "^2",
|
||||
"setasign/fpdf": "^1.8",
|
||||
"setasign/fpdi": "^2.3",
|
||||
"square/square": "13.0.0.20210721",
|
||||
"stripe/stripe-php": "^7.50",
|
||||
"symfony/http-client": "^5.2",
|
||||
@ -148,4 +150,4 @@
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
}
|
||||
|
120
composer.lock
generated
120
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "9bc9b45c0c0864b0f16869ba0870fde5",
|
||||
"content-hash": "7b3f79c9cba4d88565a17f269a2184a2",
|
||||
"packages": [
|
||||
{
|
||||
"name": "afosto/yaac",
|
||||
@ -7831,6 +7831,124 @@
|
||||
],
|
||||
"time": "2022-04-05T10:05:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "setasign/fpdf",
|
||||
"version": "1.8.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Setasign/FPDF.git",
|
||||
"reference": "b0ddd9c5b98ced8230ef38534f6f3c17308a7974"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDF/zipball/b0ddd9c5b98ced8230ef38534f6f3c17308a7974",
|
||||
"reference": "b0ddd9c5b98ced8230ef38534f6f3c17308a7974",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-gd": "*",
|
||||
"ext-zlib": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"fpdf.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Olivier Plathey",
|
||||
"email": "oliver@fpdf.org",
|
||||
"homepage": "http://fpdf.org/"
|
||||
}
|
||||
],
|
||||
"description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.",
|
||||
"homepage": "http://www.fpdf.org",
|
||||
"keywords": [
|
||||
"fpdf",
|
||||
"pdf"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/Setasign/FPDF/tree/1.8.4"
|
||||
},
|
||||
"time": "2021-08-30T07:50:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "setasign/fpdi",
|
||||
"version": "v2.3.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Setasign/FPDI.git",
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-zlib": "*",
|
||||
"php": "^5.6 || ^7.0 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"setasign/tfpdf": "<1.31"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~5.7",
|
||||
"setasign/fpdf": "~1.8",
|
||||
"setasign/tfpdf": "1.31",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"tecnickcom/tcpdf": "~6.2"
|
||||
},
|
||||
"suggest": {
|
||||
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"setasign\\Fpdi\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jan Slabon",
|
||||
"email": "jan.slabon@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
},
|
||||
{
|
||||
"name": "Maximilian Kresse",
|
||||
"email": "maximilian.kresse@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
}
|
||||
],
|
||||
"description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
|
||||
"homepage": "https://www.setasign.com/fpdi",
|
||||
"keywords": [
|
||||
"fpdf",
|
||||
"fpdi",
|
||||
"pdf"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Setasign/FPDI/issues",
|
||||
"source": "https://github.com/Setasign/FPDI/tree/v2.3.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/setasign/fpdi",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-11T11:37:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "square/square",
|
||||
"version": "13.0.0.20210721",
|
||||
|
Loading…
Reference in New Issue
Block a user