Giter VIP home page Giter VIP logo

jspdf's Introduction

jsPDF

Continous Integration Code Climate Test Coverage GitHub license Total alerts Language grade: JavaScript Gitpod ready-to-code

A library to generate PDFs in JavaScript.

You can catch me on twitter: @MrRio or head over to my company's website for consultancy.

jsPDF is now co-maintained by yWorks - the diagramming experts.

Install

Recommended: get jsPDF from npm:

npm install jspdf --save
# or
yarn add jspdf

Alternatively, load it from a CDN:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>

Or always get latest version via unpkg

<script src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js"></script>

The dist folder of this package contains different kinds of files:

  • jspdf.es.*.js: Modern ES2015 module format.
  • jspdf.node.*.js: For running in Node. Uses file operations for loading/saving files instead of browser APIs.
  • jspdf.umd.*.js: UMD module format. For AMD or script-tag loading.
  • polyfills*.js: Required polyfills for older browsers like Internet Explorer. The es variant simply imports all required polyfills from core-js, the umd variant is self-contained.

Usually it is not necessary to specify the exact file in the import statement. Build tools or Node automatically figure out the right file, so importing "jspdf" is enough.

Usage

Then you're ready to start making your document:

import { jsPDF } from "jspdf";

// Default export is a4 paper, portrait, using millimeters for units
const doc = new jsPDF();

doc.text("Hello world!", 10, 10);
doc.save("a4.pdf");

If you want to change the paper size, orientation, or units, you can do:

// Landscape export, 2ร—4 inches
const doc = new jsPDF({
  orientation: "landscape",
  unit: "in",
  format: [4, 2]
});

doc.text("Hello world!", 1, 1);
doc.save("two-by-four.pdf");

Running in Node.js

const { jsPDF } = require("jspdf"); // will automatically load the node version

const doc = new jsPDF();
doc.text("Hello world!", 10, 10);
doc.save("a4.pdf"); // will save the file in the current working directory

Other Module Formats

AMD
require(["jspdf"], ({ jsPDF }) => {
  const doc = new jsPDF();
  doc.text("Hello world!", 10, 10);
  doc.save("a4.pdf");
});
Globals
const { jsPDF } = window.jspdf;

const doc = new jsPDF();
doc.text("Hello world!", 10, 10);
doc.save("a4.pdf");

Optional dependencies

Some functions of jsPDF require optional dependencies. E.g. the html method, which depends on html2canvas and, when supplied with a string HTML document, dompurify. JsPDF loads them dynamically when required (using the respective module format, e.g. dynamic imports). Build tools like Webpack will automatically create separate chunks for each of the optional dependencies. If your application does not use any of the optional dependencies, you can prevent Webpack from generating the chunks by defining them as external dependencies:

// webpack.config.js
module.exports = {
  // ...
  externals: {
    // only define the dependencies you are NOT using as externals!
    canvg: "canvg",
    html2canvas: "html2canvas",
    dompurify: "dompurify"
  }
};

In Vue CLI projects, externals can be defined via the configureWebpack or chainWebpack properties of the vue.config.js file (needs to be created, first, in fresh projects).

In Angular projects, externals can be defined using custom webpack builders.

In React (create-react-app) projects, externals can be defined by either using react-app-rewired or ejecting.

TypeScript/Angular/Webpack/React/etc. Configuration:

jsPDF can be imported just like any other 3rd party library. This works with all major toolkits and frameworks. jsPDF also offers a typings file for TypeScript projects.

import { jsPDF } from "jspdf";

You can add jsPDF to your meteor-project as follows:

meteor add jspdf:core

Polyfills

jsPDF requires modern browser APIs in order to function. To use jsPDF in older browsers like Internet Explorer, polyfills are required. You can load all required polyfills as follows:

import "jspdf/dist/polyfills.es.js";

Alternatively, you can load the prebundled polyfill file. This is not recommended, since you might end up loading polyfills multiple times. Might still be nifty for small applications or quick POCs.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/polyfills.umd.js"></script>

Use of Unicode Characters / UTF-8:

The 14 standard fonts in PDF are limited to the ASCII-codepage. If you want to use UTF-8 you have to integrate a custom font, which provides the needed glyphs. jsPDF supports .ttf-files. So if you want to have for example Chinese text in your pdf, your font has to have the necessary Chinese glyphs. So, check if your font supports the wanted glyphs or else it will show garbled characters instead of the right text.

