gpt4 book ai didi

c# - 打开 PDF 时出错

转载 作者:行者123 更新时间:2023-11-30 23:25:46 25 4
gpt4 key购买 nike

我在 Chrome 中收到“无法加载 PDF 文档”,在 IE 中收到“文件已损坏且无法修复”的几个文件。

代码如下:

PDFSteramer:

if (pdf != null)
{
Response.ContentType = "application/PDF";
Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Disposition", "inline");

pdf.Renderer.Render(pdf, Response.OutputStream);

Response.Flush();
}

在渲染类中:

using (FileStream fs = new FileStream(this._ParentDocument.Document.FullName, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[bufferSize];

fs.Read(buffer, 0, bufferSize);

using (StringReader reader = new StringReader(System.Text.ASCIIEncoding.ASCII.GetString(buffer)))
{
Decoder decoder = new UuDecoder(stream, "");

string data;

while ((data = reader.ReadLine()) != null)
{
decoder.DecodeLine(data);
}
}
}

在DecodeLine中如下:

public override bool DecodeLine(string line)
{
try
{
byte[] data = Encoding.UTF8.GetBytes(line);
//byte[] data = uuDecode(line);

outStream.Write(data, 0, data.Length);
}
catch (Exception ex)
{
}
return false;
}

下面是它在 Firefox 中抛出的内容:

enter image description here

在 Adob​​e 阅读器上:

enter image description here

最佳答案

如果您的 PDF 存储在物理文件中,您根本不需要使用中间流,只需使用 TransmitFile method这也有不使用 .NET 内存的好处(在大多数情况下):

   Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Disposition", "inline");
Response.TransmitFile(your pdf path);

关于c# - 打开 PDF 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com