C# 在c中将Progress 4GL blob文件转换为pdf

C# 在c中将Progress 4GL blob文件转换为pdf,c#,blob,progress-4gl,openedge,C#,Blob,Progress 4gl,Openedge,我有一个正在开发的简单Web服务4GL,从中我收到一个数据集作为输出参数,其中有一个blob,我存储了一个pdf文件 DEFINE TEMP-TABLE TTDocument NO-UNDO FIELD DocSeqNr AS INT FIELD FileName AS CHAR FIELD EventCode

我有一个正在开发的简单Web服务4GL,从中我收到一个数据集作为输出参数,其中有一个blob,我存储了一个pdf文件

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文件的二进制表示形式

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.

如何将此字符串转换为bytes[]以获取c格式的此pdf文件?

可能应该使用Base64对其进行编码,因此您应该使用convert.FromBase64String方法:


var test=byte[]dr[FileContent].ToString

XML响应中的文件是如何编码的?有将字符串转换为字节的方法[]喜欢转换。从Base64 String请考虑对所提供的代码添加解释。