Я хотел бы экспортировать свои данные из базы данных в .pdf
файл и использование некоторого кода CSS в нем, я не знаю, является ли fpdf лучшим для этого, потому что я впервые делаю что-то подобное.
Мой идентификатор базы данных называется «dados» и содержит:
id, id_proposta, id_artigo, quantidade, posicao, unitario, iliquido.
И после того, как выбрать все это, я хотел бы стилизовать все страницы PDF с кодом CSS, чтобы он мог быть более профессиональным.
Уже видел некоторые учебники и не могу заставить его работать.
Если что-то нужно, просто скажите, мне просто нужно, чтобы это работало, спасибо в Advanced.
PS: Основное внимание в этом посте уделяется тому, чтобы на любой странице всегда был одинаковый верхний и нижний колонтитулы, например, если на первой странице может отображаться 20 статей и только 10, я хочу, чтобы 2-я страница имела одинаковый верхний и нижний колонтитулы, а остальные 10 статей.
Так что мой код это то, что я уже сделал:
<?php require_once('Connections/valesilveira.php'); ?>
<?php
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_dados = "-1";
if (isset($_GET['id_proposta'])) {
$colname_dados = $_GET['id_proposta'];
}
mysql_select_db($database_valesilveira, $valesilveira);
$query_dados = sprintf("SELECT * FROM propostas, clientes, artigos, dados WHERE propostas.id_proposta = dados.id_proposta AND propostas.id_cliente = clientes.id_cliente AND artigos.id_artigo = dados.id_artigo AND propostas.id_proposta = %s ORDER BY posicao ASC", GetSQLValueString($colname_dados, "int"));
$dados = mysql_query($query_dados, $valesilveira) or die(mysql_error());
$row_dados = mysql_fetch_assoc($dados);
$totalRows_dados = mysql_num_rows($dados);
$colname_propostas = "-1";
if (isset($_GET['id_proposta'])) {
$colname_propostas = $_GET['id_proposta'];
}
mysql_select_db($database_valesilveira, $valesilveira);
$query_propostas = sprintf("SELECT id_proposta FROM propostas WHERE id_proposta = %s", GetSQLValueString($colname_propostas, "int"));
$propostas = mysql_query($query_propostas, $valesilveira) or die(mysql_error());
$row_propostas = mysql_fetch_assoc($propostas);
$totalRows_propostas = mysql_num_rows($propostas);
?>
<?php
$header = '
<div id="headerContainer">
<div id="headerLeft">
<p>Vale & Silveira, Lda</p>
<p>Rua Marques Da Alegrete Nº124 - A 4440-382 Sobrado</p>
</div>
<div id="headerRight">
<a href="propostas.php"><img src="https://web-answers.ru/wp-content/uploads/2019/03/valesilveira.png" /></a>
</div>
<div id="nproposta"><p>Proposta: ' .$row_propostas['id_proposta']. '</p></div>
</div>';$html = '
<div id="mainContainer">
<div id="clientContainer">
<p>Exmo.(s) Sr.(s)</p>
<p>' .$row_dados['nome']. '</p>
<p>' .$row_dados['empresa']. '</p>
<p>' .$row_dados['morada']. '</p>
</div>
</div>
<div id="bodyContainer">
<p>Exm Senhores,</p>
<p>Conforme solicitado, vimos pela presente enviar a V. Exas, a nossa proposta nº ' .$row_propostas['id_proposta']. ' , relativa a aquisição de equipamento hoteleiro, chamando desde já a V/ melhor atenção para os seguintes pontos:</p>
<p>1 - Prazo de entrega: A Combinar; </p>
<p>2 - Condições de pagamento: A Combinar;</p>
<p>3 - Garantia: 1 Ano contra defeitos de fabrico;</p>
<p>4 - Exclusões: excluem-se todos os trabalhos de contrução civil, redes de àgua, esgoto, gâs e electricidade.</p>
</div>
<div id="tableHeader">
<div id="tablePos"><p>Pos.</p></div>
<div id="tableImg"><p>Imagem</p></div>
<div id="tableDesc"><p>Descrição</p></div>
<div id="tableUni"><p>Valor Unitário</p></div>
<div id="tableIli"><p>Valor Iliquido</p></div>
<div id="tableQt"><p>Quant.</p></div>
</div>
<div id="tableContent">
<div id="tablePos"><p>' .$row_dados['posicao']. '</p></div>
<div id="tableImg"><p><img src="https://web-answers.ru/wp-content/uploads/2019/03/artigos/' .$row_dados['id_proposta']. '.png" style="max-height:65px;" /></p></div>
<div id="tableDesc"><p>' .$row_dados['desc']. '</p></div>
<div id="tableUni"><p>' .$row_dados['unitario']. '</p></div>
<div id="tableIli"><p>' .$row_dados['iliquido']. '</p></div>
<div id="tableQt"><p>' .$row_dados['quantidade']. '</p></div></div>';
$footer = '<div align="center">Tlm: 123456789</div>';//==============================================================
//==============================================================
//==============================================================
include("mpdf.php");
$mpdf=new mPDF('c');
$mpdf->SetDisplayMode('fullpage');
$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);
// LOAD a stylesheet
$stylesheet = file_get_contents('css/print.css');
$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
//==============================================================
//==============================================================
//==============================================================
?><?php
mysql_free_result($dados);
mysql_free_result($propostas);
?>
И что я хотел бы сделать, это:
Цикл этого раздела:
<div id="tablePos"><p>' .$row_dados['posicao']. '</p></div>
<div id="tableImg"><p><img src="https://web-answers.ru/wp-content/uploads/2019/03/artigos/' .$row_dados['id_proposta']. '.png" style="max-height:65px;" /></p></div>
<div id="tableDesc"><p>' .$row_dados['desc']. '</p></div>
<div id="tableUni"><p>' .$row_dados['unitario']. '</p></div>
<div id="tableIli"><p>' .$row_dados['iliquido']. '</p></div>
<div id="tableQt"><p>' .$row_dados['quantidade']. '</p></div>
Перерабатывать number_format()
от:
<div id="tableIli"><p>' .$row_dados['iliquido']. '</p></div>
<div id="tableQt"><p>' .$row_dados['quantidade']. '</p></div>
И когда идет на 2-й странице, данные остаются над заголовком.
Вся помощь будет оценена.
Задача ещё не решена.
Других решений пока нет …