如何解决根据网络请求创建有效的PDF
我正在尝试创建扫描解决方案。基本上,用户实际上是在扫描页面。打印机正在进行API调用,将扫描的二进制数据传递到主体中。
我正在尝试将其另存为PDF,但是在我打开文件时,出现错误“读取流时出错”。
var bodyStream = new StreamReader(HttpContext.Current.Request.InputStream);
bodyStream.BaseStream.Seek(0,SeekOrigin.Begin);
var bodyText = bodyStream.ReadToEnd();
string pathToFiles = HttpContext.Current.Server.MapPath("~\\UploadedFiles\\WriteLines.pdf");
try
{
using (StreamWriter outputFile = new StreamWriter(pathToFiles,false))
{
outputFile.WriteLine(bodyText);
}
HttpContext.Current.Response.ContentType = "application/pdf";
}
catch (Exception ex)
{
throw (ex);
}
这只是测试,我拥有写文件的权限等,只是没有创建有效的文件。
关于我应该使用什么的任何想法?我研究了一些图书馆,但它们似乎并没有涵盖我所追求的目标
解决方法
StreamReader.ReadToEnd将字节转换为特定编码的字符串(默认为UTF8)。我认为这不适用于PDF。
您需要直接在输出文件中复制字节:
var bodyStream = HttpContext.Current.Request.InputStream;
bodyStream.Seek(0,SeekOrigin.Begin);
string pathToFiles = HttpContext.Current.Server.MapPath("~\\UploadedFiles\\WriteLines.pdf");
using (FileStream outputFile = File.Create(pathToFiles))
{
bodyStream.CopyTo(outputFile);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。