Автор Тема: записване на HTML таблица в PDF  (Прочетена 2598 пъти)

edmon

  • Гост
Както гордо твърди заглавието искам да "експорт"-на HTML таблица в PDF файл.
Намерих няколко примера и помощни инструменти, но всички те имат проблем с UTF-8,
какъвто именно е формата на страницата ми.
html2pdf предполагам ще се справи с нещото,но идеята ми е
да мога само  HTML таблицата да я прекарам през html2pdf.
За целта сложих един div около таблица и взимам HTML  кода в
Код:
var html_table = $("#exportpdf").html();
обаче някак не мога да го прекарам през html2pdf.
Искам да  имам линк на който примерно с onClick  да викна функция , която да вземе HTML кода на таблица
и да го метне някак с Ajax  на файла примерно export_pdf.php , в който именно се правят нещата с
html2pdf:
Код:
 

$content=$_GET[html_table];
 // convert in PDF
    require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
    try
    {
        $html2pdf = new HTML2PDF('P', 'A4', 'en');
//      $html2pdf->setModeDebug();
        $html2pdf->setDefaultFont('Arial');
        $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
        $html2pdf->Output('exemple00.pdf');
    }
    catch(HTML2PDF_exception $e) {
        echo $e;
        exit;
    }


Обаче хич ме няма в тоя Ajax.
Искам и самата функция да изведе пдф файла направо за запис подобно както
се прави по подобен начин експорт за Ексел.
Код:
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"  xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
, base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
window.location.href = uri + base64(format(template, ctx))
}
Активен

d0ni

  • Напреднали
  • *****
  • Публикации: 183
    • Профил
Re: записване на HTML таблица в PDF
« Отговор #1 -: Aug 12, 2014, 20:30 »
Всъщност с AJAX заявка не би трябвало да стане, защото няма да ти излезе диалог да save-неш PDF-а. По-скоро ти трябва форма, която да събмитнеш, промени pdf-export.php да сочи към твоя PHP файл и промени в него да ползваш $_POST, а не $_GET, защото в GET имаш ограничение от броя символи, които можеш да приемаш. Може да има грешка, защото не съм го тествал.

Код:
<form action="/pdf-export.php" method="post" id="pdf-form">
<input type="hidden" name="html-data" value="" id="html-data">
<a id="save-pdf">Export To PDF</a>
</form>
<script>
$(function() {
   $("#save-pdf").click(function() {
     $("#html-data").value($("#exportpdf").html());
     $("#pdf-form").submit();
   });
});
</script>
Активен

edmon

  • Гост
Re: записване на HTML таблица в PDF
« Отговор #2 -: Aug 12, 2014, 21:09 »
Да прав си...
още одеве нащраках тоя бълвоч:
Код:
<form id="newform" action="export_pdf.php" method="post" target="_blank">
<input type="hidden" id="html_table" name="html_table">
<input type="button" onclick="mySubmit()" value="PDF">
</form>
<script LANGUAGE="javascript">
function mySubmit() {
var html_table = $("#exportpdf").html();
document.getElementById('html_table').value = html_table;
document.getElementById("newform").submit();
}
</script>

обаче стана толкова грозно, че не мога да го гледам... ;(
..ноо като гледам твойто код... ми харесва...:)
Активен

d0ni

  • Напреднали
  • *****
  • Публикации: 183
    • Профил
Re: записване на HTML таблица в PDF
« Отговор #3 -: Aug 12, 2014, 21:57 »
твоя вариант разкрасен и съкратен:

Код:
<form id="newform" action="export_pdf.php" method="post" target="_blank" onsubmit="mySubmit()">
<input type="hidden" id="html_table" name="html_table">
<input type="submit" value="PDF">
</form>
<script>
function mySubmit() {
   var html_table = $("#exportpdf").html();
   $("#html_table").value(html_table);
}
</script>
Активен

edmon

  • Гост
Re: записване на HTML таблица в PDF
« Отговор #4 -: Aug 12, 2014, 22:55 »
нещо не работи това което ми показваш и вече ми бръмна главата да търся какво не правя както трябва. :)
Активен

d0ni

  • Напреднали
  • *****
  • Публикации: 183
    • Профил
Re: записване на HTML таблица в PDF
« Отговор #5 -: Aug 12, 2014, 23:03 »
а javascript грешка ли има или php скрипта не получава правилни параметри?
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 6180
    • Профил
Re: записване на HTML таблица в PDF
« Отговор #6 -: Aug 13, 2014, 23:07 »
нещо с DOM ?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
HTML редактирането
Предложения за подобрения на сайта
ogi 0 3875 Последна публикация May 16, 2002, 15:19
от ogi
визуален html редактор
Хардуерни и софтуерни проблеми
wandererbg 6 4389 Последна публикация Sep 18, 2003, 17:31
от kennedy
Научете безплатно HTML
Общ форум
contact_bogomil 6 3765 Последна публикация Jan 15, 2013, 08:45
от vyrgozunqk
HTML/php редактор
Идеи и мнения
stanev 1 1982 Последна публикация Jan 04, 2005, 01:38
от gamehack
HTML Framesets или Стилизиран HTML с CSS?
Web development
rumen6787 12 4056 Последна публикация Nov 09, 2011, 09:37
от HerpaMoTeH