2014-07-08 105 views
7

我正在使用Rotativa ViewAsPdf方法将ASP.Net MVC中的HTML视图渲染为PDF。我设置的输出中是A4尺寸,肖像,没有利润的,通过设置:Rotativa ViewAsPDF CSS大小/尺寸

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左右。

任何想法,为什么会发生这种情况?

回答

1

我想我可以帮你。

{ 
       FileName = Name + ".pdf", 
       PageOrientation = Rotativa.Options.Orientation.Landscape, 
       PageSize = Rotativa.Options.Size.A4 

} 

是什么对我来说适用于1.6.3。我想象你需要遵循这个语法来设置你想要的其他东西。

+0

你是什么意思?是不是像我上面显示的语法一样,只是使用完整的命名空间'Rotativa.Options ...'? –

+0

是的,我的意思是我无法使用完整的名称空间正确工作。如果这没有帮助解决你的问题,它听起来像它可能在你的CSS? – user2612373

+0

我的完整命名空间,其中包括在顶部使用'using'关键字,我没有在这里包含。当你设法试用你的产品时,它是否完美地符合正确的尺寸? –

8

如果你仍然有问题,我做了更多的rotativa研究。您可以使用wkhtmltopdf的自定义开关。尝试并添加

CustomSwitches = "--disable-smart-shrinking". 

停止程序自动调整大小。从那里你可以正确调整你的HTML页面,以获得你想要的PDF文件的大小。

+0

你已经有了这个问题的答案!您应该编辑您现有的答案,而不是发布新的答案。 –

+0

我会试用@ user2612373并让你知道结果,谢谢你的评论。 –

+0

尝试了这一点,它似乎仍然留下了半英寸的差异,当试图通过CSS正确定位项目 –