15

在我的 ASP.NET MVC 4 应用程序中,我有一个索引视图,其中嵌入了几个局部视图。我通过 NuGet 安装了 Rotativa 的最新版本 1.6.1。现在我可以使用 Rotativa 将索引页打印为 PDF。我想在每个部分视图之后在 PDF 中设置一个分页符。如何使用 Rotativa 实现这一目标?

我尝试按照此示例使用 CustomSwitches,但似乎没有用于分页符的。我用这篇文章来生成 PDF

4

4 回答 4

28

如果您使用的是 1.6.1,您可以在 CSS 中添加分页符(这在 1.5.0 中不能始终如一地工作,我没有测试 1.6.0)

所以添加这种风格,不是像 p.breakhere{...} 这样的特定元素,而是如下所示(有些人对特定元素有问题)

<STYLE TYPE="text/css">
 .breakhere { page-break-after: always }
</STYLE>

然后在您的 html 中执行此操作

<P CLASS="breakhere">

它应该很好地打破。请注意,1.6.1 间歇性地存在幻影图像的错误...请参阅此 SO 条目链接

于 2014-04-15T15:49:21.630 回答
8

答案是正确的,但您必须以不同的方式进行操作,例如:

<div style="page-break-after: always;">Content before page breaks</div>
<div>Content after page breaks<div>

这是诀窍!

希望有帮助!

于 2016-05-19T01:36:38.250 回答
4

您可以使用这三个 CSS 代码中的任何一个来设置元素的分页符,

page-break-after
page-break-before
page-break-inside

根据你的情况。

于 2015-04-23T13:06:59.977 回答
2

这对我和所有浏览器都有效。我的应用程序是 ASP.NET MVC3 Razor。

在您的样式表 (.css) 或样式标签中输入:

@media all {    .page-break { display: none; } }

@media print {  .page-break { display: block; page-break-before: always; } }

您希望页面中断的地方放这个:

<div class="page-break"></div>

在所有浏览器中完美运行

于 2016-02-12T19:49:58.057 回答