0

我使用 ASP.NET MVC 3 和 Razor,并且我有一个视图页面需要打印div当前显示的特定内容。这个页面有很多css要这样显示,我不知道css,我只是想打印一个显示在页面中的div,所以我使用这样的PrintElementjQuery插件:

$('a.PrintBtn').click(function () {
 $('div#PrintMe').printElement();
 return false;
});

但这给我返回了一个所有元素、字体和方向都乱七八糟的页面,那么如何解决呢?我也看到了这个重载:

$("selector").printElement(
    {
    overrideElementCSS:[
'thisWillBeTheCSSUsed.css',
{ href:'thisWillBeTheCSSUsedAsWell.css',media:'print'}]
    });

但这是什么意思?我不了解 css,这是否意味着我需要为打印页面编写一个新的 css?我怎样才能做到这一点?还有其他简单的方法可以将其打印div为显示格式吗?

4

1 回答 1

0

最简单的方法是创建一个 print.css CSS 文件。您可以将不希望显示的项目的显示属性设置为 false。当您链接到 head 标签中的 print.css 文件时,请使用以下内容:

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

这告诉浏览器仅在打印模式下使用 CSS。通过使用以下媒体选项将 CSS 拆分为多个文件,您可以变得更加花哨

  • media="print" -> 仅在打印时使用
  • media="screen" -> 仅在屏幕上显示时使用
  • media="all" -> 始终应用

这很可能是首选方法,因为您不必依赖使用 Javascript 的客户端来获取页面/项目/对象的打印版本。

于 2012-06-25T16:26:37.707 回答