我的工具正在尝试从服务器调用 API 查询:
public class WKPDFConvertionResult : ActionResult {...}
public PDFController : Controller
{
private WKPDFConvertionResult getPdf(int Id)
{
return new WKPDFConvertionResult()
{
Filename = filename,
Footer = true,
Html = htmlWriter.ToString()
};
}
public ActionResult PDF (int id)
{
return getPDF(id);
}
}
如果我使用 Firefox 打开查询:
http://localhost:60653/pdf/1
浏览器会自动弹出文件下载对话框;
如果我使用相同的查询
API.Query(http://local host:60653/pdf/1)
我认为它返回相同pdf的二进制文件。但是,当我尝试时:
Byte[] btText = System.Text.Encoding.UTF8.GetBytes(API.Query(http://local host:60653/pdf/1) )));
using (MemoryStream memStream = new MemoryStream(btText))
using (FileStream fileStream = new System.IO.FileStream(_outputPath, System.IO.FileMode.Create))
{
memStream.CopyTo(fileStream);
}
它在 _outputPath 生成的 pdf 在 pdf 查看器中显示为空白,尽管它的文件大小是合理的(超过 80kb)。
我不确定问题是什么,我不知道为什么 pdf 查看器不显示内容,尽管它包含
%PDF-1.4
1 0 obj
<<
/Title (�� C o m m i t t e e)
和其他使它看起来是一个合理的pdf文件的东西。
编辑:
为了比较,如果我在记事本中打开这两个文件,我会看到原始文件为:
%PDF-1.4
1 0 obj
<<
/Title (þÿ C o m m i t t e e)
所以也许编码和解码不使用相同的东西,但我不知道原始编码是什么......
任何帮助将不胜感激!