我尝试使用PDF Creator构建动态PDF文件,但是当我想输出它时会出现一些错误。我尝试输出时为什么会出错? 如果我删除$ pdf-> output();然后我没有得到任何错误,但没有显示PDF格式。
错误讯息:
致命错误:未捕获的异常'异常'有消息' FPDF错误:某些数据已经输出,无法发送PDF文件'在C:\ xampp \ htdocs \ test \ pdf_creator \ fpdf.php:271堆栈跟踪:#0 C:\ xampp \ htdocs \ test \ pdf_creator \ fpdf.php(1063):FPDF->错误('有些数据有......')#1 C:\ xampp \ htdocs \ test \ pdf_creator \ fpdf.php(999):FPDF-> _checkoutput()#2 C:\ xampp \ htdocs \ test \ pages \ rechnung_pdf.php(44):FPDF->输出()#3 C:\ xampp \ htdocs \ test \ index.php(38):include(' C:\ xampp \ htdocs \ htdocs .. 。')在第271行的C:\ xampp \ htdocs \ test \ pdf_creator \ fpdf.php中抛出#4 {main}
我的代码:(这是我尝试过的整个文件代码)
<?php
require_once("pdf_creator/fpdf.php");
$pdf = new FPDF('P','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Arial','B', 16);
# Kunden Daten
$pdf->SetFont('Arial','I', 13);
$pdf->Cell(0, 8, 'Herr', 0, 1, 'L');
$pdf->Cell(0, 8, utf8_decode('Max'), 0, 1, 'L');
$pdf->Cell(0, 8, utf8_decode('Mustermann'), 0, 1, 'L');
# Header Rechnung
$pdf->SetFont('Arial','I', 13);
$pdf->Cell(0, 10, utf8_decode('Rechnungsdatum: xx.xx.xxxx'), 0, 1, 'R');
$pdf->Cell(0, 10, utf8_decode('Liefer- bzw. Leistungsdatum: xx.xx.xxxx'), 0, 1, 'R');
$pdf->Cell(0, 10, utf8_decode('Steuernummer: xxx xxx xxx'), 0, 1, 'R');
# Rechnung Content
$pdf->SetFont('Arial','B', 13);
$pdf->Cell(0, 20, utf8_decode('Rechnung Nr. xxxxxxxxxx'), 0, 1);
$pdf->SetFont('Arial','I', 13);
$pdf->Cell(0, 20, utf8_decode('Wir bedanken uns für die gute Zusammenarbeit und stellen Ihnen'), 0, 1);
$pdf->Cell(0, 0, utf8_decode('vereinbarungsgemäß folgende Lieferungen und Leistungen in Rechnung:'), 0, 1);
$pdf->Cell(0, 20, '______________________________________________________________', 0, 1);
$pdf->Cell(0, -8, utf8_decode('Nummer Bezeichnung Menge Einzel/€ Gesammt/€'), 0, 1);
$pdf->Cell(0, 13, '______________________________________________________________', 0, 1);
$pdf->Cell(0, 60, '______________________________________________________________', 0, 1);
$pdf->SetFont('Arial', 'B', 13);
$pdf->Cell(0, -30, 'Rechnungsbetrag: xx Euro', 0, 1);
# Footer Nachricht
$pdf->SetFont('Arial','I', 13);
$pdf->Cell(0, 80, utf8_decode('Nach §19 Abs. 1 UStG wird keine Umsatzsteuer berechnet.'), 0, 1);
$pdf->Cell(0, -60, utf8_decode('Die Rechnung ist sofort fällig.'), 0, 1);
$pdf->Cell(0, 80, utf8_decode('Wir bedanken uns für Ihr Vertrauen!'), 0, 1);
$pdf->Cell(0, -60, utf8_decode('Für jegliche Rückfragen stehen wir Ihnen gerne zur Verfügung.'), 0, 1);
$pdf->output();
?>
我希望有人可以帮助我,我在文档中阅读了很多但没有帮助我:/
答案 0 :(得分:0)
让我们分类。
FPDF的output()方法只有在之前绝对没有数据发送到浏览器时才有效。没有空格,没有回车 - 根本就没有。
但是,在调用$ pdf-&gt; output()之前,是输出。它至少有一条错误消息。 FPDF类抛出异常(如您发布的错误消息所示):
&#34;#0 C:\ xampp \ htdocs \ test \ pdf_creator \ fpdf.php(1063):FPDF-&gt;错误(&#39;有些数据有...&#39;)& #34;
我的猜测是欧元符号。您将文本数据从UTF-8转换为ISO-8859-1。这是由于uft8_decode的行为。不幸的是,ISO-8859-1字符集不包含欧元符号编码。
尝试使用带有目标编码窗口-1252的iconv而不是utf8_decode。
对于调试,尝试用一些ANSI-Text替换你的数据,根本不删除转码,我保证它会起作用。
祝你好运, 安德烈亚斯
答案 1 :(得分:0)
请确保index.php和所有包含的文件(&#34; config.php&#34;依此类推)不输出任何内容,甚至不输出空格或回车符。请检查&#34;&lt;?php&#34;之前和之后的空格/ CR的文件。 /&#34;?&gt;&#34;标记并删除它们。 保存文件时,某些编辑器会在文件末尾添加一个空行。检查一下。
Hth,Andreas