我正在尝试将imageData保存为服务器目录中的pdf文件。 Html5Canvas imageData被发送到服务器并在以字节数组转换后,尝试保存为PDF文件。文件在指定路径上成功生成,但生成的文件在大多数PDF阅读器(即Adobe Reader,Foxit阅读器等)中无法正确打开,并显示文件损坏或损坏但在MS Edge浏览器中正确打开的错误。我希望他们也能在普通的PDF阅读器中展示。能否请您提出解决方案。这是我的服务器端代码。
public static string SaveImage(string imageData, string userEmail, int quantity)
{
string completePath = @"~\user-images\";
string imageName = "sample_file2.pdf";
string fileNameWitPath = completePath + imageName;
byte[] bytes = Convert.FromBase64String(imageData);
File.WriteAllBytes(HttpContext.Current.Server.MapPath(fileNameWitPath), bytes);
}
为此代码生成相同的输出
FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(fileNameWitPath), FileMode.OpenOrCreate);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
也为此。
using (FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(fileNameWitPath), FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(imageData);
bw.Write(data);
bw.Close();
}
}
答案 0 :(得分:1)
如果您只保存带有.PDF
文件扩展名的光栅图像格式文件(如PNG或JPG文件),则不会将其作为PDF文件;它仍然是另一个扩展名的图像文件。因此它可能适用于某些浏览器,因为它们可能会进行文件格式检测,而不仅仅基于扩展。
要生成实际的PDF文件,您需要使用一些转换。考虑以下库之一: