2014-10-09 116 views
0

我有一个简单的webservice开发进度4GL从中我收到作为输出参数与blob whoich我已经存储了pdf文件的数据集。将进度4GL blob文件转换为pdf格式在c#

DEFINE TEMP-TABLE TTDocument    NO-UNDO 
     FIELD DocSeqNr      AS INT 
     FIELD FileName      AS CHAR 
     FIELD EventCode      AS CHAR 
     FIELD EventDescr      AS CHAR 
     FIELD FileContent     AS BLOB 
     . 


DEFINE DATASET ds FOR TTDocument. 

DEFINE INPUT  PARAMETER pCoCd       AS CHARACTER NO-UNDO. 
DEFINE INPUT  PARAMETER pLanCd      AS CHARACTER NO-UNDO. 
DEFINE INPUT  PARAMETER pUsrCd      AS CHARACTER NO-UNDO. 
DEFINE INPUT  PARAMETER pFilter      AS CHARACTER NO-UNDO. 
DEFINE  OUTPUT PARAMETER DATASET      FOR ds. 
DEFINE  OUTPUT PARAMETER pErrorTxt      AS CHARACTER NO-UNDO. 

在.NET中我对这个Web服务的请求,我处理这样的回应:

 XmlElement doc; 
     DataSet xxx = new DataSet(); 
     beaHostDB.GetDocumets(pCoCd, lanCd, pUsrCd,idAdd, out doc, out pErrorTxt); 
     XmlElementToXmlDocment(doc); 
     var reader = new StringReader(doc.InnerXml); 
     xxx.ReadXml(reader); 
     foreach (DataRow dr in xxx.Tables[0].Rows) 
     { 
       DcumentList.Add(new Document { FileContent =dr["FileContent"].ToString}); 
     } 

所以现在我有这个pdf文件的二进制表示的字符串。

如何将此字符串转换为字节[]以获取此c#文件?

+1

如何在文件中的XML响应编码?有方法将字符串转换为字节[]喜欢Convert.FromBase64String – Luizgrs 2014-10-09 12:41:53

+0

你是生活的保护者; – 2014-10-09 14:59:37

回答

0

也许应该使用的Base64编码,所以你应该与方法Convert.FromBase64String去:

var byteContent = Convert.FromBase64String(dr["FileContent"].ToString())