2015-01-21 2 views
8

Как гласит название, есть ли какой-либо PDF-создатель/генератор для Angular?Угловая генерация JS PDF - любые модули создателя?

Я видел https://github.com/MrRio/jsPDF, но не могу найти его для Углового. Я хочу сделать html-страницу в pdf-файл для загрузки.

+1

У меня тот же вопрос. Я пробовал jsPDF, но у него есть некоторые проблемы, такие как проблемы выравнивания. Иногда кажется, что некоторые слои перекрывают границу своего родителя, а иногда изображение не появляется. Поэтому мне было интересно, есть ли библиотека AngularJS или любая другая альтернативная библиотека/модуль для создания PDF-файла с веб-страницы. –

+1

Используйте это решение из 99% аналогичного вопроса здесь: http://stackoverflow.com/questions/34049956/generate-pdf-from-html-using-pdfmake-in-angularjs – PSyLoCKe

ответ

6

Вы можете обернуть проект JavaScript, о котором вы упомянули, в службу, которую вы вызываете во всем приложении. Это на самом деле довольно стандартная практика, и она также изолирует ваш код, если вам когда-либо понадобится изменить базовую реализацию.

+13

Как это можно достичь? – Sole

1

Вы можете использовать window.print(), который печатает текущий HTML-документ. Используйте медиа-запросы для настройки документа стилей. Вы можете создать свой документ в лету и вызов печати в любое время вы хотите

@media print { 
/* All your print styles go here */ 
#header, #footer, #nav { display: none !important; } 
} 

Некоторые кода из одного моего проекта, распечатайте только контент из таблицы:

$scope.print = function() { 
    console.log('modal print'); 

    var table = document.querySelector('.CSSTableGenerator').innerHTML; 
    var myWindow = window.open('', '', 'width=800, height=600'); 
    myWindow.document.write(table); 
    myWindow.print(); 

    }; 
+0

Можете ли вы поставить скрипку вместе для этого? Абит путался, как это будет работать? – Sole

+0

Также будет использоваться разметка для кнопки? – Sole

+0

http://jsfiddle.net/cSN9G/2/ – Mike

5

Похоже @ Mike был его закрыть там. Несколько быстрых изменений создали приличный файл и подняли всплывающее окно.

1 - Дайте область, которую вы хотите напечатать идентификатор 'printArea'

2 - Добавить $window услуги

$scope.printIt = function(){ 
    var table = document.getElementById('printArea').innerHTML; 
    var myWindow = $window.open('', '', 'width=800, height=600'); 
    myWindow.document.write(table); 
    myWindow.print(); 
}; 
+0

Это хорошая идея. Но то, что я ищу, - это решение, подобное «Экспорт в excel», когда пользователь нажимает кнопку, и файл загружается для вас. Только в моем случае я хочу вариант «Экспорт в PDF». –

+1

Это хорошо, когда вы хотите распечатать документ. –

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