我的问题是基于从API调用中得到的一系列数据。我将原始数据传递到FromBase64String中,然后将字节数组编码回字符串。我期待一个有效的pdfsharp返回,我要保存到一个文件。下面解码的字符串值中没有一个包含正确的数据。我知道原始的base64编码的api返回字符串是有效的,因为我可以在notepadd++中打开它,并使用base64解码器来创建格式正确的pdf文档。
byte[] todecode_byte = Convert.FromBase64String(data);
string decodedUTF7 = Encoding.UTF7.GetString(todecode_byte);
string decodedUTF8 = Encoding.UTF8.GetString(todecode_byte);与我认为应该是什么( notepadd++转换版本)最接近的表示形式是UTF7。但是,在文档中嵌入的图像中似乎有一些丢失的数据。与工作文档相比,UTF8有一些结构差异。
例如..。我的控制..。%PDF-1.7 % objá1 0 obj <<
UTF7...%PDF-1.7 % objá1 0 obj <<
UTF8...%PDF-1.7 %
但是,再一次,UTF7版本似乎围绕着嵌入在文档中的图像有一些问题。无论哪种方式,这两个版本都会创建一个88kpdf文档,作为一个空白页打开。该控件(使用notepadd++)保存为pdf文档时,大小约为该大小的一半,并将打开,显示所有正确的信息。
发布于 2014-02-27 18:02:05
我期待一个有效的pdfsharp返回,我要保存到一个文件。
如果它是一个PDF文件,我根本不会尝试把它转换成字符串。这不是文字,而是二进制数据。它应该很简单,如:
byte[] binaryData = Convert.FromBase64String(data);
File.WriteAllBytes("file.pdf", binaryData);https://stackoverflow.com/questions/22076541
复制相似问题