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

问题描述 投票:1回答:2

[我已经在Progress 4GL中开发了一个简单的Web服务,从中我接收到一个带有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文件二进制表示形式的字符串。

如何将该字符串转换为字节[]以在C#中获取此pdf文件?

c# blob progress-4gl openedge
2个回答
0
投票

可能应该使用Base64进行编码,所以应该使用方法Convert.FromBase64String

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

0
投票

var test =(byte [])dr [“ FileContent”]。ToString();

© www.soinside.com 2019 - 2024. All rights reserved.