2010-12-29 3 views
2

У меня есть форма, как следующий счет-фактурараспечатать в pdf с помощью php?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
dir="<?php echo $direction; ?>" 
lang="<?php echo $lang; ?>" 
xml:lang="<?php echo $lang; ?>"> 
<head> <title><?php echo $title; 
?></title> <link rel="stylesheet" 
type="text/css" href="theme/<?php echo 
$template; 
?>/stylesheet/stylesheet.css" /> 
<style type="text/css"> body { 
background: #FFFFFF; } </style> 
</head> <body> 

<div style="page-break-after: always; 
"> <table width="100%"> <tr> 
    <td width="auto" align="left"><a href="<?php echo $url_logo; ?>" 
title="<?php echo $_name; ?>"><?php 
echo "<img src=".$logo." alt=\"Logo 
Store\" style=\"border: none;\" />"; 
?></a></td> 
    <td width="*" valign="middle"><h1><?php echo 
$heading_title; ?></h1></td> </tr> 
</table><div class="line"></div> 
<div class="div_"> 
    <table width="100%"> 
     <tr> 
     <td> 
      <?php echo $_address; ?><br /> 
      <?php if ($telephone) { ?> 
      <?php echo $store_telephone; ?><br /> 
      <?php } ?> 
      <?php echo $_email; ?><br />   </td> 
     <td align="right" valign="top">  <table> 
      <?php if ($invoice_id) { ?> 
      <tr> 
       <td><b><?php echo $txt_invoice_id; ?></b></td> 
       <td>:&nbsp;<?php echo $invoice_id; ?></td> 
      </tr> 
      <?php } ?> <?php if ($historys) { ?> <?php foreach ($historys as $history) { ? 
      <tr> 
       <td><b><?php echo $column_date_added; ?></b></td> 
       <td>:&nbsp;<?php echo $history['date_added']; ?></td> 
      </tr> 
      <tr> 
       <td><b><?php echo $column_status; ?></b></td> 
       <td>:&nbsp;<?php echo $history['status']; ?></td> 
      </tr>  <?php } ?>  <?php } ?> 
      <tr> 
       <td><b><?php echo $txt_order_id; ?></b></td> 
       <td>:&nbsp;<?php echo $order_id; ?></td> 
      </tr>  <?php if ($shipping_method) { ?> 
      <tr> 
       <td><b><?php echo $txt_shipping_method; ?></b></td> 
       <td>:&nbsp;<?php echo $shipping_method; ?></td> 
      </tr>  <?php } ?> 
      <tr> 
       <td><b><?php echo $txt_payment_method; ?></b></td> 
       <td>:&nbsp;<?php echo $payment_method; ?></td> 
      </tr> 
      </table> 
      </td> 
     </tr> 
    </table> </div> </div> </body> </html> 

формы счета-фактуры в доступе через http://www.mysite.com/index.php?print=page/invoice&id=952 и расширение фактуры .tpl

Я попытался с помощью FPDF (http://www.fpdf.org /), но не удалось, и кажется, что FPDF не соответствует css, тогда я попытался использовать tcpdf (http://www.tcpdf.org) относительно http://www.tcpdf.org/examples/example_054.phps, но видны только ошибки с кодом php: eg <?php echo $history['status']; ?>

У кого-нибудь уже есть опыт или проблема? пожалуйста, поделитесь здесь или получите один и тот же образец? Заранее спасибо

+0

Вы хотите сгенерировать PDF-код HTML, исправить? –

+2

попробуйте использовать dompdf. http://code.google.com/p/dompdf/ –

+0

@ Pekka, я хочу сгенерировать pdf-файл со страницы счета-фактуры, как показано выше, внутри содержать некоторый php-код, спасибо – user485783

ответ

3

Большая проблема заключается в том, что нет библиотеки, которая бы хорошо справлялась с html-кодом.

dom-pdf является очень хорошим, но по-прежнему существуют огромные проблемы с вложенными таблицами разрыв страниц. по твоей причине он должен сделать трюк, я думаю. Он также может обрабатывать css.

к проблеме с безопасностью: Для решения проблемы безопасности DOMPDF необходимо лишь немного изменить DOMPDF, чтобы работать только в режиме cgi, предотвращая доступ из внешних источников и только для вызова из вашего приложения.

Если вы можете создать таблицу самостоятельно, я настоятельно рекомендую использовать fpdf. вы не сможете обрабатывать какие-либо css, но есть много возможностей форматирования с fpdf.

для dom-pdf у вас есть ссылка от кинджала выше. и fpdf, который вы уже нашли.

+0

«нет библиотеки, которая бы хорошо справлялась с html-кодом» - поэтому оставьте ее в проверенном и проверенном движке рендеринга, как я предлагаю. – marcog

+0

Привет, я не знаком ни с чем из библиотеки pdf, но использовать fpdf кажутся жестким кодом для меня, потому что все нужно создать во-первых, dompdf кажется легким, чем fpdf, но много риска для безопасности, и теперь я хочу увидеть другую альтернативу, например. tcpdf, html2pdf (http://html2pdf.fr/ru/default) или wkhtmltopdf у кого-то есть опыт? спасибо за ваши предложения – user485783

+0

, если это вопрос времени, я думаю, вам понадобится одно и то же время для создания одного из последних предложений и поиска в классе fpdf. намек на это: сосредоточиться на многоэлементных, а не на ячейках. – helle

3

Как сказала Хелле, FPDF - это действительно опрятный инструмент для создания PDF-файлов с PHP. Хотя использование FPDF вам придется вникнуть в его руководство, так как оно не конвертирует HTML в PDF-файлы. Из моего опыта, однако, FPDF довольно прост в использовании, и вы не должны слишком беспокоиться об этом.

+0

Я пробовал это несколько раз, но я пока не получаю удачи, мне кажется, что это сложный код. – user485783

1

wkhtml использует механизм рендеринга WebKit и, как таковой, дает фантастические результаты. См. Мой ответ на Converting html to pdf in php? для получения дополнительной информации.

+0

да, кажется, это здорово, но я все еще искал образец моего кода счета выше, не могли бы вы представить? спасибо – user485783

+0

@user В каком формате файла находится счет? Мы все принимаем HTML, но, возможно, это не так. – marcog

+0

Формат файла моего счета-фактуры - это использование .tpl в качестве сайта шаблона, внутри .tpl-файла есть много php-кода, как показано выше. – user485783

Смежные вопросы