我也在尝试解决同样的问题。我搜索了互联网,尝试了很多想法,但到目前为止都没有奏效。
也许我们可以合作解决这个问题。我会将此作为评论,但我没有足够的评分,所以系统不会让我这样做。
这是我目前发现的。在 Chrome 开发者工具中,您可以点击设置图标,然后滚动到“渲染”,然后在“模拟 CSS 媒体类型”中选择“打印”。
当我这样做时,它会显示打印视图是什么。我创建了一个单独的css文件,我们称之为print.css,在里面,有
@media print {
/* add your css styles for print here */
}
我知道我的 print.css 正在处理,因为我已经
display: none
对于 ion-header 和底部的一些选项卡,当我在 Chrome 中选择“打印”仿真时它们会消失。
有趣的是,在这种打印模式下,我在屏幕上看到了整个页面——可滚动和全部。但是,每次我尝试打印它时,都只显示一页。
但是,该页面并不总是从顶部开始。它包括当前视口。
这就是为什么,我想知道 css 中是否有一些东西试图将整个东西保留为一个页面。即,防止分页符?
我正在尝试这样的事情:
ion-content, .foo, .bar, ion-list, ion-tabs, ion-item {
break-inside : auto !important;
break-after : auto !important;
break-before : auto !important;
}
(其中 foo 和 bar 是您可能拥有的类。)
上面的这个破坏了一些东西。删除 ion-tabs、ion-list 和 ion-item 会显示整个页面。
我也在尝试以下方法。到目前为止还没有工作,但这可能是因为我没有选择正确的标签或类。
display: block !important;
height: 100%;
overflow-y: visible !important;
max-height: unset !important;
contain: none;
您可能想要尝试使用可能会阻止分页符的相关标记。有些人认为这是 flexbox 或 grid 的根本原因。我很想知道如何找到根本原因。
祝你好运!如果可行,请告诉我们,我也会在我的代码中尝试。