2017-05-09 57 views
1

當通過Connect事件通知從DocuSign保存簽名的PDF文檔時,出現空白PDF文件。 據我所知值Base64編碼的PDFBytes,所以這是我的代碼將其轉換成字符串:保存來自DocuSign Connect的經過簽名的PDF文件時的空文件

XmlNode docs = xmldoc.SelectSingleNode("//a:DocumentPDFs", mgr); 
       foreach (XmlNode doc in docs.ChildNodes) 
       { 
        string documentName = doc.ChildNodes[0].InnerText; 
        string documentId = doc.ChildNodes[2].InnerText;  
        string byteStr = Encoding.UTF8.GetString(Convert.FromBase64String(doc.ChildNodes[1].InnerText));      
        System.IO.File.WriteAllText(LOGPATH + envelopeId.InnerText + "_" + documentId + "_" + documentName, byteStr); 
       } 

然而,這樣會產生空的PDF文件。有沒有人有過這方面的成功?

+0

能否請您發佈的'價值doc.ChildNodes [1] .InnerText' –

+0

您可以在http://documentsigningdemo.networxsolutions.co.uk/documents/ffb3019a-c529查看通知XML -4f48-8085-64238d9a1c52_Completed_55e20fde-d56e-44b4-be3d-4f778c896b0e.xml –

回答

0

在轉換Base64字符串之後,不需要對字節進行編碼。試試這個

byte[] fileBytes = Convert.FromBase64String(doc.ChildNodes[1].InnerText); 
string filePath = LOGPATH + envelopeId.InnerText + "_" + documentId + "_" + documentName + ".pdf"; 
System.IO.File.WriteAllBytes(filePath , fileBytes); 
+0

我試過這個,現在正在獲取未能加載的PDF。 –

+0

我現在已經放棄了從xml中提取文件,現在正在使用對GetDocument Api方法的調用,該方法正在爲我工​​作。 –

+0

我已經更新了我的答案。請再試一次。您不需要進行額外的GetDocument調用。 –

相關問題