To add the font to jsPDF use our fontconverter in /fontconverter/fontconverter.html. The fontconverter will create a js-file with the content of the provided ttf-file as base64 encoded string and additional code for jsPDF. You just have to add this generated js-File to your project. You are then ready to go to use setFont-method in your code and write your UTF-8 encoded text.

Alternatively you can just load the content of the *.ttf file as a binary string using fetch or XMLHttpRequest and add the font to the PDF file:

const doc = new jsPDF();

const myFont = ... // load the *.ttf font file as binary string

// add the font to jsPDF
doc.addFileToVFS("MyFont.ttf", myFont);
doc.addFont("MyFont.ttf", "MyFont", "normal");
doc.setFont("MyFont");

Advanced Functionality

Since the merge with the yWorks fork there are a lot of new features. However, some of them are API breaking, which is why there is an API-switch between two API modes:

  • In "compat" API mode, jsPDF has the same API as MrRio's original version, which means full compatibility with plugins. However, some advanced features like transformation matrices and patterns won't work. This is the default mode.
  • In "advanced" API mode, jsPDF has the API you're used from the yWorks-fork version. This means the availability of all advanced features like patterns, FormObjects, and transformation matrices.

You can switch between the two modes by calling

doc.advancedAPI(doc => {
  // your code
});
// or
doc.compatAPI(doc => {
  // your code
});

JsPDF will automatically switch back to the original API mode after the callback has run.

Support

Please check if your question is already handled at Stackoverflow https://stackoverflow.com/questions/tagged/jspdf. Feel free to ask a question there with the tag jspdf.

