嗨,谢谢你的光临!
背景
我正在使用Rotativa PDF打印多页报告,该PDF将HTML页面打印为PDF。为此,我需要遵循CSS 2.1及更高版本的@page约定。
我的应用程序是C#,MVC 3。
问题/问题:
即使我在@page声明中指定8.5英寸乘11英寸,打印的PDF中的页面也只能缩放到8.5X11页面的75%左右。我知道这一点是因为我有一个背景图像,应该覆盖整个页面,但它只打印到整个页面的75%左右的PDF。内容也按比例缩小,所以所有内容都是按比例正确的,只是不能像它应该的那样覆盖整个8.5X11框架。
我正在CSS:中设置这样的报告封面
@page defaultPage{size:8.5in 11in;margin: 2cm;}
#CoverPage {
page: defaultPage;
background-image: url(/Resources/rendered_assets/img/cover_bg.jpg);
background-repeat:no-repeat;
width:8.5in;
height: 11in;
}
以及HTML:
<div id="CoverPage">
<p>foo</p>
<p>bar</p>
</div>
知道我可能做错了什么吗?提前谢谢。
不知道它是否能解决你的问题。。但在最新的Rotativa版本中,您可以将一些选项传递给渲染引擎。您可以这样设置PageWidth、PageHeight和Margins:
return new ViewAsPdf()
{
FileName = "TestView.pdf",
PageSize = Size.A3,
PageOrientation = Orientation.Landscape,
PageMargins = { Left = 0, Right = 0 }, // it's in millimeters
PageWidth = 122, // it's in millimeters
PageHeight = 44
};
var urlHelper = new UrlHelper(Request.RequestContext);
string url = urlHelper.Action("Index", new { name = "value" });
return new UrlAsPdf("http://www.github.com")
{
FileName = "TestExternalUrl.pdf",
PageMargins = new Margins(3, 3, 3, 3)
};