c# - 使用 CSS @Page 渲染打印页面的大小

标签 c# css pdf-generation css-paged-media

您好,感谢您的关注!

背景

我正在使用 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/

相关文章:

c# - 为什么 Contains() 运算符会如此显着地降低 Entity Framework 的性能?

C#.NET - 无法添加或更新子行 : a foreign key constraint fails

javascript - jQuery 计算乘法表单输入字段

objective-c - iOS - 从 HTML 内容创建多页 PDF

c# - ASP.NET 中 GridView 的分页(不会转到第 2,3 页等)

c# - 部分读取从 c# 应用程序创建的另一个进程的标准输出

javascript - 如何在react.js 中获得每 5 秒更改一次的图像?

javascript - 有没有办法将 css 文件或 javascript 文件动态注入(inject)到 HTML 文档的 head 标签中。

javascript - 最常用的生成 PDF 报告的方法(JavaScript、node.js)?

objective-c - 在 iOS 中将 PDF 文本写入 PDFContext