0

我正在尝试使用 jspdf 将 html 转换为 pdf 客户端。我目前拥有的代码是这样的:(其中大部分用于分页符

    $(document).ready(function() {
    $("#runpdf").click(function(event) {
        var partsec = $("main_body page1");
        html2canvas(document.body, {
            logging: true,
            profile: true,
            allowTaint: true,
            letterRendering: true,
            onrendered: function(canvas) {
                var imageData = canvas.toDataURL("image/jpeg");
                var image = new Image();
                image = Canvas2Image.convertToJPEG(canvas);
                var doc = new jsPDF();
                doc.page=1;
                //FIRST PAGE****************************************
                doc.addImage(imageData, 'JPEG', -115, 5, 440 , 875);

                var croppingYPosition = 1250;
                count = (image.height) / 3300;
                for (var i =1; !(i >= count); i++) {
                    doc.addPage();
                    var sourceX = 0;
                    var sourceY = croppingYPosition;
                    var sourceWidth = image.width;
                    var sourceHeight = 1100;
                    var destWidth = 1600;
                    var destHeight = 1090;
                    var destX = -450
                    var destY = 0;
                    var canvas1 = document.createElement('canvas');
                    canvas1.setAttribute('height', 1200);
                    canvas1.setAttribute('width', destWidth);
                    var ctx = canvas1.getContext("2d");
                    ctx.drawImage(image,
                                    sourceX,
                                    sourceY,
                                    sourceWidth,
                                    sourceHeight,
                                    destX,
                                    destY,
                                    destWidth,
                                    destHeight);
                    var image2 = new Image();
                    image2 = Canvas2Image.convertToJPEG(canvas1);
                    image2Data = image2.src;
                    doc.addImage(image2Data, 'JPEG', 12, 10);
                    croppingYPosition += 1230;
                }

                doc.save('test.pdf');
                }
                });
    });
});

但是,我不想使用任意的硬编码像素值来设置分页符,而是让它搜索特定的 html 标记、id、类或其他一些标识符来搜索在哪个位置进行分页符。例如,代码向下查找 html 直到找到类 .pagebreak 的内容,此时它将获取其上方的所有内容并将其拉伸以适应 pdf 页面(我可以做有弹性的部分,我只需要实际分页符的帮助) 然后在分页符后立即查看并重新开始。希望这是有道理的。谢谢!

4

0 回答 0