Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC PDF流生成_C#_Asp.net Mvc_Pdf - Fatal编程技术网

C# MVC PDF流生成

C# MVC PDF流生成,c#,asp.net-mvc,pdf,C#,Asp.net Mvc,Pdf,我正在从事一个项目,该项目要求我连接存储在服务器上的许多PDF文件,并将其显示在网页中。 此PDF数据将被隐藏,并用于允许用户只需按一个按钮即可打印出多个PDF 我目前正在使用iframes通过将帧源指向处理此功能的URL来实现这一点 这适用于单个文件: public ActionResult PrintInvoice(string invoiceNumber) { string fileloc = GetInvoiceFileLocation(invoiceNumber); F

我正在从事一个项目,该项目要求我连接存储在服务器上的许多PDF文件,并将其显示在网页中。 此PDF数据将被隐藏,并用于允许用户只需按一个按钮即可打印出多个PDF

我目前正在使用iframes通过将帧源指向处理此功能的URL来实现这一点

这适用于单个文件:

public ActionResult PrintInvoice(string invoiceNumber)
{
    string fileloc = GetInvoiceFileLocation(invoiceNumber);
    FileStream fs = new FileStream(fileloc, FileMode.Open, FileAccess.Read);
    return File(fs, "application/pdf");
}
这也适用于单个文件:

public ActionResult PrintInvoice(string invoiceNumber)
{
    string fileloc = GetInvoiceFileLocation(invoiceNumber);
    fileBytes = System.IO.File.ReadAllBytes(fileloc);
    ms = new MemoryStream(fileBytes);
    return File(ms, "application/pdf");
}
但是,这不起作用(iFrame报告无法读取PDF):

第三种代码示例方法似乎很有希望按字节连接文件,但在向其写入字节时,MemoryStream似乎不起作用,而不是用字节初始化流(如示例2所示)

我记得我读过PDF数据不是以字节的形式存储的? 这里发生的事情会导致示例2(对于单个PDF)起作用,但示例3(应该做同样的事情)甚至对单个PDF都不起作用

谢谢你的帮助

马修

如果写入操作成功,则 流按写入的字节数前进

public ActionResult PrintInvoice(string invoiceNumber)
{
    string fileloc = GetInvoiceFileLocation(invoiceNumber);
    fileBytes = System.IO.File.ReadAllBytes(fileloc);
    ms = new MemoryStream();
    ms.Write(fileBytes, 0, fileBytes.Length);
    return File(ms, "application/pdf");
}
public ActionResult PrintInvoice(string invoiceNumber)
{
    string fileloc = GetInvoiceFileLocation(invoiceNumber);
    fileBytes = System.IO.File.ReadAllBytes(fileloc);
    ms = new MemoryStream();
    ms.Write(fileBytes, 0, fileBytes.Length);

    ms.Position = 0;    

    return File(ms, "application/pdf");
}