DocuSign API JS SDK调用getDocument返回字符串无法存为PDF如何解决
问题根因
Node.js 环境的 DocuSign JavaScript SDK 默认会将接口响应自动转换为 UTF-8 编码的字符串,而 PDF 属于二进制格式文件,自动转字符串的过程会破坏原始二进制字节结构(不可识别的字节会被替换为占位符),因此后续即便把字符串转回 Buffer 也无法恢复有效 PDF 数据。C# 版本 SDK 默认会按二进制流处理文档类响应,因此不会出现该问题。
解决步骤
- 调用
getDocument接口时,在第四个可选配置参数中指定responseType为arraybuffer,禁止 SDK 自动将响应转成字符串:
const document = await envelopesApi.getDocument(accountId, envelopeId, '1', { responseType: 'arraybuffer' });
- 直接将返回的 ArrayBuffer 类型数据转为 Buffer 写入本地文件即可:
const fs = require('fs'); fs.writeFileSync('test.pdf', Buffer.from(document));
完成上述操作后即可得到可正常打开浏览的 PDF 文件。
内容的提问来源于stack exchange,提问作者changus
相关产品推荐
相关产品推荐

