gpt4 book ai didi

javascript - 当用户尝试打印我的页面时,如何加载自定义 PDF?

转载 作者:行者123 更新时间:2023-11-28 07:58:54 25 4
gpt4 key购买 nike

目标

media="print"在我的页面上很糟糕,我想改进它。基本上,我想在用户打印页面时改善页面的外观。

我在想。 . .

而不是在我的 media="print" 页面上隐藏和显示很多元素.我决定完全隐藏我的页面,并改为加载 PDF。我做的PDF。我不确定这是否是最好的方法,但我发现这样可以节省很多时间,并且仍然可以完全控制显示/隐藏对象。


HTML

<body >

<span id="web">
<!-- My whole site structure -->
</span>

<span id="print"><iframe src="img/USER.pdf" width="100%" height="830" ></span>


</body>

在我的 <body> 内, 我有一个 PDF

<span id="print"><iframe src="img/name.pdf" width="100%" height="830" ></span>

我通过执行以下操作在整个页面中隐藏该 PDF:

#print{
display: none;
}

然后,当用户要打印我的页面时。我想加载此 PDF,并隐藏我的整个网站。

CSS

/*Hide the whole page*/
#web{
display: none;
}


/*Show PDF back*/
#print{
display:block!important;
}

结果

它可以工作,但不幸的是,它只能在 Safari 中工作。不是 Chrome,也不是 Firefox。

  • 实现这样的目标最有效的方法是什么?
  • 有人可以帮我解决这个问题以适用于所有浏览器吗?
  • 是否有任何 JSjQuery 插件可以帮助我完成此任务?

如果还有什么我可以提供的,请告诉我。

enter image description here

最佳答案

通常的模式是提供带有文本的链接,例如“可打印版本”。然后,您只需以一种对用户而言并不意外的方式链接到 PDF。

如果您想坚持使用 CSS 打印布局,我在 CSS paged media specification 方面取得了一些成功。 .

这是一个示例 CSS 文件 - 请注意,print 样式中只有少量...

body {
font-family: Georgia, serif;
font-size: 12pt;
}

h2 {
string-set: title content();
}

img {
max-width: 100%;
}

.on-new-page {
display: block;
page-break-before: always;
}

.keep-together {
page-break-before: avoid;
}

.keep-intact {
page-break-inside: avoid;
}

.contents a::after {
content: leader('.') target-counter(attr(href), page);
}

@page {
margin: 2.54cm;
size: portrait;
}

@page :left {
margin-right: 3.18cm;

@bottom-left {
content: counter(page);
}

@top-left {
content: string(title);
}
}

@page :right {
margin-left: 3.18cm;

@bottom-right {
content: counter(page);
}

@top-right {
content: string(title);
}
}

@page :first {
margin-top: 10cm;
}

@media print {
.dont-print {
display: none;
}
}

你可以看看我的example page并进行打印预览以查看其效果。它因浏览器而异,但您可以看到现在对打印布局的控制比过去多得多。

关于javascript - 当用户尝试打印我的页面时,如何加载自定义 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com