1

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

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

任何帮助将不胜感激!

4

0 回答 0