我使用Rotativa ViewAsPdf
方法将ASP.Net MVC中的HTML视图渲染为PDF。我通过设置:
new ViewAsPdf(MVCCfpFormatter.Members.Views.FlightPlansFullPagePrint, model)
{
// FileName = flightPlan.ListingItemDetailsModel.FlightDetails + ".pdf",
PageSize = Size.A4,
PageOrientation = Orientation.Portrait,
PageMargins = new Margins(0, 0, 0, 0),
PageWidth = 210,
PageHeight = 297
};
然后在CSS中,我设置一个宽度为210mm
的元素,它应该扩展页面的整个宽度,但在输出PDF中,210mm
宽度并不代表整个PDF的宽度但更少。通过反复试验,生成的PDF的总宽度似乎在246mm
左右。
为什么会发生这种情况的任何想法?
答案 0 :(得分:12)
如果您仍然有问题,我已经对rotativa做了更多的研究。您可以使用wkhtmltopdf中的自定义开关。尝试添加
CustomSwitches = "--disable-smart-shrinking".
这会阻止程序自动调整您的内容。从那里你可以正确调整你的html页面,以获得你想要的PDF格式。
答案 1 :(得分:3)
我想我可以帮助你。
{
FileName = Name + ".pdf",
PageOrientation = Rotativa.Options.Orientation.Landscape,
PageSize = Rotativa.Options.Size.A4
}
1.6.3对我有用。我想你需要遵循这种语法来设置你想要的其他东西。
答案 2 :(得分:0)
如果您使用的是mvc 4,则应使用此格式
public ActionResult yourAction()
{
var yourModel;
var yourpdf= new PartialViewAsPdf(yourModel)
{
RotativaOptions = new DriverOptions()
{
PageOrientation=Orientation.Landscape,
PageSize = Size.A4,
IsLowQuality=true
and other your Customiz
}
};
return yourpdf;
}
答案 3 :(得分:0)
在MVC之前不要忘记添加
using Rotativa.MVC;
using Rotativa;
要使用自定义选项,请这样做
return new ActionAsPdf
("ActionName")
{
FileName = "Filename.pdf",
RotativaOptions = new Rotativa.Core.DriverOptions()
{
PageSize=Rotativa.Core.Options.Size.A4,
}
};