Ich erstelle einen neuen Compnent in Joomla 3, die Dompdf verwenden wird, um PDFs bestimmter Informationen auf dem Bildschirm zu generieren.Verwendung von dompdf in Joomla-Komponente hat falschen Inhalt
Ich habe meinen Dompdf-Code außerhalb von Joomla getestet und alles funktioniert in Ordnung, aber sobald ich den Code in meine Komponente bringe, geht es schief.
Dompdf generiert die PDF, aber sie ist ungültig und wird nicht korrekt geöffnet.
Ich habe das PDF in einem Texteditor geöffnet und das Problem ist, dass das PDF, das dompdf erzeugt, alle Joomla-Header (Stylesheets, Javascript usw.) hat, obwohl ich nur etwas dediziertes HTML übergebe es.
Gibt es etwas, das ich vermisse? Der Code wird unter
aufgeführt$fhtml = '<html><head><title>Sales Order</title>';
$fhtml .= PHP_EOL . '<link type="text/css" href="test.css" rel="stylesheet" /></head><body>';
$fhtml .= PHP_EOL . '<center><img src="elite.jpg" /><img src="premierdealer.jpg" /><img src="logo.jpg" /><img src="traveller.jpg" /><img src="childrens.jpg" /><img src="westfield.jpg" /></center>';
$fhtml .= PHP_EOL . '<h2>Header</h2><p>Para</p>';
$fhtml .= PHP_EOL . '</body></html>';
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->setPaper('A4', 'portrait');
$dompdf->loadHtml($fhtml);
$dompdf->render();
$dompdf->stream('salesorder');
Sie aus dem Code über das sehe ich die html übergehen dompdf-> loadhtml. Ein pdf erzeugt wird, aber wenn ich teh PDF-Dokument in einem Texteditor öffnen (es wird eine beschädigte PDF, so kann ich nicht mit einem PDF-Reader öffnen) ich folgende in der PDF finden:
<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="utf-8" />
<base href="http://test1.questleisure.local/index.php/portal/portal-home" />
<meta name="keywords" content="quest leisure air awnings caravan awnings camping caravan air tents outdoor funriture" />
<meta name="rights" content="Quest Leisure" />
<meta name="description" content="Quest Leisure Public Website" />
<meta name="generator" content="Joomla! - Open Source Content Management" />
<title>Portal Home</title>
<link rel="stylesheet" href="/media/com_questportal/css/default.css" />
<link rel="stylesheet" href="/plugins/system/rokbox/assets/styles/rokbox.css" />
<link rel="stylesheet" href="/media/gantry5/assets/css/font-awesome.min.css?57344a42" />
<link rel="stylesheet" href="/media/gantry5/engines/nucleus/css-compiled/nucleus.css?57344a42" />
<link rel="stylesheet" href="/templates/rt_galatea/custom/css-compiled/galatea_11.css" />
<link rel="stylesheet" href="/media/gantry5/assets/css/bootstrap-gantry.css?57344a42" />
<link rel="stylesheet" href="/media/gantry5/engines/nucleus/css-compiled/joomla.css?57344a42" />
<link rel="stylesheet" href="/media/jui/css/icomoon.css" />
<link rel="stylesheet" href="/templates/rt_galatea/custom/css-compiled/galatea-joomla_11.css" />
<link rel="stylesheet" href="/templates/rt_galatea/custom/css-compiled/custom_11.css" />
<link rel="stylesheet" href="/templates/rt_galatea/css/demo.css" />
<link rel="stylesheet" href="/templates/rt_galatea/css/animate.css" />
<script src="/media/system/js/mootools-core.js"></script>
<script src="/media/system/js/core.js"></script>
<script src="/media/system/js/mootools-more.js"></script>
<script src="/plugins/system/rokbox/assets/js/rokbox.js"></script>
<script src="/templates/rt_galatea/js/jui/jquery.min.js"></script>
<script src="/media/jui/js/jquery-noconflict.js"></script>
<script src="/media/jui/js/jquery-migrate.min.js"></script>
<script src="/media/jui/js/bootstrap.min.js"></script>
<body class="gantry g-galatea-style site com_questportal view-questportal no-layout task-display dir-ltr itemid-229 outline-11 g-offcanvas-left g-default g-style-preset1">
<div id="g-offsidebar-overlay"></div>
<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">
<div
class="g
So dompdf ist bekomme alle Basis-Joomla-Header aus dem Puffer, obwohl ich nur bestimmten HTML-Code übergebe. Gibt es irgendetwas, was ich tun muss, um dompdf mit allen Headern von Joomla zu stoppen, und einfach den HTML-Code zu verwenden, den ich übergebe?
Prost
Ich habe mehr Tests durchgeführt und festgestellt, dass das Problem der Befehl dompdf-> stream ist. Wenn ich den Befehl dfpdf-> output() verwende, um den PDf in eine physische Datei auszugeben, ist die physische Datei korrekt und enthält nicht alle zusätzlichen Header-Informationen. Sobald ich Stream verwende, werden alle zusätzlichen Header-Informationen eingefügt –
Mögliches Duplikat von [dompdf-> stream funktioniert nicht in joomla] (http://stackoverflow.com/questions/37277813/dompdf-stream-not-working-in-joomla) – BrianS