如何在保存打印页面时为文件创建自定义文件名?

问题描述 投票:0回答:5
javascript asp.net
5个回答
28
投票

9
投票

参见:

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onafterprint

打印前和打印后事件允许页面在打印开始之前更改其内容(例如,删除横幅),然后在打印完成后恢复这些更改。一般来说,您应该更喜欢使用 @media print CSS at-rule,但在某些情况下可能需要使用这些事件。

问题的解决方案是更改

document.title
事件处理程序中的
beforeprint
并在
afterprint
事件处理程序中恢复其原始值。


5
投票
onClick="document.title = "My new title";window.print();"

3
投票

我知道这是一个旧线程,但只是为了向 Lukasz Prus 答案添加一个示例,您可以使用

document.title
(如已接受的答案中所示)以及以下几行(在打印之前将页面标题更改为所需的标题,然后返回之后为原始):

window.addEventListener("beforeprint", (event) => {
  document.title='My desired save filename';
});

window.addEventListener("afterprint", (event) => {
  document.title='The original page title';
});

0
投票

您可以使用

event target
进行拦截并为
document
目标定义一个名称,如下所示:

trigger(document, fileName) {
    window.addEventListener('beforeprint', (event) => {
        if (!event) return;
        event.target.document.title = fileName;
    });
    window.print();
}
© www.soinside.com 2019 - 2024. All rights reserved.