Feature requests, bug reports, etc. are very welcome as issues. Note that bug reports should follow these guidelines:

  • A bug should be reported as an mcve
  • Make sure code is properly indented and formatted (Use ``` around code blocks)
  • Provide a runnable example.
  • Try to make sure and show in your issue that the issue is actually related to jspdf and not your framework of choice.

Contributing

jsPDF cannot live without help from the community! If you think a feature is missing or you found a bug, please consider if you can spare one or two hours and prepare a pull request. If you're simply interested in this project and want to help, have a look at the open issues, especially those labeled with "bug".

You can find information about building and testing jsPDF in the contribution guide

Credits

  • Big thanks to Daniel Dotsenko from Willow Systems Corporation for making huge contributions to the codebase.
  • Thanks to Ajaxian.com for featuring us back in 2009. (Internet Archive Wayback Machine reference)
  • Our special thanks to GH Lee (sphilee) for programming the ttf-file-support and providing a large and long sought after feature
  • Everyone else that's contributed patches or bug reports. You rock.

License (MIT)

Copyright (c) 2010-2021 James Hall, https://github.com/MrRio/jsPDF (c) 2015-2021 yWorks GmbH, https://www.yworks.com/

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

jspdf's People

Contributors

acspike avatar bjoerne2 avatar bwl21 avatar craigva avatar czarly avatar diegocr avatar flamenco avatar gavvers avatar greenkeeper[bot] avatar greenkeeperio-bot avatar hackbrettxxx avatar hanthomas avatar innerdaze avatar jamesbrobb avatar jirikavi avatar kakugiki avatar kurtgokhan avatar lifof avatar mdudek avatar mrrio avatar pablohess avatar quetzaluz avatar sdenardi avatar simon04 avatar simonbengtsson avatar sphilee avatar uzlopak avatar woolfg avatar yetithefoot avatar zhangshine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jspdf's Issues

Enhance addPage() to accept page width, page height.

Currently there is no option to specify format per page. All the pages use the same format specified initially while creating the PDF. Is there any work around for creating PDF with pages of different size? If not, please enhance the appPage() to accept format / page size.

Thanks,

Creating PDF from HTML

I am trying to create pdf from html using form_html plugin. But what is "setting" argument in fromHTML API. i got some error when using the below code.

MY actual code is like this.

var htmlString ="<html><body ><label>INPUT TYPE</label></body></html>";
var doc = new jsPDF('landscape','pt');
doc.fromHTML(htmlString,100,100,{});
doc.output('datauri');

filled tringles / polygons?

I can not seem to get filled shapes to work. Is it broken?

doc.setDrawColor( 255,0,255 );
doc.setFillColor( 255,255,0 );
doc.lines( [[0,0],[100,0],[0,100],[-100,0],[0,-100]], 40, 40 );  // only outline, no fill

doc.triangle( 100, 100, 120, 140, 140, 120 );

Is it possible to generate PDF with multiple images

Hi,

I am using Jqplot to generate charts and i using JSPDF to generate PDF.Her is what i m doing..
var doc = new jsPDF();

        $("div .jqplot-target").children().each(function(){            
        if($(this)[0].nodeName.toLowerCase() == "canvas")
        {
            var i=0;

            var data = canvasToImage($(this),"#ffffff");
            var jpegBinary = atob(data);
            doc.addImage(jpegBinary, 'JPEG', 10 + i , 10 + i , 50 + i, 50 + i); 
            i=i+50;               
        }
        });

        doc.output('datauri');

function canvasToImage(canvas,backgroundColor)
{

            //cache height and width 
            var w = canvas[0].width; 
            var h = canvas[0].height;                
            var cname= canvas[0].className;
            $("." + cname).attr('width',w).attr('height',h); 
            var newCanvas = $("." + cname)[0]; 
            var newContext = newCanvas.getContext("2d"); 

            newContext.clearRect(0,0,w,h); 
            var allData = newContext.getImageData(0, 0, w, h); 

            $(canvas).each(function(){ 
                var context = $(this)[0].getContext("2d"); 
                var imageData = context.getImageData(0, 0, w, h); 

                var pixels = 4 * w * h; 
                while (pixels--) { 
                    allData.data[pixels] = allData.data[pixels] + 
                    imageData.data[pixels]; 
                } 
            }); 

            newContext.putImageData(allData, 0,0); 

            newContext.globalCompositeOperation = "destination-over"; 
            newContext.fillStyle = backgroundColor; 
            newContext.fillRect(0,0,w,h); 

           //get the image data from the canvas 
           var imageData = newCanvas.toDataURL("image/jpeg").slice('data:image/jpeg;base64,'.length);; 
           //return the Base64 encoded data url string 
           return imageData; 
        }

but i am not able to see the images i m just seeing a blank pdf with 1 rectangle.

Measure text width

I would like to measure the text width of a given text with the current font and font-size.

I tried to use getStringUnitWidth in jspfd.plugin.split_text_to_size but it throws an exception because font metadata is empty.

Is it a supported scenario? is it a bug? is there a work around?

Utf8 support

Is it posible to use non-latin (e.g. cyrillin) characters?

CMYK

I have a client that want to create PDFs from HTML but they need to be in CMYK. At minimum the black font needs a K value of 100. Can jsPDF be tweaked to do this?

Thanks.

PNG Compatible

Is it possible to add png support, adding a jpeg image will cause a corruption error hen viewed in adobe reader

pdf hyperlink event

If I use: <object data="file1.pdf" onload="alert('yes')"/> with jsPDF on FF and file1.pdf has some hyperlink to say file2.pdf, then the "onload" event is well fired, object canvas is updated but the data attribute is not updated to file2.pdf (checked with DOMinspector).
It might be a FF bug but the onload event behavior on OBJECT is not well specified in HTML5.

However, is there a way that jsPDF send an event for each hyperlink click...and of course a way to get the url of the link in the user JavaScript code?

Current version not working in Firefox 18

I just implemented jsPDF on a website, everything working as expected in Chrome, yet I noticed that in Firefox 18 on Windows the script won't work as all (can easily be seen visiting jspdf.com using FF).

When using Firefox the generated PDF data will end abprutly like:

data:application/pdf;base64,W29iamVjdCBVaW50OEFycmF5XQ==

Since this also happens on the demo page I don't think this is an issue with my implementation but something else that broke the script for Firefox?

Thanks!

Linearized PDF

Does jsPDF use the possibility to render linearized PDF; render the first page quickly and concatenate the other pages in background ?. Of course the server is in charge of sending the PDF chunks asynchronously.

Table Creation

Hi,

jsPDF is very powerful tool to generate PDF at client side. We are very flexible to use this API.
Just I want to know is there any possibility to generate tables(data grids) statically or dynamically.
This will give more help to me in lot of my projects. Please anyone can suggest.

Thanks,
Ramesh

Add support for RtL, LtR, mixed text layout.

Need to figure out if unicode support will take care of it, or if the layout style needs API

From PDF spec:

WritingMode

(Optional; inheritable) The directions of layout progression for packing of ILSEs (inline progression) and stacking of BLSEs (block progression):

LrTbInline progression from left to right; block progression from top to bottom. This is the typical writing mode for Western writing systems.
RlTbInline progression from right to left; block progression from top to bottom. This is the typical writing mode for Arabic and Hebrew writing systems.
TbRlInline progression from top to bottom; block progression from right to left. This is the typical writing mode for Chinese and Japanese writing systems.

The specified layout directions shall apply to the given structure element and all of its descendants to any level of nesting. Default value: LrTb.

Inconsistent API signatures

I see us mixing inconsistent API method call signatures.

In case of older APIs, the argument order is: x, y, content, extra, args
In newer APIs (addImage, addSVG) the argument order is: 'content, x, y, extra, args`

This makes it for a disorienting experience (sorta like what I feel when I touch PHP, where this issue is beyond annoying)

Note, I am guilty of that API mess too, but would like to repent, confess, and ask for forgiveness.

Could you state your preferred method call arguments order policy? Thanks to dynamic typing, changing the order of args in offending API calls will not break backward compatibility, so, there is still a chance to fix this. Do you care?

Daniel.

Embed canvas into PDF

I wanted to inquire about the feasibility of a canvas input plugin for jsPDF. I know JPG is currently supported, but it's my understanding that only Firefox supports exporting a canvas to JPEG data.

Not a function error in jspdf.plugin.addimage.js

First post on github, i'm a fledgling free time web dev! I apologize for any lack of tact/format of my comment! Anywho, I was tinkering with jsPDF trying to generate a PDF of dynamic image content. Silly me forgot a piece of syntax one trying to utilize addImage.

Your example has,

doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);

