Проблема создания PHP/HTML, PDF
у Меня есть генератор сертификатов осуществляется с HTML/PHP
Использовал DOMPDF, но он не присваивает переменной $html=' <codigo todo> ';
он дает ошибку в строке IF's после того, как я присваиваю переменной. Равно показывает в документации, и некоторые учебники в интернете, мой дает ошибку:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/local/www/apache24/data/приложения/declaracao2/сертификат/105/сертификат.php on line 265
в Этой строке содержит: IF = if ($obj->id=='81'){?>
Использовал buffer ob_start;
он работает, но он находится далеко за пределами страницы, нужно, чтобы настроить его. Но есть некоторые сертификаты, которые появляются, сообщение:
Fatal error: Call to a member function get_cellmap() on a non-object in /usr/local/www/apache24/data/aplicacoes/declaracao2/certificado/100/dompdf/include/table_cell_frame_reflower.cls.php on line 30
Уже пытался MPDF, хотя он только делает изображение фона и поля данных сертификатов не отображаются.
что делать?
Код certificado.php
:
require_once("dompdf/dompdf_config.inc.php");
ob_start();
if ($obj->cpf == $doc) //isset($certificado_numero) and ($certificado_numero<>''))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<link href="unidade.css" rel="stylesheet" type="text/css">
<style type="text/css">
}
</style>
</head>
<body>
<table width="1070" border="0" cellpadding="1" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<div class="anterior">
<td width="1068" style="border-bottom: 0px solid #666666;" align="center">
<img src="<?= $imagem; ?>" width="1070" height="698" /></td>
</div>
</tr>
</table>
<div id='posiciona1'><?= utf8_decode($participante)?></div>
<div id='posiciona2'><b><?=$obj->num_certificado?></b></div>
<div id='posiciona4'><b><?= $horario; ?></b></div>
<div id='posiciona5'><? echo $observacoes."<p>"; ?></div>
</body>
<?
}
else
{
?>
<script type="text/javascript">
alert( 'Este Certificado ainda n�o foi registrado. Aguarde!');
self.close();
</script>
<?
}
?>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'landscape');
$dompdf->render();
$dompdf->stream("newfile.pdf");
?>
2 answers
, Как говорил Ганнибал, давайте по частям.
Код
Ваш код был неправильный подход проблемы. Молится, что вы пытаетесь вызвать HTML-и после rendenizar его DOMPDF
.
Вы должны поместить все содержимое HTML внутри avariável, например:
$htmlPagina = "
<table width="1070" border="0" cellpadding="1" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<div class="anterior">
<td width="1068" style="border-bottom: 0px solid #666666;" align="center">
<img src="<?= $imagem; ?>" width="1070" height="698" /></td>
</div>
</tr>
</table>
<div id='posiciona1'><?= utf8_decode($participante)?></div>
<div id='posiciona2'><b><?=$obj->num_certificado?></b></div>
<div id='posiciona4'><b><?= $horario; ?></b></div>
<div id='posiciona5'><? echo $observacoes."<p>"; ?></div>"
Подчеркнуть, что ваш код - <?= utf8_decode($participante)?>
возвращает ошибку, или, вернее, ничего не возвращает иногда. Для решения этого, напишите следующим образом: <? echo utf8_decode($participante)?>
.
Я Должен определить для вас, что переменные, присутствующие в HTML должны быть saneadas (заполнены), прежде чем передать в инструкции DOMPDF
, означает, что вы должны тебе их хранение и созданы ранее.
Код DOMPDF
Я Не буду останавливаться на этом вопросе потому, что его применение достаточно просто. Для rendenizar и создать файл Сертификата, используйте испугался тогда:
// Incluímos a biblioteca DOMPDF
require_once("dompdf/dompdf_config.inc.php");
// Instanciamos a classe
$dompdf = new DOMPDF();
// Passamos o conteúdo que será convertido para PDF
$dompdf->load_html($html);
// Definimos o tamanho do papel e
// sua orientação (retrato ou paisagem)
$dompdf->set_paper('A4','portrait');
// O arquivo é convertido
$dompdf->render();
// Salvo no diretório temporário do sistema
// e exibido para o usuário
$dompdf->stream("nome-do-arquivo.pdf");
JS
, Вы можете сделать HTML-страницу с вашим JS предварительном порядке на призыв PHP.
Для этого вы можете сделать сценария js позволяет это, или нет, открытие файла и его построения.
Совет: Вы можете назвать переменные PHP, как правило, если делаете query; и также может вызвать HTML-файл внешней форме, то есть написать HTML на отдельной странице и иметь PHP прочитать файл и дать fopen
в нем.
, Если бить, то сомнений в том, что касается именования, или отступ, см документации DOMPDF в Google Doc
Я использовал в моих последних проектов класса pdfcrowd, и у меня не было проблем.
Installation
Copy - pdfcrowd.php - to your source directory.
Example
Server side PDF generation. This code converts a web page and send the generated PDF to the browser (don't forget to use your "username" and "apikey"):
require 'pdfcrowd.php';
try
{
// create an API client instance
$client = new Pdfcrowd("username", "apikey");
// convert a web page and store the generated PDF into a $pdf variable
$pdf = $client->convertURI('http://example.com/');
// set HTTP response headers
header("Content-Type: application/pdf");
header("Cache-Control: no-cache");
header("Accept-Ranges: none");
header("Content-Disposition: attachment; filename=\"created.pdf\"");
// send the generated PDF
echo $pdf;
}
catch(PdfcrowdException $e)
{
echo "Pdfcrowd Error: " . $e->getMessage();
}
// Other basic operations:
// convert an HTML string
$html = "<html><body>In-memory HTML.</body></html>";
$pdf = $client->convertHtml($html);
// convert an HTML file
$pdf = $client->convertFile('/path/to/local/file.html');
И В нем может быть найдено и скачали здесь