【问题标题】:Does external css get applied to the pdfs generated by jsPDF外部 css 是否应用于 jsPDF 生成的 pdf
【发布时间】:2024-07-06 08:35:01
【问题描述】:

我已经开始使用 jspdf 制作一些演示。我有一个 html 文件,我的 css 在外部文件中。

我已经编写了以下代码来生成我的 pdf

$('#pdfButton').on('click', function(){

   var pdf = new jsPDF('p','in','letter')
   , source = $('#main')[0]
   , specialElementHandlers = {
      '#bypassme': function(element, renderer){
      return true
      }
   }

  pdf.fromHTML(
     source // HTML string or DOM elem ref.
      , 0.5 // x coord
      , 0.5 // y coord
      , {
            'width':700 // max width of content on PDF
            , 'elementHandlers': specialElementHandlers
       }
   )
   pdf.output('dataurl');

   });


});

其中 ma​​in 是要导出为 pdf 的内容的 div 的 id。 内容导出为 pdf,但不是全部内容(pdf 被剪切)。它可以是动态内容。此外,我在外部文件中的 css 没有得到应用,table-row、background-color 等样式也没有得到应用。

如何在生成 pdf 之前将我的外部 css 应用到 pdf? jsPDF ..甚至可以吗?请有任何建议。

提前致谢

【问题讨论】:

    标签: javascript html css jspdf


    【解决方案1】:

    据我所知,jsPDF 不采用外部 css。事实上,它甚至不需要内联 CSS。目前不适合使用jspdf将html转为pdf。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      请记住,当您在 HTML 中对内容进行 PDF 处理时,实际上是将它们打印到文件中。这意味着您需要理想地创建打印样式表,但也要记住打印样式表意味着它会忽略背景颜色等内容。解决这个问题的方法是在您的打印样式表中有一个背景图像,即颜色。

      另请参阅这篇文章,http://css-tricks.com/dont-rely-on-background-colors-printing/

      希望有帮助

      【讨论】:

      • 能否提供一些有关打印样式表的链接
      • 打印样式表实际上与普通样式表相同,但是它的包含中有 media="print"。您在这里的主要问题是因为您试图在打印样式表中使用背景颜色,这根本行不通,因为它是他的打印机或浏览器的用户设置,而不是您可以设置的东西。这是因为并非所有用户都有彩色打印机。
      • 目前我并不担心颜色,我唯一担心的是我有一个 html 表格并且我添加了一些 css 到它,该表格没有被呈现为表格。但被渲染为乱码。对问题进行了更改...感谢您的宝贵时间
      • 设置一个小提琴,我也许可以提供帮助
      • jsfiddle.net/y2b7Q/327 在这个小提琴中,我必须按原样获取表格的 pdf,但是当我们点击生成 pdf 时,我们会看到一个乱码