4

我在使用 rotativa 时遇到问题,我的引导页面在打印时总是缩放到最小。有什么方法可以为我的视图设置视口大小,因此它不会将引导程序缩放到最小以生成 PDF?

控制器实现

[HttpGet]
public ActionResult DownloadViewPDF()
{
    var vm = new Viewmodel();
    return new Rotativa.ViewAsPdf("SummaryPDF", vm) { FileName = "TestViewAsPdf.pdf", PageSize = Size.A4 };
}

这是我的一般视图实现

<div class="row">
    <div class="col-sm-6">
        <div class="form-group">
            <span class="label">Email</span>
            <span class="form-control-static">test@email.com</span>
        </div>
    </div>
    <div class="col-sm-6">
        <div class="form-group">
            <div class="required-enabled">
                <span class="label">Phone</span>
                <span class="form-control-static">(804) 222-1111</span>
            </div>
        </div>
    </div>
</div>

我尝试了一些方法,例如使用 rotativa 的 PageSize、PageHeight、PageWidth 设置。没有什么似乎可以阻止缩放。我也尝试过使用 CustomSwitches,但无法真正找到提供我想要的结果的设置。

我还尝试在 html 元标记中设置静态视口大小,并将我的视图封装在具有静态宽度的 div 中。这些东西似乎都不能阻止我的 PDF 被缩放到最小可能的引导显示。

4

5 回答 5

3

我使用“--viewport-size”开关

new ViewAsPdf("Edit", model) { PageOrientation = Orientation.Landscape, CustomSwitches = "--viewport-size 1000x1000" };
于 2015-08-19T09:48:12.700 回答
2

该解决方案最终将我们所有的响应式设计放入表格中,从而破坏了打印部分的响应式设计。我似乎没有其他方法可以找到。只需指定打印的视口大小的功能会很好。

于 2015-01-06T13:22:18.703 回答
2

对于仍然在这个问题上绊脚石的其他人:三年多之后,使用引导程序没有明确的答案来解决这个问题。遗留的基于表的实现似乎仍然是最好的解决方法。

即使是底层Wkhtmltopdf库的最新版本(0.12.5.0 稳定版)也不能很好地与列配合使用,也不能与现在流行的新 Bootstrap 4 配合使用。用户仍在尝试 hack-y Viewport 解决方法,成功率各不相同: https ://github.com/wkhtmltopdf/wkhtmltopdf/issues/2301

一些用户表示,col-xs-*按照这里的建议切换到这里就可以了。其他人,包括我自己在内,都没有采用这种方法。即使max-width在列上设置属性也会使列的大小保持正确,但它们不会按应有的水平“排列”。

于 2018-08-29T00:15:30.907 回答
0

解决方案是将 all更改col-md为. 这应该够了吧。col-smcol-xs

于 2015-07-12T15:23:59.440 回答
-1

你需要col-sm-*改为col-xs-*

于 2015-03-27T08:25:50.507 回答