我正在使用Twitter-Bootstrap,我需要能够以在浏览器上看起来的方式打印页面。我可以打印用Twitter-Bootstrap制作的其他页面,但我似乎无法打印纯粹使用Twitter-Bootstrap的页面。我在某个地方错过了标签吗?
打印时的官方TB页面:
我的页面打印时:
我的网页实际上是什么样子:
答案 0 :(得分:179)
当前稳定的Bootstrap版本为3.2.0 对于版本3.2,不推荐使用visible-print,所以你应该这样使用:
Class Browser Print
-------------------------------------------------
.visible-print-block Hidden Visible (as block)
.visible-print-inline Hidden Visible (as inline)
.visible-print-inline-block Hidden Visible (as inline-block)
.hidden-print Visible Hidden
打印课程现在位于文档中:http://getbootstrap.com/css/#responsive-utilities-print
Similar to the regular responsive classes,
use these for toggling content for print.
Class Browser Print
----------------------------------------
.visible-print Hidden Visible
.hidden-print Visible Hidden
将bootstrap.css文件添加到HTML后,
找到您不想打印的部分,并将hidden-print
类添加到标记中。
因为css文件包含这个:
@media print {
.visible-print { display: inherit !important; }
.hidden-print { display: none !important; }
}
答案 1 :(得分:154)
请务必为打印指定样式表 它可以是一个单独的样式表:
<link rel="stylesheet" type="text/css" media="print" href="print.css">
或您为所有设备分享的内容:
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"> # Note there's no media attribute
然后,您可以使用媒体查询在单独的样式表或共享样式表中为打印机编写样式:
@media print {
/* Your styles here */
}
答案 2 :(得分:108)
将每个col-md-
替换为col-xs-
例如:将每个col-md-6
替换为col-xs-6
。
这对我有用,让我摆脱这个问题你可以看到你必须要替换的东西。
答案 3 :(得分:16)
css文件中有@media print
代码的一部分(Bootstrap 3.3.1 [更新:]到3.3.5),这几乎剥离了所有样式,因此你得到相当平淡的打印输出即使它在工作。
现在我不得不求助于从bootstrap.css中删除@media print
部分 - 我真的不高兴但我的用户想要直接屏幕抓取所以现在必须这样做。如果有人知道如何在不更改引导文件的情况下抑制它,我会非常感兴趣。
这是“冒犯&#39;代码块,从第192行开始:
@media print {
*,
*:before,enter code here
*:after {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
select {
background: #fff !important;
}
.navbar {
display: none;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
}
}
答案 4 :(得分:6)
我找到的最佳选择是http://html2canvas.hertzen.com/
http://jsfiddle.net/nurbsurf/1235emen/
html2canvas(document.body, {
onrendered: function(canvas) {
$("#page").hide();
document.body.appendChild(canvas);
window.print();
$('canvas').remove();
$("#page").show();
}
});
答案 5 :(得分:3)
如果有人在这里寻找 Bootstrap v2.X.X 的解决方案。我要离开我正在使用的解决方案。 这并未在所有浏览器上进行过全面测试,但它可能是一个良好的开端。
1)确保Format(frmChangeData.txtBirthDate.value, "dd-mm-yyyy")
的媒体属性为bootstrap-responsive.css
。
screen
2)创建<link href="/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen" />
并确保其媒体属性print.css
print
3)在<link href="/css/print.css" rel="stylesheet" media="print" />
内,在html&amp;中添加您网站的“宽度”体
print.css
4.。)在html,
body {
width: 1200px !important;
}
中重现必要的媒体查询类,因为它们在print.css
内,我们在打印时禁用了它。
bootstrap-responsive.css
以下是.hidden{display:none;visibility:hidden}
.visible-phone{display:none!important}
.visible-tablet{display:none!important}
.hidden-desktop{display:none!important}
.visible-desktop{display:inherit!important}
的完整版:
print.css
答案 6 :(得分:2)
2件事FYI -
答案 7 :(得分:0)
要使打印视图看起来像平板电脑或桌面包括bootstrap asless,而不是.css然后你可以在bootstrap_variables文件的末尾覆盖bootstrap响应类,例如:
@container-sm: 1200px;
@container-md: 1200px;
@container-lg: 1200px;
@screen-sm: 0;
不要担心将这些变量放在文件的末尾。 LESS支持延迟加载变量,因此它们将被应用。
答案 8 :(得分:0)
如果你想在A4打印上保留列(大约540px),这是一个好主意
@media print {
.make-grid(print-A4);
}
.make-print-A4-column(@columns) {
@media print {
float: left;
width: percentage((@columns / @grid-columns));
}
}
你可以像这样使用它:
<div class="col-sm-4 col-print-A4-4">