首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用window.print()自动将页面导出到PDF吗?

我可以使用window.print()自动将页面导出到PDF吗?
EN

Stack Overflow用户
提问于 2019-07-03 15:57:23
回答 2查看 6.6K关注 0票数 3

我正在搜索将我的HTML导出为PDF格式的方法。我目前的领导是使用window.print()发送页面打印,使目标‘另存为PDF',并继续从那里。这并不完美,我想问的是,是否可以编写代码来自动化用户单击“另存为PDF”的部分以及他们命名该文件的部分。

理想情况下,所发生的一切是用户单击要导出的按钮,单击“另存为PDF”在幕后发生,并且文件自动命名为report.pdf。这有可能编纂成法典吗?

对于将我的HTML导出为PDF格式的其他方法,我也愿意接受任何建议,但是我不能使用以下任何一个库来帮助我:

  • jsPDF本身不支持CSS,因此是不可能的。
  • 我知道jsPDF可以与rasterizeHTMLhtml2canvas一起使用,但是这两项工作都是通过截图和将截图附加到文件中来实现的。这意味着页面无法使用CTRL+F搜索,这是我的项目的用例之一。

另一个选择是使用Xportability库,但到目前为止,我还无法将任何样式表传递到PDF生成调用中。下面是错误代码,它用所有记录的数据生成PDF,但不使用所提供的CSS样式:

代码语言:javascript
运行
复制
<script id="finalReport" type="text/x-kendo-template">
    <h3 class="report-header">stub title</h3>
    <table class="report-table">
        <tr>
            <td>Report ID:</td>
            <td>stub</td>
        </tr>
    </table>
</script>

<style>
  .report-header {
        font-style: italic;
        font-weight: bold;
        text-align: left;
    }
</style>

<script id="main" type="text/javascript">
    function generateReport() {
        return xepOnline.Formatter.Format("finalReport", {
            render: 'download', pageWidth: '216mm', pageHeight: '279mm'
        });
    }
</script>

如何在样式表中传递?我可以手动添加样式到每个单一的元素,它的工作方式,但这将是可怕的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-04 10:45:57

您可以使用Kendo pdf-export组件下载特定的div元素。

样本代码:

代码语言:javascript
运行
复制
$(".export-pdf").click(function() {
        // Convert the DOM element to a drawing using kendo.drawing.drawDOM
        kendo.drawing.drawDOM($(".content-wrapper"))
        .then(function(group) {
            // Render the result as a PDF file
            return kendo.drawing.exportPDF(group, {
                paperSize: "auto",
                margin: { left: "1cm", top: "1cm", right: "1cm", bottom: "1cm" }
            });
        })
        .done(function(data) {
            // Save the PDF file
            kendo.saveAs({
                dataURI: data,
                fileName: "HR-Dashboard.pdf",
                proxyURL: "https://demos.telerik.com/kendo-ui/service/export"
            });
        });
    });

对于fileName,您可以给出您想要的任何文件名,它将用该文件名保存文件。

网址: PDF出口/文件出口

票数 0
EN

Stack Overflow用户

发布于 2019-07-03 16:02:16

一旦到达打印页面,就可以通过选择“目标”按钮轻松地告诉文档以pdf格式打印。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56874016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档