У меня есть проект PHP, в котором я использую TCPDF. У меня был файл PHP, который создает тему HTML с загрузкой. В этот файл я включаю свой pdfGeneration.php. Это выглядит так:
require_once('tcpdf/tcpdf.php');
$pdfAuthor = "Test";
$pdfName = "Test.pdf";
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor($pdfAuthor);
$pdf->SetTitle($pdfName);
$pdf->SetSubject($pdfName);
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage();
$htmlContent = 'Test';
$pdf->writeHTML($htmlContent, true, false, true, false, '');
ob_end_clean();
$outputFile = 'myServerPathHere';
$pdf->Output($outputFile, 'F');
echo '<span>PDF Creation finished. <a href = "' . $outputFilePath . pdfName'" target='blank'>You can download the file here</a></span>';
Если я не включаю этот pdfGeneration, все работает нормально. Но когда я включаю его, в результате я получаю только пустой белый сайт с этим диапазоном. Остальной код HTML, который находится внутри файла, содержащего pdfGeneration, полностью потерян. Я не могу найти ошибку?!
Моя цель - сайт, на котором создается PDF-файл, и в лучшем случае PDF-файл открывается непосредственно в новой вкладке. Я не нашел решения для этого, поэтому я решил его по ссылке. Но моя первая проблема — отсутствующий HTML.
Да это так! Но я думаю, что после двух дней поиска я наконец нашел ошибку. Это функция ob_end_clean();. Я добавил это, потому что tcpdf в другом режиме печати (для прямого отображения) иначе выдавал ошибку. Проблема в том, что весь HTML-код в буфере удаляется. Ничего из этого больше не выводится.






Извините за вопрос, я сам нашел ошибку. Функция "ob_end_clean();" является ошибкой. PHP Docs: ob_end_clean — очистить (стереть) буфер вывода и отключить буферизацию вывода. Вероятно, это приводит к потере всего ранее сгенерированного HTML-кода. Если я удаляю команду, она работает.
Я полагаю, отсутствие
"во второй строке - это опечатка?