Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MTOM中二进制文件的PDF图像_C#_Pdf_Soap_Mtom - Fatal编程技术网

C# MTOM中二进制文件的PDF图像

C# MTOM中二进制文件的PDF图像,c#,pdf,soap,mtom,C#,Pdf,Soap,Mtom,我正在对GSoap web服务进行一个自定义HttpWebRequest调用,该服务返回一个XML+XOP信封,其中包含一个二进制PDF图像 我抓取响应并将二进制代码放在边界字符串之间 最后,我将二进制文件转换为字节[],并将其保存为PDF格式 现在,我可以看到PDF元数据,因此编码是正确的,但是当我尝试打开它时,我得到的数据不足,导致图像出现错误,并且PDF中的图像没有显示出来 我通过以下方式转换二进制字符串: retBytes = System.Text.Encoding.UTF8.GetB

我正在对GSoap web服务进行一个自定义
HttpWebRequest
调用,该服务返回一个XML+XOP信封,其中包含一个二进制PDF图像

我抓取响应并将二进制代码放在边界字符串之间

最后,我将二进制文件转换为
字节[]
,并将其保存为PDF格式

现在,我可以看到PDF元数据,因此编码是正确的,但是当我尝试打开它时,我得到的
数据不足,导致图像出现错误,并且PDF中的图像没有显示出来

我通过以下方式转换二进制字符串:

retBytes = System.Text.Encoding.UTF8.GetBytes(modStr);

其中modStr是以
%PDF-1.1
开头,以
%%EOF
结尾的字符串。我是否需要进行更多的编码/解码,以便在我可以看到所有其他内容(页面/元数据等)的情况下显示图像?

PDF可以包含二进制数据;决不能将其视为
字符串
。事实上,它有很多看起来像文本的部分是不相关的。不,这里有一个非序列。能够获取PDF元/头只能告诉您:您能够获取元/头。也许meta/标题总是基于文本的。这并不意味着整个PDF是基于文本的(很简单,它不是)。如果您对PDF数据使用字符串编码,您将(通常)更严重地损坏PDF,如果您使用MTOM,我希望这只是一个
字节[]
;毕竟,这就是MTOM的用途。如果您使用的是
字节[]
而不是
字符串
,它应该可以正常工作。在这里使用
string
是一个彻头彻尾的错误。在上下文中,如果我接受一个HTTP请求(或响应),并将其解码为文本,我可以非常真诚地说“看,我可以得到标题”。但是:我将无法挽回地破坏它在体内携带的
jpg
。能够阅读标题并不能证明你的方法是正确的。@davidvandriesche最简单的不改变行尾的方法是:将其视为一个blob