2017-03-06 6 views
0

は、私は、DocuSignのから署名された文書を取得しようとDocuSignのノードSDKを使用して、このコードを使用しています、正常にログインしたので、封筒から文書のリストを持っている:Docusign Node SDKでenvelopesApi.getDocumentを呼び出すとき、どの形式でデータが返されますか?どのようにファイルに書き込むのですか?

envelopesApi.getDocument(accountId, envelopeId, documents[0].documentId, function(err, data, response) { 
    log.info({data: data.substring(0, 100)}, 'getDocument data'); 
    log.info({response}, 'getDocument response'); 
    fs.writeFile('/home/martin/downloaded.pdf', data, (err) => { 
    next(err); 
    }); 
}); 

data変数であります文字列。これはbase64でエンコードされていません。

%PDF-1.4 
%ûüýþ 
4 0 obj 
<< 
/Parent 3 0 R 
/Resources 5 0 R 
/MediaBox [0.00000 0.00000 595.00000 842.00 

ので、私はそれがbase64エンコードではないことがわかります(バニヤンログインモジュールを使用して)最初のログステートメントは、文字列がこれらの文字で始まることを示しています。 pdfファイルの内容を文字列で保持することは私にとっては奇妙なことです。私はBufferオブジェクトを期待していました。

このコードが保存したファイルを開くと(Chromeで)、有効なPDFファイル(Chromeにファイルが破損しているとエラーが表示されない)が表示され、適切なページ数になりますそれは完全に判読不能です。ページには読みやすいテキストがありません。何かが壊れていることを示しています。文字列に追加読めるストリーム&から読んように見える -

私はそれがPDFを要求していることがわかります、そしてそれは、特にPDFファイルを扱うためのApiClientでコードがあるSDKからEnvelopesApi.jsApiClient.jsファイルを見ます。

NODE SDKを使用しないで、代わりにREST APIを直接使用することをお勧めします(公式REST API Recipe: Getting an Envelope's Document Listの例を参照)。可能であればSDKを使用したいと思います。

このdataパラメータで何かすべきことがありませんか?

答えて

1

ここで文書here

をダウンロードするには、APIのレシピを参照してくださいには、ドキュメントをダウンロードするためのサンプルコードです。

envelopesApi.getDocument(accountId, envelopeId, documentId, function (error, document, response) { 
    if (error) { 
     console.log('Error: ' + error); 
     return; 
    } 

    if (document) { 
     try { 
     var fs = require('fs'); 
     var path = require('path'); 
     // download the document pdf 
     var filename = accountId + '_' + envelopeId + '_' + documentId + '.pdf'; 
     var tempFile = path.resolve(__dirname, filename); 
     fs.writeFile(tempFile, new Buffer(document, 'binary'), function (err) { 
      if (err) console.log('Error: ' + err); 
     }); 
     console.log('Document ' + documentId + ' from envelope ' + envelopeId + ' has been downloaded to ' + tempFile); 
     } catch (ex) { 
     console.log('Exception: ' + ex); 
     } 
    } 
    }); 
関連する問題