问题总结:我希望能够检测用户打印机的页面大小,以便我可以根据打印机的页面大小发送不同的页面布局。
示例用例:我们的用户是企业。一些用户想要打印基本收据(因此他们有小型打印机),而一些用户想要打印发票(即普通的 8" * 11" 页)。根据打印机的页面大小,我们可以识别应该发送到打印机的格式。
CSS 规范:理想情况下,对于不同的页面大小会有一个 CSS 媒体设置。CSS 标准一直致力于此,在CSS 2.1 规范中它说
但是,在选择要打印的介质时,打印机应以 CSS size 属性提供的页面大小值为指导。
/* style sheet for "A4" printing */
@media print and (width: 21cm) and (height: 29.7cm) {
@page {
margin: 3cm;
}
}
/* style sheet for "letter" printing */
@media print and (width: 8.5in) and (height: 11in) {
@page {
margin: 1in;
}
}
Run Code Online (Sandbox Code Playgroud)
现实世界的实现:那么这是如何在主要浏览器中实现的。有没有人实施过这个?它适用于哪些浏览器?什么代码实际上有效?
附加信息: 看起来这在一些浏览器中有效。这也适用于页面大小,而不仅仅是横向/纵向。
@media print { @page {size: landscape …Run Code Online (Sandbox Code Playgroud) 我使用此meta在移动设备上显示我的桌面版本。
<meta name="viewport" content="width=1220">
现在,我也希望将其打印出来。当我要打印页面时,我的屏幕被切成纵向版本。是否有印刷版的中继资料?我如何也可以缩小页面以进行打印?
移动设备的相关问题在这里RWD:缩小显示移动设备的桌面版本,不进行水平滚动
所以我一直在寻找如何打印一个非常基本的剃刀html页面,真的没有找到答案.有问题的页面只有一个常规的html表和一些viewbag数据.在横向模式下打印过去非常简单,所以我很难相信这是一个刚刚消失的功能.我正在使用IE 11和CSS3,一个带剃刀的MVC5项目.它也不需要在任何其他浏览器中起作用.这是我尝试过的所有事情
例1:不改变打印横向,双@是逃避剃刀@用法
@@media print
{@@page {size: landscape}}
Run Code Online (Sandbox Code Playgroud)
示例2:也不会更改打印横向
@media print{@page {size: landscape}}
Run Code Online (Sandbox Code Playgroud)
例3:对于这一个,我尝试了一系列不同的变化,包括边距和宽度和高度设置.我还尝试将body更改为@page,@@ page以及div ID或类名.它有点工作,但它从不占用整页长度,总是在某个方向或另一个方向上移动.
<style type="text/css" media="print">
body{
margin: 150px 10px 20px 50px;
-ms-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
width: 10px;
}
</style>
Run Code Online (Sandbox Code Playgroud)
我觉得必须有一种方法可以做到这一点,过去使用这个例子非常简单.
示例4:但是这个也不会改变打印方向,而是给出错误"CSS3.0:size不是已知的CSS属性名称".
<style type="text/css" media="print">
@page {
size: landscape;
}
</style>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会非常感激,我知道这个主题有几个主题,但是没有一个答案对我有用.这是我检查的线程,我查了更多,但这些似乎有最多样的答案所以我包括它们.
我设置为横向CSS文件的size属性以横向打印页面
@page {
margin: 0.1cm;
size: landscape;
orientation: landscape;
size: A4;
Run Code Online (Sandbox Code Playgroud)
有些页面是纵向打印的,有些是横向打印的.
如何使用CSS检测并强制页面在横向打印?
我试图通过 javascript 将打印方向设置为横向。我只是使用 window.print() 函数来打印页面的内容。这是代码:
<a href="" onClick="window.print();return false">
<img src="images/print.png"></a>
Run Code Online (Sandbox Code Playgroud)
这样我就可以打印样本页了。但只有纵向格式。客户要求它是横向的。所以我尝试了我找到的许多代码。这肯定是您最熟悉的。
<script type="text/javascript">
$("#printLandscape").on('click',function () {
$('head').append('<link href="printLandscape.css" title="printLandscape" rel="stylesheet" />');
});
</script>
Run Code Online (Sandbox Code Playgroud)
由于它不是用于调用打印函数的按钮,而是带有 href 的图像类型,因此我尝试使用以下命令更改前一个按钮:
<a href="" onClick="window.print();return false" id="printLandscape">
<img src="images/print.png"></a>
Run Code Online (Sandbox Code Playgroud)
请参阅 id="printLandscape",我尝试了这一点,以便能够调用上面声明的 javascript 函数,并使页面打印成我想要的横向格式。但当我尝试打印时,看看它是否有效。打印页面仍具有默认/正式或纵向类型。
是不是少了什么东西?或者我没有正确声明 javascript,尤其是 href 上的 id,导致它无法正常工作?
求救
printing ×4
css ×3
html ×2
javascript ×2
asp.net-mvc ×1
css3 ×1
ios ×1
jquery ×1
razor ×1
w3c ×1