3

こんにちは、見てくれてありがとう!

バックグラウンド

HTMLのページをPDFに印刷するRotativaPDFを使用して複数ページのレポートを印刷しています。これを行うには、CSS2.1以降の@page規則に従う必要があります。

私のアプリケーションはC#、MVC3にあります。

問題/質問:

@page宣言で8.5inx11inを指定しても、印刷されたPDF内のページは8.5X11シートの約75%にしか拡大縮小されません。ページ全体をカバーする背景画像があるので、これを知っていますが、PDFに印刷されるのはページ全体の約75%にすぎません。コンテンツも縮小されるため、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>

私が間違っているかもしれない何か考えはありますか?前もって感謝します。

4

2 に答える 2

8

問題が解決するかどうかはわかりませんが、最新の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
    };
于 2012-08-06T13:53:14.263 に答える
1
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)
};
于 2014-01-06T07:25:22.797 に答える