8

As title says, is there any PDF creator / generator for Angular?

I have seen https://github.com/MrRio/jsPDF, but can't find any for Angular. I want to make an html page to a pdf file for download.

2
  • 1
    I've the same question. I've tried jsPDF but it has some problems, like alignment issues. Sometimes it seems as if some layers overlap its parent's border and some times image does not appear. So, i was wondering if there is an AngularJS library or anyother alternative library/module for creating PDF out of the web page. Commented Jun 18, 2015 at 4:48
  • 1
    Use this solution from a 99% similar question here: stackoverflow.com/questions/34049956/… Commented Jun 24, 2016 at 13:52

4 Answers 4

6

You can wrap the JavaScript project you mentioned into a service that you call throughout your app. This is actually a rather standard practice and it also isolates your code if you ever need to change the underlying implementation .

Sign up to request clarification or add additional context in comments.

1 Comment

How can this be achieved?
5

Looks like @Mike had it close there. A few quick changes generated a decent looking file and brought up a print pop-up.

1 - Give the area that you want to print an ID of 'printArea'

2 - Add the $window service

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

1 Comment

This is a good idea. But what I am looking for is a solution similar to "Export to excel" where the user clicks a button and the file gets downloaded for you. Only in my case I want an "Export to PDF" option.
1

You can use window.print() which prints current HTML document. Use media queries to adjust styles document. You can build your document in fly and call print anytime you want

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

Some code from one of my project, print's only content from table:

 $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(); }; 

3 Comments

Can you put a fiddle together for this? Abit confused as to how this would work?
Hi Mike, how would this example work within Angular JS, also I want to save not print?
This example will work with AngularJS, you just have to find element programatically, put its content to iframe and print, like in example. You can't skip this print dialog with settings, its up to browser. SO maybe you should use jsPDF, it seems to be easy adjustable with angular, just say when/where do you want trigger print so I will try to help. You can provide some code.
1

There's this Angular directive wrapping up jsPDF functionality:

https://github.com/sayanee/angularjs-pdf

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.