引导式的无适用于打印(Bootstrap style no applying to print)

2019-09-27 04:11发布

我有下面的代码打印由我的应用程序中保存的表:

    var elementToPrint = this.mainTable.get(0);

    newWin = window.open("");
    newWin.document.write('<html><head><title>' + elementToPrint.caption + '</title>' +
                        '</head><body class=\'visible-print\'>');
    newWin.document.write(elementToPrint.outerHTML);
    newWin.print();
    newWin.close();

凡this.mainTable是一个jQuery对象。

在我的共同页(_Layout.cshtml)我有:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta charset="UTF-8" />

    <title>MyApp</title>

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="@Url.Content("~/Content/bootstrap.css")" rel="stylesheet" media="all">
    <link href="@Url.Content("~/Content/bootstrap-theme.min.css")" rel="stylesheet" media="all">
</head>

打印程序运行正常,除了它失去所有的造型,印刷用未格式化的数据(并排数据面)纯文本。

我需要保持原有的引导布局(颜色,边框,条等)。 需要改变什么,请...

谢谢,

Answer 1:

当你创建一个新的窗口,它本质上创建一个新的HTML页面,它不会从母版页继承。 因此,新的HTML页面不会有你的引导CSS引用。

当你的文件撰写如下,你应该添加这些引导CSS参考,

newWin.document.write('<html><head><title>' + elementToPrint.caption + '</title>');
newWin.document.write('<link href="Your-Path/bootstrap.min.css" rel="stylesheet" />');
newWin.document.write('<link href="Your-Path/bootstrap-theme.min.css" rel="stylesheet" />');
newWin.document.write('</head><body class=\'visible-print\'>');

更新的标准Twitter的引导确实包含如下,这消除了任何画面的CSS规则的介质类型打印的CSS规则,

@media print {
  * {
    color: #000 !important;
    text-shadow: none !important;
    background: transparent !important;
    box-shadow: none !important;
  }

你需要得到一个自定义的引导,用了“打印介质的样式”(Recomended)或手动删除这些@media打印。

这里是一个显示与引导CSS样式打印Plunker



文章来源: Bootstrap style no applying to print