在C#中将ActionResult转换为pdf

时间:2013-06-17 16:34:23

标签: c# asp.net-mvc pdf actionresult

我的工具正试图从服务器调用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)

所以也许编码和解码不会使用相同的东西,但我不知道原始编码是什么......

任何帮助将不胜感激!!

0 个答案:

没有答案