使用rotativa PDF的Bootstrap最小刻度

时间:2014-12-16 08:40:25

标签: twitter-bootstrap pdf rotativa

使用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设置。 Nothings似乎阻止了缩放。我也尝试过使用CustomSwitches,但是找不到能够提供我想要的结果的设置。

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

5 个答案:

答案 0 :(得分:3)

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

new ViewAsPdf("Edit", model) { PageOrientation = Orientation.Landscape, CustomSwitches = "--viewport-size 1000x1000" };

答案 1 :(得分:1)

解决方案最终将所有响应式设计放入表中,从而破坏了打印部件的响应式设计。似乎没有其他方法可以找到。只需为打印指定视口大小,就可以了。

答案 2 :(得分:1)

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

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

一些用户指出,按照此处的建议切换到col-xs-*可以解决问题。包括我在内的其他人则没有这种方法的运气。即使在列上设置max-width属性,也可以保持列的大小正确,但它们并不能像应有的那样水平“对齐”。

答案 3 :(得分:0)

解决方案是将所有col-mdcol-sm更改为col-xs。 这应该可以解决问题。

答案 4 :(得分:-1)

您需要将col-sm-*更改为col-xs-*