Я получаю сообщение об ошибке при попытке конвертировать HTML в PDF - PullRequest
0 голосов
/ 15 мая 2019

Я использовал html to PDF java-script на предыдущих страницах, он работает нормально, но когда я пытаюсь использовать его на странице, где я использую CKeditor, и пытаюсь преобразовать этот код в PDF.но как-то я получаю сообщение об ошибке specialelementhandler не определено в консоли

Я получаю сообщение об ошибке при попытке преобразовать HTML в PDF Получение этой ошибки

Я получаю сообщение об ошибке при попытке конвертировать HTML в PDF Получение этой ошибки

Uncaught ReferenceError: specialElementHandlers is not defined
    at HTMLButtonElement.<anonymous> (MailMergeCKEditor:71)
    at HTMLButtonElement.dispatch (jquery-1.12.3.min.js:3)
    at HTMLButtonElement.r.handle

Я хочу преобразовать весь текст, который есть в CKeditor, в формат PDF

<head>

    <title>Using placeholders</title>
    <script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
    <script src="https://cdn.ckeditor.com/4.11.4/standard-all/ckeditor.js"></script>
    <button id="cmd">Generate PDF</button>


    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script>
</head>

<body id="bodyclass">
    <textarea cols="10" id="editor1" name="editor1" rows="10" data-sample-short>&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href=&quot;https://ckeditor.com/&quot;&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;
<p>
  User Can modify this 
</p>

<m class="a">
  User Can't modify this
</m>


<p>
    User Can modify this
</p>

</textarea>


    <div id="editor"></div>
    <script>
        CKEDITOR.replace('editor1', {
            extraPlugins: 'placeholder',
            height: 220,
            allowedContent: 'm'






        });
        CKEDITOR.config.allowedContent = true;




        CKEDITOR.on('dialogDefinition', function (event) {
            if ('placeholder' == event.data.name) {
                var input = event.data.definition.getContents('info').get('name');
                input.type = 'select';
                input.items = [['Company'], ['Email'], ['First Name'], ['Last Name']];
                input.setup = function () {
                    this.setValue('Company');
                };
            }
        });


 var doc = new jsPDF();

$('#cmd').click(function () {   
    doc.fromHTML($('#bodyclass').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});



    </script>
</body>

</html>

1 Ответ

1 голос
/ 15 мая 2019

По сути, вы ничего не присвоили переменной specialElementHandlers.

Сразу после вашего оператора var doc = new jsPDF(); вам нужно добавить следующий блок:

var specialElementHandlers = {
    '#editor1': function (element, renderer) {
        return true;
    }
};

После добавления этого, попробуйте обновить страницу, надеюсь, ваша проблема будет решена.

Надеюсь, это поможет!

...