DocuSign Api返回文件字节字符串,尝试转换为PDF时文件为空白或损坏的文件

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

我正在使用docusign api从信封中获取一些文档,我获得了所有信息,但是对于PDF下载,我得到了一个“ filebytes”字符串,当尝试对其进行处理以进行下载时,我得到了只是一个空白页(由于我使用的是沙箱帐户,因此不确定是否是预期的结果)。我正在从客户端进行所有操作。

这是我要处理的字符串:

      const pdfBlob = new Blob([Buffer.from(content)], {
    type: 'application/pdf'
  });

  if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveOrOpenBlob(pdfBlob, filename);
    resolve();
  } else {
    const tempLink = document.createElement('a');
    const url = window.URL.createObjectURL(pdfBlob);

    const clickEvent = new MouseEvent('click', {
      'view': window,
      'bubbles': true,
      'cancelable': false
    });
    tempLink.href = url;
    tempLink.target = '_blank';
    tempLink.download = filename;
    document.body.appendChild(tempLink);
    tempLink.dispatchEvent(clickEvent);
    setTimeout(() => {
      document.body.removeChild(tempLink);
      window.URL.revokeObjectURL(url);
      resolve();
    }, 100);
  }


});

有什么想法吗?

javascript pdf-generation docusignapi
2个回答

-1
投票

这里是此主题的blog post。Node.js代码是这样的(您必须从服务器执行此操作):

// You would need to obtain an accessToken using your chosen auth flow 
let apiClient = new ApiClient(basePath);
let config = new docusign.Configuration(apiClient);
config.addDefaultHeader('Authorization', 'Bearer ' + accessToken);
let envelopesApi = new docusign.EnvelopesApi(config); 
var accountId; // accountId for your DocuSign account
var envelopeId; // envelopeId that you are working on
// produce a ZIP file with all documents including the CoC
let results1 = await envelopesApi.GetDocument(accountId, envelopeId, 'archive', null);
// produce a PDF combining all signed documents as well as the CoC
let results2 = await envelopesApi.GetDocument(accountId, envelopeId, 'combined', null);
// produce a particular document with documentId '1'
let results3 = await envelopesApi.GetDocument(accountId, envelopeId, '1', null);
//TODO - use byte array to write or send the file for your use

如果您的代码或此代码返回空白页,请确认您是否在使用DocuSign Web应用程序时没有收到该页面,是否有可能是空的?请记住编码,这是使用64位编码来获取REST API中的位。

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