Вставьте файлы изображений в существующий PDF-файл, используя PHP - PullRequest
2 голосов
/ 06 марта 2012

Мне нужно загрузить два файла изображения, которые должны быть добавлены в существующий файл PDF. Я читал о FPDF, основываясь на том, что перешел по этому посту ссылка . В случае, если кто-то может опубликовать простой рабочий пример / ссылку, это будет полезно для таких искателей, как я, и еще для некоторых людей, которые также пойдут тем же путем, чтобы найти некоторые полезные ответы.

Ответы [ 2 ]

8 голосов
/ 06 марта 2012

Кажется, есть расширение под названием FPDI для FPDF .Вот сообщение в блоге о том, как изменить существующий PDF: http://pranavom.wordpress.com/2011/03/15/modify-pdf-using-fpdffpdi-library/

Вы можете разместить изображение, используя FPDI, например:

$pdf = new FPDI();
$pdf->AddPage();
$pdf->setSourceFile("MySource");
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
$pdf->Image('MyImage.jpg', $x, $y, $width, $height);
$pdf->Output($outputPath, "F");
1 голос
/ 24 октября 2014

Я использую PHP, FPDF для создания PDF-файла из файла FDF, а затем вставляю в файл PDF изображение qrcode.Я продолжал сталкиваться с проблемами, потому что мой пустой PDF-файл имеет встроенные поля формы, а вставка графики с другими программами стерла мои поля формы.Я наконец-то понял.Надеюсь, что это поможет кому-то еще, кто борется с тем же.

Я работаю в похоронном бюро, если какое-либо из имен var бросит вас, и этот код не отшлифован, его вырезали и вставили из множества различных источников;)

Я использую следующие библиотеки http://www.fpdf.org/ и http://phpqrcode.sourceforge.net/

for($count=0;$count<$doc_list_length;$count++){

    //create FDF file
    $id = rand(11111,99999);
    $filename = $populated_pdf_path . $casenumber.$doc_list[$count].".fdf";    
    $file = fopen($filename,"w");
    $filecontents = "%FDF-1.2". PHP_EOL;
    $filecontents .= "%âãÏÓ" . PHP_EOL;
    $filecontents .= "1 0 obj" . PHP_EOL;
    $filecontents .= "<<" .PHP_EOL;
    $filecontents .= "/FDF << /Fields [ ";
    $filecontents .= "<</T(name)/V($name)>>";
    $filecontents .= "] " . PHP_EOL;
    $filecontents .= "/F (empty_pdf/$doc_list[$count].pdf) ";
    $filecontents .= "/ID [ <$id>" . PHP_EOL;
    $filecontents .= "] >> " . PHP_EOL;
    $filecontents .= ">> ". PHP_EOL;
    $filecontents .= "endobj" . PHP_EOL;
    $filecontents .= "trailer" . PHP_EOL;
    $filecontents .= "<<" . PHP_EOL;
    $filecontents .= "/Root 1 0 R" . PHP_EOL . PHP_EOL;
    $filecontents .= ">>" . PHP_EOL;
    $filecontents .= "%%EOF";
    fwrite($file, $filecontents);
    fclose($file);

    //insert image on this document only
    //generate qrcode
    if($doc_list[$count] == "checklist"){

        $qrCodeFileName = $cemetery."qrcode.png";
        if(!file_exists($populated_pdf_path.$qrCodeFileName)){
            include('include/phpqrcode/qrlib.php');  
            $codeContents = "http://www.asuperduperwebaddress.com"; 
            QRcode::png($codeContents, $populated_pdf_path.$qrCodeFileName);
        }

        if(!file_exists($populated_pdf_path.$cemetery."qrcode.pdf")){
            //make pdf with image
            require_once('include/fpdf.php');
            $image = $populated_pdf_path.$qrCodeFileName;
            $pdf = new FPDF();
            $pdf->AddPage();
            $pdf->Image($image, 183, 250, 25, 25, 'PNG' );
            $pdf->Output( $populated_pdf_path.$cemetery."qrcode.pdf");
        }

        //setup file paths for pdf output
        $tempFile = $populated_pdf_path . $casenumber.$doc_list[$count]."temp.pdf";
        $pdfExampleFile = $populated_pdf_path . $casenumber.$doc_list[$count].".pdf"; 
        $pdfFile = $empty_pdf_path . $doc_list[$count] . ".pdf";
        if($doc_list[$count] == "checklist")
        $fdfFile = $filename; 
        $fdfTemplateFile = $filename;

        //fill pdf
        $command = "pdftk $pdfFile fill_form $fdfTemplateFile output $tempFile 2> fill_form.log";
        passthru($command);

        //stamp pdf with qrcode
        $command = "pdftk " . $tempFile . " stamp " . $populated_pdf_path.$cemetery . "qrcode.pdf output " . $pdfExampleFile; 
        passthru($command);
    }
    else{
        //setup file paths for pdf output
        $pdfExampleFile = $populated_pdf_path . $casenumber.$doc_list[$count].".pdf"; 
        $pdfFile = $empty_pdf_path . $doc_list[$count] . ".pdf";
        if($doc_list[$count] == "checklist")
        $fdfFile = $filename; 
        $fdfTemplateFile = $filename;

        //fill pdf
        $command = "pdftk $pdfFile fill_form $fdfTemplateFile output $pdfExampleFile 2> fill_form.log";
        passthru($command);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...