您好,感谢您的关注!
背景
我正在使用 Rotativa PDF 打印多页报告它将 HTML 页面打印为 PDF。为此,我需要遵循 CSS 2.1 及更高版本的@page 约定。
我的应用程序使用 C#、MVC 3。
问题/疑问:
即使我在@page 声明中指定 8.5in x 11in,打印的 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 以及边距:
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
};
关于c# - 使用 CSS @Page 渲染打印页面的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829294/