2012-09-28 48 views
2

我试图通过JavaScript打印横向格式的页面。我在Landscape printing from HTML找到了一些解决方案,但那些不符合我的需要。通过javascript设置页面风景

该CSS片段@media print{@page {size: landscape}}工作正常,但我不知道如何使它从JavaScript/jQuery的工作。我试图通过JavaScript做到这一点的原因是因为我想要2个按钮进行打印。一个正常的打印按钮,它将打印显示的内容,第二个按钮可以稍微改变页面并打印横向模式。

所以简而言之:我想改变页面的方向(或者CSS中调用的大小)在javascript中横向旋转,但是javascript旋转不会执行,因为它也会旋转页面上的文本。有没有办法实现我想要做的事情,而无需使用不同的布局/ CSS制作单独的页面?

在此先感谢。

回答

4

您可以将另一个样式表,规则和动态添加它点击:

$("#printLandscape").on('click',function() { 
    $('head').append('<link href="printLandscape.css" title="printLandscape" rel="stylesheet" />'); 
}); 

我假设你的“横向模式打印”按钮有一个printLandscape ID。

现在,可以肯定的是,用户可以在正常模式下打印甚至后的按钮被点击的第一次,你可以添加其它监听到“打印正常模式”按钮:

$("#printNormal").on('click',function() { 
    $('link[title="printLandscape"]').attr('disabled', 'disabled').remove(); 
}); 

要做到这一点,你必须设置一个title的景观样式表(在这种情况下,我把它叫做printLandscape