1

I am attempting to use JSPDF as outlined here:

How to properly use jsPDF library

I am using this inside of a wordpress site and believe I might be having an issue with "no conflict mode".

There is a working jsfiddle in the previous thread which I am trying to emulate but its not working, I believe due to noconflict mode.

I tried to wrap it like this :

    <script>

jQuery.noConflict();
(function($) {

  function demoFromHTML() {
    var pdf = new jsPDF('p', 'pt', 'letter');
    // source can be HTML-formatted string, or a reference
    // to an actual DOM element from which the text will be scraped.
    source = $('#MyTable')[0];

    // we support special element handlers. Register them with jQuery-style 
    // ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
    // There is no support for any other type of selectors 
    // (class, of compound) at this time.
    specialElementHandlers = {
        // element with id of "bypass" - jQuery style selector
        '#bypassme': function (element, renderer) {
            // true = "handled elsewhere, bypass text extraction"
            return true
        }
    };
    margins = {
        top: 80,
        bottom: 60,
        left: 40,
        width: 522
    };
    // all coords and widths are in jsPDF instance's declared units
    // 'inches' in this case
    pdf.fromHTML(
    source, // HTML string or DOM elem ref.
    margins.left, // x coord
    margins.top, { // y coord
        'width': margins.width, // max width of content on PDF
        'elementHandlers': specialElementHandlers
    },

    function (dispose) {
        // dispose: object with X, Y of the last line add to the PDF 
        //          this allow the insertion of new lines after html
        pdf.save('Test.pdf');
    }, margins);
}
})(jQuery);


 </script>

If I click my button though, the console has: "Uncaught ReferenceError: demoFromHTML is not defined"

<a href="javascript:demoFromHTML()" class="button">PDF Download</a>

How can I wrap this properly?

Community
  • 1
  • 1
Zack Bluem
  • 83
  • 1
  • 2
  • 11
  • It's not a no conflict issue b/c jspdf is not a jquery dependent script. You need some of the other libraries from their github repo. – colecmc Apr 20 '16 at 15:47
  • I needed all this to make it work: import jsPDF from '../vendors/jsPDF/jspdf'; import jsPDFSfp from '../vendors/jsPDF/plugins/standard_fonts_metrics'; import jsPDFStts from '../vendors/jsPDF/plugins/split_text_to_size'; import jsPDFPng from '../vendors/jsPDF/plugins/png_support'; import jsPDFCx2d from '../vendors/jsPDF/plugins/context2d'; import jsPDFCnvs from '../vendors/jsPDF/plugins/canvas'; import jsPDFAnno from '../vendors/jsPDF/plugins/annotations'; import jsPDFHtm2Cnvs from '../vendors/jsPDF/libs/html2canvas/dist/html2canvas'; import jsPDFHtm2Pdf from '../vendors/jsPDF/libs/html2pdf'; – colecmc Apr 20 '16 at 16:01
  • 1
    @colecmc according to the previous thread mentioned I only need to add '' while I was troubleshooting...at one point I wrapped it incorrectly, and the pdf was being generated on page load. So I know that it's partially working. – Zack Bluem Apr 20 '16 at 16:01

0 Answers0