如何在printTask中删除/更改打印文档边距?

mal*_*lte 1 html javascript printing winjs windows-8.1

我想知道如何实现无边框打印.

目前我的输出看起来像这样:

我所指的边界标记为红色

我想让图像从左上角开始.这可能吗?我已经尝试为我的打印样式框设置一个负边距,但是图像会被剪切掉.

我知道也许不是所有的打印机都能打印边框区域,但在我的用例中,这些区域的图片将是白色的.(山图只是为了演示目的)

我可以通过printTask以某种方式指定文档边框吗?

看我目前的设置:

HTML:

<div id="pdf-render-output"></div>
Run Code Online (Sandbox Code Playgroud)

CSS:

body > #pdf-render-output {
    display: none;
}

@media print {

    body > * {
       display:none;
       max-width: 100%;
    }

    html {
       max-width: 100%;
       border-top: 0;
    }

    body > #pdf-render-output {
        display: block;
        border: none;
        max-width: 100%;
        width: 100%;
        height: 100%;
        position: relative;
        margin: 0; /* I tried to set negative margin/padding eg. here */
        padding: 0;
    }

}
Run Code Online (Sandbox Code Playgroud)

JS:

$('#pdf-render-output').append("<img src="..." style=\"width: 100%\" />");
Run Code Online (Sandbox Code Playgroud)

我玩了所有可能的边距/填充和东西,但图像将被切割,白色边框保持"超过"它.

我希望可能有一个printTask选项我错过了浏览msdn?

更新: 我尝试使用!important设置所有边距/填充/边框值.没变.以下是模拟器的屏幕截图,仅显示print-css样式: 在此输入图像描述

我认为这是printTask本身的一个问题.有关于这个问题的选择吗?

Tan*_*005 7

如果DocumentSource的边距值设置为0,则间隙将大大减少.但是,与C#+ XAML的PrintTask相比,上边距(可能是页眉/页脚区域)稍微有点.

var printTask = printEvent.request.createPrintTask("Print Sample", function (args) {
    var src = MSApp.getHtmlPrintDocumentSource(document);
    src.rightMargin = 0;
    src.leftMargin = 0;
    src.topMargin = 0;
    src.bottomMargin = 0;
    src.shrinkToFit = false;
    args.setSource(src);
}
Run Code Online (Sandbox Code Playgroud)

在我的环境中,当使用这个CSS时,它已经删除了边距,而不需要src.rightMargin等.

@page {
    margin:0cm;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果我像这样创建我的文档片段: var container = document.createElement("div"); container.innerHTML = "&lt;div&gt;" + "这是一些内容" + "&lt;/div&gt;"; 那是我正在打印的文件,在哪里/如何放置 @page {margin: 0cm} ? (2认同)