如何以编程方式打开PDF文档而不保存它?

时间:2019-04-29 13:22:32

标签: c# pdf web spire

我将PDF文档保存到我的PDF文件夹中。我创建了一个函数,其功能是将PDF加载到PdfDocument类中,在runtime上添加一些样式,将其另存为临时文件,并在WebClient中进行预览。我的逻辑工作得很好。我想消除将其另存为临时文件。我想直接预览而不保存,可以吗?我在网上搜索,但没有任何好的信息来源。以下是我的代码:

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("MyFile.pdf");
pdf.SaveToFile("ModifiedMyFile.pdf"); // Eliminate this part
WebClient User = new WebClient();
Byte[] FileBuffer = User.DownloadData("ModifiedMyFile.pdf");
if (FileBuffer != null)
{
  Response.ContentType = "application/pdf";
  Response.AddHeader("content-length", FileBuffer.Length.ToString());
  Response.BinaryWrite(FileBuffer);
}

1 个答案:

答案 0 :(得分:0)

根据spire的文档,您有两种方法可以做到这一点

使用SaveToHttpResponse()方法

https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/How-to-Create-PDF-Dynamically-and-Send-it-to-Client-Browser-Using-ASP.NET.html

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("MyFile.pdf");

.... edit the document

pdf.SaveToHttpResponse("sample.pdf",this.Response, HttpReadType.Save);

或者,如果内置方法不起作用,请尝试使用内存流代替临时文件。

https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Document-Operation/Save-PDF-file-to-Stream-and-Load-PDF-file-from-Stream-in-C-.NET.html

PdfDocument pdf = new PdfDocument();

.... edit the document

using (MemoryStream ms = new MemoryStream())
{
  pdfDocument.SaveToStream(ms);

  Byte[] bytes = ms.ToArray();

  Response.ContentType = "application/pdf";
  Response.AddHeader("content-length", bytes.Length.ToString());
  Response.BinaryWrite(bytes);
}