【问题标题】:How to keep some formatting and paragraphs when using jsPDF?使用jsPDF时如何保留一些格式和段落?
【发布时间】:2014-10-31 10:38:26
【问题描述】:

好的,我有一张基本表格,用于记录我为健身房创建的时间表。我希望能够使用 jsPDF 下载该表。截至目前,我已经能够很好地下载表格,但是有些事情我无法开始工作。

首先,在我的一生中,我无法在下载的 PDF 中让表格全宽。我已经阅读了几十篇关于 jsPDF 的帖子,但没有一个能够解决问题!

其次,每个单元格中的信息在 3 个不同的p 标签中,因此应该在三个不同的行上,但它是把行混在一起。

第三,我希望单元格保持文本居中对齐。

下面的 jsFiddle 显示了我所得到的,但是最后这三个项目真的开始困扰我,我已经研究了它没有运气......

http://jsfiddle.net/xzZ7n/695/

function demoFromHTML() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#editor')[0];

specialElementHandlers = {
    // element with id of "bypass" - jQuery style selector
    '#bypassme': function (element, renderer) {
        // true = "handled elsewhere, bypass text extraction"
        return true
    }
};
margins = {
    top: 30,
    bottom: 30,
    left: 40,
    width: '100%'
};

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) {

    pdf.save('Test.pdf');
}, margins);
}

【问题讨论】:

    标签: jquery html pdf pdf-generation jspdf


    【解决方案1】:

    包括html2canvas,然后使用pdf.addHTML() 而不是pdf.fromHTML()。它工作得很好。我使用了它,它保留了页面中的所有样式。

    这是我的代码:

     var pdf = new jsPDF('p', 'pt', 'letter');
     pdf.addHTML($('#NameOfTheElementYouWantToConvertToPdf')[0], function () {
         pdf.save('Test.pdf');
     });
    

    【讨论】:

    • 我将它添加到服务器,但现在当它呈现 PDF 时,它是完全黑色的。有什么方法可以解释一下这个方法吗?
    • 确保将背景颜色设置为白色。
    • 我不明白你的意思。我正在浏览 html2canvas 的文档,但找不到任何东西
    • 当我使用它时,我发现我使用的 CSS 框架 Bootstrap 将背景设置为黑色,我需要将一些 HTML 标签的背景颜色设置为白色。我希望你也是这样,否则我不知道是什么原因造成的。我更新了答案以包含我正在使用的代码。我在那里并没有做任何特别的事情。
    • 它实际上不是导致黑色背景的引导程序。显然 PDF 默认为黑色背景。您需要将背景显式设置为白色。至少在我的例子中。
    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2016-07-11
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多