Метод API EnvelopeDocuments :: get возвращает сам PDF, а не объект, как вы показываете.
Рабочий пример метода см. пример 7 , часть набора примеров Node.js.
Добавлено
Кроме того, вызов fs.writeFile поддерживает запись из строкового источника.Я бы попробовал:
fs.writeFile(document.name, doc, {encoding: "binary"},
function(err) {
if (err) throw err;
console.log('Saved!');
});
Неправильная кодировка
Ваш вопрос отображает содержимое pdf в виде строки с управляющими символами, закодированными в виде строк Unicode:
"%PDF-1.5\n%\ufffd\ufffd\ufffd\ufffd\n%Writing objects...
, ноэто не правильно.Начало файла PDF включает двоичные символы, которые не отображаются, кроме как в шестнадцатеричном редакторе.Это то, что вы должны увидеть в верхней части PDF:
Обратите внимание на 10-й символ.Это гекс с4.В вашей строке эквивалентный символ был закодирован как \ufffd
(это нормально, что это не один и тот же символ, это два разных PDF-файла).Ваша проблема в том, что символ был закодирован.
Решения
- Убедите библиотеку запросов и методы fs.WriteFile не кодировать данные.Или расшифровать его по мере необходимости.См. это решение для библиотеки запросов.
- Или используйте SDK DocuSign Node.js, как показано в примере кода, упомянутого выше.