Hallo,
ich habe ein kleines Problem. Ich erstelle PDFs in PHP mit TCPDF. Das klappt auch alles super. Nun möchte ich Bilder aus vorhandenen BASE64-Strings in das PDF einbetten. Dies funktioniert lokal getestet super … online leider gar nicht. Fehlermeldung keine vorhanden.
Mein Code sieht so aus. Grundlage ist ein Text mit Platzhaltern…
[CODE=php][…]
// Bild in temporäres Bild umwandeln
// Base64-kodierte Bilddaten
$custom_temp_dir = ‚…/temp/‘;
$prefix = ‚prefix‘;
$img_base64_encoded = $unterschrift;
$imageContent = file_get_contents($img_base64_encoded);
$path = tempnam($custom_temp_dir , $prefix);
file_put_contents ($path, $imageContent);
$img = ‚
Name‘;
// BASE64 Stempel
$prefix_stempel = ‚prefix_stempel‘;
$img_base64_encoded_stempel = $stempel;
$imageContent_stempel = file_get_contents($img_base64_encoded_stempel);
$path_stempel = tempnam($custom_temp_dir , $prefix_stempel);
file_put_contents ($path_stempel, $imageContent_stempel);
$unterschrift = ‚
‘;
$platzhalter = array(
‚##UD##‘ => $img,
‚##U##‘ => $unterschrift,
);
$replacedText = str_replace(array_keys($platzhalter), array_values($platzhalter), $vertragstext);
$pdf = new MYPDF(‚P‘, PDF_UNIT, PDF_PAGE_FORMAT, true, ‚UTF-8‘, false);
$pdf->init();
$pdf->SetProtection(array(‚modify‘ , ‚copy‘), ‚‘, null, 0, null);
$pdf->create_pdf($zielOrdner, $zielDatei, $replacedText);
unset($pdf);
[…][/CODE]
Die PDF-Erstellung sieht so aus …
[CODE=php]class MYPDF extends TCPDF
{
// Init
public function init()
{
$this->SetCreator(PDF_CREATOR);
$this->SetAuthor(‚Bildung mit Service UG‘);
$this->SetHeaderData(‚‘, ‚‘, PDF_HEADER_TITLE, PDF_HEADER_STRING);
$this->setHeaderFont(Array(PDF_FONT_NAME_MAIN, ‚‘, PDF_FONT_SIZE_MAIN));
$this->setFooterFont(Array(PDF_FONT_NAME_DATA, ‚‘, PDF_FONT_SIZE_DATA));
$this->SetDefaultMonospacedFont(‚helvetica‘);
$this->SetFooterMargin(PDF_MARGIN_FOOTER);
$this->SetMargins(PDF_MARGIN_LEFT, ‚5‘, ‚25‘, true);
$this->setPrintHeader(false);
$this->setPrintFooter(true);
$this->SetAutoPageBreak(TRUE, 10);
$this->SetFont(‚helvetica‘, ‚‘, 10);
}
// Page footer
public function Footer()
{
$heute = new DateTime();
$h = $heute->format('d.m.Y - H:i');
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont('helvetica', 'I', 8);
// Page number
$this->Cell(0, 10, 'Bildung mit Service - www.bildung-service.com - Honorarvertrag - ' . $h . ' Uhr - Seite '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
public function create_pdf($userpfad, $neuerDateiname, $output)
{
$this->AddPage();
$this->SetTitle($neuerDateiname);
$this->writeHTML($output);
$this->Output($userpfad . '/' . $neuerDateiname , 'F');
}
}[/CODE]
Vielleicht habt ihr einen Ansatz für mich … DANKE