включение FPDI в существующий сценарий TCPDF для добавления существующего файла PDF в созданный файл PDF - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть этот код, использующий TCPDF для создания счетов в формате PDF, и он работает хорошо.Теперь мне нужно добавить содержимое другого pdf на последнюю страницу (S).

Я нашел пример сервера с использованием FPDI, но не могу понять, как это будет включено в приведенный ниже код.

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Harlyn Enterprises');
$pdf->SetTitle('');
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, 10, PDF_MARGIN_RIGHT);
//$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
//$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// create first page
$pdf->AddPage();
$html = "html code for page 1 in here";
$pdf->writeHTML($html, true, false, true, false, '');
// create second page
$pdf->AddPage();
$html = "html code for page 2 in here";
$pdf->writeHTML($html, true, false, true, false, '');
$pdf[$site]->lastPage();
//Close and output PDF document
ob_clean();
$file = $_SERVER["filename.pdf";
$pdf->Output($file, 'F');

любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 декабря 2018

Я понял это.Использование composer для установки FPDI-TCPDF и со следующим кодом:

require_once('tcpdf.php');
use setasign\Fpdi;
use setasign\fpdf;
require_once('vendor/setasign/fpdf/fpdf.php');
require_once('vendor/setasign/fpdi/src/autoload.php');
//error_reporting(E_ALL);
//ini_set('display_errors', 1);
//set_time_limit(2);
//date_default_timezone_set('UTC');
//$start = microtime(true);

//$pdf = new Fpdi\TcpdfFpdi();
$pdf = new Fpdi\TcpdfFpdi('p', 'mm', 'A4');

if ($pdf instanceof \TCPDF) {
    $pdf->SetProtection(['print'], '', 'owner');
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
}

// create first page
$pdf->AddPage();
$html = "html code for page 1 in here";
$pdf->writeHTML($html, true, false, true, false, '');
// create second page
$pdf->AddPage();
$html = "html code for page 2 in here";
$pdf->writeHTML($html, true, false, true, false, '');


//Define files to add
$files = [
        'example_006.pdf',
];

// Attach each page of each pdf
foreach ($files as $file) {
    $pageCount = $pdf->setSourceFile($file);

    for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
        $pdf->AddPage();
        $pageId = $pdf->importPage($pageNo, '/MediaBox');
        $s = $pdf->useTemplate($pageId, 10, 10, 200);
    }
}

//Create PDF
$pdf[$site]->lastPage();
$pdf->Output('output.pdf','I');
?>
...