2015-05-28 2 views
3

У меня есть таблица, которая выглядит как:jsPDF не создавая правильный PDF

enter image description here

Я использую следующий код в попытке сгенерировать PDF, когда кто-то нажимает на кнопку PDF.

<script> 
    var doc = new jsPDF(); 

    $('#pdf').click(function() { 
     var specialElementHandlers = { 
      '#editor': function (element, renderer) { 
       return true; 
      } 
     }; 

     doc.fromHTML($('#pdfcontent').html(), 15, 15, { 
      'width': 170, 
      'elementHandlers': specialElementHandlers 
     }); 

     doc.save('sample-file.pdf'); 
    }); 
</script> 

Результирующий PDF выглядит следующим образом:

enter image description here

Как я могу получить PDF быть зеркальным отображением сайта?

ответ

0

Вы не должны ожидать, что jsPDF будет отображать содержимое вашей HTML-страницы, поскольку он анализирует HTML-код для воссоздания содержимого в формате PDF, а синтаксический анализатор HTML находится на ранней стадии (как указано на official web-site).

Я бы предложил использовать jsPDFTablePlugin, который может принимать входные данные как массив объектов с данными и нарисовать их как таблицу в формате PDF.

0

Я настоятельно рекомендую перейти на создание PDF-файлов на стороне сервера. PhantomJS сделает почти идеальный PDF-файл с пикселями для вас с поддержкой SVG и холста, и все элементы по-прежнему останутся в виде векторов! Вы должны попробовать.

С помощью клиентских PDF-генераторов, таких как упомянутый jsPDF, вы очень ограничены, и конечный результат будет далек от того, что вы ожидаете.

+0

Как я могу сделать PDF-файл '' в PhantomJS? – Jack

+0

@ Jack, начните свое путешествие с PhantomJS, прочитав руководство и некоторые основные примеры: http://phantomjs.org/screen-capture.html. В качестве выходного файла типа pdf вместо png/jpg. – slick

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