My line of code was (brainfart!),

doc.addImage(imgData, 15, 40, 180, 180);

I kept getting this error because of it with FireBug -

format.toUpperCase is not a function
[Break On This Error]   

if (format.toUpperCase() !== 'JPEG') {

Anywho, the error kind of mislead me for a while until I double checked my test page against your example and I figured it out. I originally thought there was something wrong with the library. I just thought perhaps you could add a catch in there, perhaps something to the effect of argument.length.

  jsPDFAPI.addImage = function(imageData, format, x, y, w, h) {
        if (jsPDFAPI.addImage.length < 6) {
    throw new Error('Missing addImage arguments, please specify imagaData, format, x, y, w, h.'');
}

I hope this makes sense and my suggestion is useful. Thanks for putting together this great code :)

Regression / unit tests?

In preparation of messing with jsPDF's internals added some "unit" (really, regression-catching) tests (QUnit). ( https://github.com/willowsystems/jsPDF/tree/master/test )

These assume test.html is ran against a web server (localhost + static nginx in my case) because the reference PDF text loader is done in async Get's and that does not fly with file:.

Long story short: work great for me, but is not consumer-friendly, and, definitely browser-centric.

Please, let me know if you have some other testing set up in mind. If it's not a pain in a rear (my set up isn't for me) i would gladly use your solution and will pile up a few test on top.

Proposed object-oriented restructuring of jsPDF

I've been working on restructuring jsPDF to be object-oriented. I've pulled out all the drawing operations and implemented them in a PdfContext object with an api that is a clone of the canvas api (not all canvas features are implemented yet). The original api has been reimplimented using PdfContext as a backend. These changes will allow future drawing plugins (such as svg->pdf converters) to be written with a familiar api.

This restructuring should make potential features like stream defatle compression support much easier to implement, and hopefully things like custom fonts and advanced typesetting plugins will also be easier to write.

The current work is in coffeescript, which may not be everyone's cup of tea (pun intended), but since it is compiled to javascript, it allows API plugins to be written in javascript for those who prefer.

You can see the progress at: https://github.com/siefkenj/jsPDF/tree/coffee All demos should run.

Uint8Array is undefined

I'm trying to turn my web form into a pdf but I get this error:

0x800a1391 - Microsoft JScript runtime error: 'Uint8Array' is undefined

It opens a blank pdf in Chrome but just gives an error in IE. I've been googling for days but I can't figure it out. Any help would be really nice.

triangle documentation wrong?

the documentation for triangle states that x1,y1,x2,y2,x3,y3 are "against left or upper edge of page" but that only seems to be true for x1,y1. The rest are vectors against x1,y1?

Generated PDF seemingly ignoring positions?

I was just prototyping a small bit of functionality with the library and kept getting an issue where it positioned everything at the bottom left of the PDF when generating. Thinking it was something I had done I just outputted the default example "Hello World" but same thing, it positions it all down the bottom left overlapping everything.

I am using Chrome 21.0 and am using a manually viewed html file (file://...)

I would post up an example but its basically a html page with a button which triggers a javascript function to do EXACTLY the same as the hello world example.

Even the second page has the text down at the bottom left.

Save PDF to file with added image

When a jpeg encoded image is added to a jspdf object the resulting base64 encoded pdf output string can be viewed in chrome without a problem. However, saving the very same object to a file and trying to view that will result in an adobe reader error.

Google Chrome 19.0.1084.56 m
Adobe Reader X 10.1.0.534
Unminified code revision 100644
Minified code revision 100755

Please see the following link for a test case demonstrating the issue:
http://www.sentinel-it.nl/test/jspdf/index.html

DataURI does not work consistently across browsers/platforms

Firefox on Windows, without the built-in Adobe plugin, does not work.
Chrome on OSX doesn't work.
IE doesn't work.

Will investigate further, other output methods will fix this. Maybe use autodetection. New Flash 10 features may help with a workaround for this.

JsPDF needs to be able to render HTML

We were going to use this excellent library at work, but dealing with the formatting was going to prove to be too time consuming. Instead we went with a server-side pdf library since it could render html to pdf. If JsPDF rendered html to pdf it would make this library super awesome :-)

js files in dist not built correctly

The last line in jspdf.source.js as well as jspdf.min.js is:

libs/BlobBuilder.js/BlobBuilder.jslibs/FileSaver.js/FileSaver.js

which causes a parse error.

Also, when calling doc.save() using this dist file, the following error occurs:

ReferenceError: BlobBuilder is not defined

Insert large number of images.

Hi there,

I need to insert a large number of the same image (like 500 times).

That is 10 copies of an 88 by 55 mm 300dpi jpeg per page on 50 pages.

Above about five copies, the browser tab crashes.

Any idea why that could be?

If I decrease the resolutiion to 72dpi, it craches but after more copies.

HTML to PDF, calculate pagebreaks

Is it possible for the jsPDF to calculate pagebreaks when converting htmlcontent? I guess its not an easy task but if its just text in the HTML it should be possible to calculate when to do addpage, since the fontsize and papersize should be known.

Not an issue really but it would be great if this could be done.

Make it webworker compatible

I'm trying to generate pdfs containing fairly large images. Unfortunately this makes the page hang and Chrome just shuts it down. I thought that using a webworker could do the trick but I'm not proficient at these advanced topics. I tried to JSON.stringy(jsPDF doc) but it didn'twork (circular structure).
Is there a way to either:

  • allow for large pdf manipulation without the page hanging
  • or make the jsPDF object non circular ?

I sure hope there is.

addImages() in Appcelerator Titanium

Titanium provides a the capability of reading an image content by using a file.read() method . The method returns a binary blob which cannot be used by jsPDF .

There is a utility base64encode method which can be used to stringify the blob. The (Titanium) base64decode method decodes back to a binary blob, but I was thinking that another JavaScript base64 decoder which outputs a string could do the job of producing the file for jsPDF.

Do you think this is a sound approach? And if it is, could you advise on a suitable base64 decoder?

Thanks in advance
Richard

Text alignment/bounding box?

Hi! I've been using the jsPDF API for a while now, which despite being somewhat lacking in features, i've found it to be reliable and consistent in its output. I've been able to compensate for the former issue with some trickery, but there's a problem that I can't seem to get around of: the lack of a way to know the size (i.e. bounding box) of the text being drawn. My goal is to be able to use different text alignments and/or resize other elements according to the dimensions of the text.

Can anyone comment on this issue? Thanks in advance.

Webfonts?

I was wondering if you have plans to support webfonts, or, wether this is technically possible.

Thank you!

Multiline text (aka Word Wrap)

Hi.

I am planning to add code that automatically splits long strings into multiple text lines.

Efficient string length calculation is not going to be a problem - will use off-screen DIV to measure length of text, infer chunk lengths and cut appropriately. What is a problem is the obtuseness of DOM manipulation using pure JavaScript (and browser-specific gotchas that come with that). So, naturally will roll with what i know - jQuery, which will make my code jQuery-dependent.

This is fine for us (corporate use, we already have jQuery where that matters), but, understandably could not go well if you want to pull the code into your mainline repo.

Could you mention your suggestions / thoughts on possible addition of line wrapping code to jsPDF?

If you already have some thoughts on that, and would like to have it as part of mainline jsPDF, by all means, chime in so we can try to code in way that helps eventual pull. If you don't really care about auto line wrapping, would be good to know too as it frees our hands.

Cheers.

ie 8 not working

The demos and basic.html are not working on ie 8 anymore. I believe It was working for me a couple of days ago. Works fine on chrome, with the exception of the image demo when runnig from my machine. It fine when done from jspdf.com

Deprecated use of BlobBuilder

In Chrome Version 22.0.1229.94 in Ubuntu 12.10 I got this in the developper console:

BlobBuilder is deprecated. Use "Blob" constructor instead.

Just FYI because even with that it's working, it's just a warning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.