使用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缩放到最小可能的自举显示。
答案 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-md
和col-sm
更改为col-xs
。
这应该可以解决问题。
答案 4 :(得分:-1)
您需要将col-sm-*
更改为col-xs-*