Hallo Forum,
ich habe ein Problem mit TCPDF, welches nur auf meinem lokalen Mac PDF schreibt - auf dem Produktivsystem (Intranet) erfolgt keine Ausgabe der PDF. Ich nutze folgende Systeme:
Lokal: macOS 10.14.5 mit Apache2/PHP7 & Co. durch Homebrew
Intranet: Ubuntu Linux 18.04.2 ebenfalls mit Apache2/PHP7 & Co.
Ich bekomme auch keine Fehlermeldung im Error.log oder im Browser. Die Apache2-Config und die PHP.ini Konfiguration habe ich abgeglichen, dort finde ich keine relevanten Unterschiede zwischen lokal und Intranet - lasse mich aber gerne eines besseren belehren. Der User www-data hat Schreibrechte auf den Ausgabeordner, ich habe sogar übergangsweise mal "chmod 777" auf den Ordner ausgeführt.
Im Network-Inspektor von Chrome sehe ich auch, dass der Ajax Aufruf erfolgreich ist (Status 200) allerdings rauscht er förmlich durch, auf dem lokalen System dauert es länger, weil ja ein PDF geschrieben wird. Nun mal zum Code:
HTML:
JS:
Controller:
Model:
Wie im JS vorgegeben versucht das Produktivsystem erfolglos die PDF Datei zu öffnen. Error 404... Bin für jede Hilfe dankbar.
LG Dominik
ich habe ein Problem mit TCPDF, welches nur auf meinem lokalen Mac PDF schreibt - auf dem Produktivsystem (Intranet) erfolgt keine Ausgabe der PDF. Ich nutze folgende Systeme:
Lokal: macOS 10.14.5 mit Apache2/PHP7 & Co. durch Homebrew
Intranet: Ubuntu Linux 18.04.2 ebenfalls mit Apache2/PHP7 & Co.
Ich bekomme auch keine Fehlermeldung im Error.log oder im Browser. Die Apache2-Config und die PHP.ini Konfiguration habe ich abgeglichen, dort finde ich keine relevanten Unterschiede zwischen lokal und Intranet - lasse mich aber gerne eines besseren belehren. Der User www-data hat Schreibrechte auf den Ausgabeordner, ich habe sogar übergangsweise mal "chmod 777" auf den Ordner ausgeführt.
Im Network-Inspektor von Chrome sehe ich auch, dass der Ajax Aufruf erfolgreich ist (Status 200) allerdings rauscht er förmlich durch, auf dem lokalen System dauert es länger, weil ja ein PDF geschrieben wird. Nun mal zum Code:
HTML:
HTML-Code:
<a href="" onclick="getTotalMarketplaceInvoicePaper('26_2019', 1)">Gesamtrechnung</a>
PHP-Code:
function getTotalMarketplaceInvoicePaper(kw, bakeoff) {
$.ajax({
url: 'gettotalmarketplaceinvoicepaper',
data: {
kw: kw,
bakeoff: bakeoff
},
type: 'post',
success: function () {
if (bakeoff != 1) {
window.open('../data/marketplace_' + kw + '_GRE.pdf', '_blank');
} else {
window.open('../data/marketplace_bakeoff_' + kw + '_GRE.pdf', '_blank');
}
}
});
}
PHP-Code:
public function gettotalmarketplaceinvoicepaper()
{
Model::getTotalMarketplaceInvoicePaper($_POST);
}
PHP-Code:
public static function getTotalMarketplaceInvoicePaper($post)
{
$database = DatabaseFactory::getFactory()->getConnection();
$kw = $post['kw'];
$bakeoff = $post['bakeoff'];
//[SQL uvm. ...]
$string = '...';
if ($bakeoff != 1) {
SELF::generatePDF('marketplace_' . $kw . '_GRE.pdf', $string);
} else {
SELF::generatePDF('marketplace_bakeoff_' . $kw . '_GRE.pdf', $string);
}
}
public
static function generatePDF($filename, $content)
{
require_once($_SERVER['DOCUMENT_ROOT'] . '/../plugins/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('...');
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(27, 20, 20, true);
$pdf->SetFont('helvetica', '', 11);
$pdf->SetPageMark();
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->SetImageScale(1.0);
$pdf->AddPage();
$pdf->SetAutoPageBreak(false, 0);
$img_file = $_SERVER['DOCUMENT_ROOT'] . 'img/head.png';
$pdf->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0);
$pdf->SetAutoPageBreak(true, 40);
$pdf->writeHTML($content, true, true, true, true, '');
$pdf->lastPage();
$file = $_SERVER['DOCUMENT_ROOT'] . 'data/' . $filename;
if (file_exists($file)) {
unlink($file);
}
$pdf->Output($file, 'F');
}
LG Dominik
Kommentar