javascript - 打印时如何用PDF替换网站

标签 javascript html css

我制作了一份网站简历,在浏览器上看起来不错,但当用户尝试打印时却非常糟糕。我可以尝试使用 CSS 来改进打印样式,但即使那样也很难保证它看起来像精心策划的 PDF 简历。

我的问题是,有没有办法在用户点击打印时用预制的 PDF 替换页面?我尝试了以下部分成功:

放置<embed src= "main.pdf" id="print-pdf">在主要的 html 正文中。 然后进行造型:

@media screen {
  #print-pdf {
    display: none;
  }
}

@media print {
  #print-pdf {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
  }
}

打印时它会在整个页面上覆盖嵌入元素,但不会呈现 PDF。如果我在屏幕媒体中启用该 block ,它仍然会呈现它。似乎只为打印媒体启用它并没有给它足够的时间在打印例程拍摄快照之前加载。

最佳答案

最好的选择是处理媒体查询,让网站在所有情况下都看起来最好。

从您的 Angular 来看,这也是最受支持的选择。您不必在 2 个位置维护数据,您可以努力使一个位置的外观和感觉最佳。

提供“下载为 PDF”按钮会有所帮助,但这并不能保证有人无论如何都不会尝试打印该页面,最好涵盖所有基础......

如果您愿意,可以使用下载为 pdf 的按钮,但要确保网站在所有情况下都能正常运行,并在媒体查询中隐藏该下载按钮。

这就是我们生活的世界。

关于javascript - 打印时如何用PDF替换网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331897/

相关文章:

javascript - 覆盖数据而不生成新的键/节点

javascript - 搜索价格文本,执行功能,并替换为输出

javascript - 如何使用我自己的自定义下拉菜单控制 DataTables 生成的选择菜单?

html - 在 IE <9 中更改文本选择的颜色

javascript - adapt.js 960 gs 与 wordpress

html - Safari 不会在 <div> 中显示背景图像

javascript - @ 在 lodash 的这段代码中做了什么?

html - 哪些浏览器支持 `overflow-y` ?

jquery - 更改事件 <li> Bootstrap CSS

html - 3*30% div 不会垂直居中并且不适合 100% parent-div