我在一个特定页面的component.ts文件中有以下代码,因为该页面在打印时需要使用自己的css:
@Component({
selector: "dashboard",
templateUrl: "./dashboard.component.html",
styleUrls: ["./dashboard.component.scss"],
encapsulation: ViewEncapsulation.None
})
然而,当我离开该页面时,我希望其他所有地方的封装都恢复正常,有没有办法做到这一点?
或者有没有办法只在点击打印按钮时设置封装?然后在关闭时恢复正常?
如果我离开此页面并刷新,则其他页面将恢复正常,但我不希望必须刷新。
编辑
我不得不添加封装,以便使用scss文件中的以下代码使页面打印横向:
@media print {
@page {
size: landscape
}
.no-print,
.no-print * {
display: none !important;
}
body {
-webkit-print-color-adjust: exact;
}
canvas {
max-width: 100%;
height: auto;
}
.printClass {
display: inline-block;
}
}
否则,它只会采取全球scss和打印肖像每一次。
1条答案
按热度按时间jtw3ybtb1#
是的。在这个例子中我们使用
ngx-print
。这是一个你可以在GitHub上看到的库。你没有使用它,但是它使用的方式是正确的,而且非常直接。你可以在css中设置一些东西,下面是一个例子:
1.当我不使用[useExistingCss]=“true”应用CSS时,在尝试打印时会出现布局下拉选项(纵向或横向)。
1.我的css包含@media打印{@页{大小:landscape}}行,但ngx-print似乎忽略了它。
1.如果我使用{size:横向!重要信息},则将以横向打印。
1.如果我使用{size:auto!important},则提供了“布局”选项。
以下是它的核心: