从 Web 请求创建有效的 PDF
Create a valid PDF from a web request
我正在尝试创建扫描解决方案。基本上,用户实际上是在扫描页面。打印机正在进行 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);
}
我正在尝试创建扫描解决方案。基本上,用户实际上是在扫描页面。打印机正在进行 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);
}