Writing Javascript to Response.OutputStream

本文关键字:OutputStream Response to Javascript Writing | 更新日期: 2023-09-27 18:10:23

目前,我有一个控制器动作输出PDF(作为Response.OutputStream.Write()),这是正常工作的。

然而,我有兴趣在PDF上输出另一个脚本部分以"自动打印"(或简单地执行window.print();)。

这是可能的,还是有其他的方法来解决这个问题,我可能不知道?

控制器动作:

public ActionResult PrintPDF(string ID)
{
     //Population of Model
     //Output Result
     return PdfResult(model);
}

PDF结果:

var buffer = byteArrayStream.toByteArray();
response.OutputStream.Write(buffer, 0, buffer.Length);
//Is it possible to output something like the following:
response.Output.Write("<script type='text/javascript'>window.print();</script>");

Writing Javascript to Response.OutputStream

您很可能无法将pdf数据与JavaScript混合,因此您需要使用<embed>标记嵌入pdf文件,然后使用JavaScript打印<embed>标记内的任何内容。

这是别人得到的一些信息。基本上这是输出的代码(从前面的源代码,但编辑了一点):

<html>
    <body>
        <embed id="pdfToPrint" src ="@ViewData.PDFUrl" width="550" height="550"
        name="whatever">
        <script>
            var x = document.getElementById("pdfToPrint");
            x.click();
            x.setActive();
            x.focus();
            x.print();              
        </script>
    </body>
</html>