HTML, CSS, IMG (SVG) в PDF с помощью JS JSPDF

1

Я хочу преобразовать div в pdf и загрузить его.

Я использую файл изображения svg, который растягивается, когда я его загружаю.

Этот код хорошо работает в браузере Safari. растягивает изображение в хроме и удаляет изображения в firefox. Текст генерируется динамически.

Изображение 174551

это код, который я использую

JS:

    <script>
    // Define variables
    var
     form = $('#certificateDiv'),
     cache_width = form.width(),
     cache_height = form.height(),
     a4 = [595.28, 841.89]; // for a5 size paper width and height




    //create pdf
    function createPDF() {
        $('#exportBtn').addClass("hide");
        //form.removeClass('back-repeat');
        if (cache_height > 600)
            cache_height = 600;

        // Call create canvas function
        getCanvas().then(function (canvas) {
            var
             img = canvas.toDataURL("image/png"),
             doc = new jsPDF({
                 unit: 'px',
                 format: 'a4'
             });
            doc.addImage(img, 'JPEG', 10, 10, 430, cache_height);
            var FileName = '@ViewBag.ModuleName';
            doc.save(FileName+'.pdf');
            form.width(cache_width);
        });
        $('#exportBtn').removeClass("hide");
        //form.addClass('back-repeat');
    }

    // create canvas object
    function getCanvas() {

        form.width((a4[0] * 1.2)).css('max-width', 'none');
        return html2canvas(form, {
            imageTimeout: 3000,
            removeContainer: true
        });
    }



</script>

Код Asp:

    <div id="OuterCertificate">
        <div id="certificateDiv" class="certificate-container-span">
            <img src="@CertificateURL" class="certificate-image">
            <div class="certificate_inner">
                <div class="certificate-title">@Model.Title</div>
                <div class="certificate-message">
                    @Html.Raw(Model.Message)

                </div>
            </div>
            <a id="exportBtn" class="btn btn-sm btn-default no-print" onclick="createPDF();"><i class="filetypes filetypes-pdf"></i>Export</a>

        </div>
    </div>

И вот как это выглядит после загрузки

Изображение 174551

Теги:
model-view-controller
pdf
jspdf
html2canvas

1 ответ

0

Вы должны использовать размер a4, объявленный в переменной a4 вместо 430, и cache_height в файле doc.addImage

Ваше изображение выглядит растянутым из-за неправильной ширины и высоты.

  • 0
    Это не работает, изображение остается прежним

Ещё вопросы

Сообщество Overcoder
Наверх
Меню