【问题标题】:Is it possible to modify the DOM before the page is sent to the printer?是否可以在页面发送到打印机之前修改 DOM?
【发布时间】:2025-12-18 19:30:01
【问题描述】:

我有一个 print.css 在打印时应用于文档。是否可以在页面实际发送到打印机之前修改 DOM(重新定位元素)?

或者我可以修改 DOM,一旦修改后通过 javascript print() 打印文档。

【问题讨论】:

    标签: javascript jquery printing


    【解决方案1】:

    我发现最好的方法是使用print media stylesheet

    <link rel="stylesheet" type="text/css" media="all" href="default.css" />
    <link rel="stylesheet" type="text/css" media="print" href="print.css" />
    

    然后,当呈现文档以供打印时,您可以通过样式表中的 css 修改 dom。

    你想通过什么方式来修改使用这种方法无法实现的dom?

    【讨论】:

    • 所以我有一个使用表格的网格布局,我希望在打印时将表格的每个象限堆叠在一起,以便更具可读性。
    • 我不明白你的意思。
    【解决方案2】:

    我使用的一个技巧是在页面中插入一个隐藏的 iframe,并仅将我想要打印的内容复制到其中,然后从 iframe 中调用window.print()

    【讨论】:

    • 如果用户从键盘或浏览器菜单开始打印,会怎样?
    最近更新 更多