2015-01-21 6 views
8

Jak mówi tytuł, czy istnieje jakiś twórca/generator PDF dla Angular?Angular JS generujący pliki PDF - dowolne moduły twórców?

Widziałem https://github.com/MrRio/jsPDF, ale nie mogę znaleźć żadnego dla Angular. Chcę, aby strona html do pliku pdf do pobrania.

+1

Mam to samo pytanie. Próbowałem jsPDF, ale ma pewne problemy, takie jak problemy z wyrównaniem. Czasami wydaje się, że niektóre warstwy nakładają się na granicę rodzica, a czasami obraz się nie pojawia. Tak więc zastanawiałem się, czy istnieje biblioteka AngularJS lub jakakolwiek inna biblioteka/moduł do tworzenia plików PDF ze strony internetowej. –

+1

Użyj tego rozwiązania z 99% podobnego pytania tutaj: http://stackoverflow.com/questions/34049956/generate-pdf-from-html-using-pdfmake-in-angularjs – PSyLoCKe

Odpowiedz

6

Możesz zawinąć projekt JavaScript, o którym wspomniałeś, w usługę, do której dzwonisz w swojej aplikacji. Jest to właściwie standardowa praktyka i izoluje twój kod, jeśli zajdzie potrzeba zmiany podstawowej implementacji.

+13

Jak można to osiągnąć? – Sole

1

Możesz użyć window.print(), która drukuje bieżący dokument HTML. Użyj zapytań o media, aby dostosować dokument stylu. Możesz budować swój dokument w lotnym i druku wezwanie kiedy tylko chcesz

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

Niektóre kodu z jednego z mojego projektu, druku zawartości tylko z tabeli:

$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

Czy umieścisz w tym celu skrzypce? Abit mylić, jak to działa? – Sole

+0

Również jaki znacznik dla przycisku zostanie użyty? – Sole

+0

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

5

Wygląda @Mike gdyby nie zamknąć. Kilka szybkich zmian wygenerowało przyzwoicie wyglądający plik i wyświetliło pop-up.

1 - Daj obszar, który chcesz wydrukować identyfikator 'printArea'

2 - dodaj usługę

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

To jest dobry pomysł. Ale szukam rozwiązania podobnego do "Eksportuj do programu Excel", w którym użytkownik kliknie przycisk, a plik zostanie pobrany. Tylko w moim przypadku chcę opcję "Eksportuj do PDF". –

+1

Jest to dobre, gdy chcesz wydrukować jakiś dokument. –

Powiązane problemy