Sample code for 30+ languages & platforms
Ruby

DocuSign Download Envelope Document (PDF)

See more DocuSign Examples

Retrieves the specified document from the envelope. The response body of this method is the PDF file as a byte stream. You can get the file name and document ID from the response's Content-Disposition header.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = Chilkat::CkHttp.new()

# Implements the following HTTP request:
# GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/1

# Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
jsonToken = Chilkat::CkJsonObject.new()
# Load a previously obtained OAuth2 access token.
success = jsonToken.LoadFile("qa_data/tokens/docusign.json")
if (success == false)
    print jsonToken.lastErrorText() + "\n";
    exit
end

http.put_AuthToken(jsonToken.stringOf("access_token"))

# Use your account ID and a valid envelopeId here:
http.SetUrlVar("accountId","7f3f65ed-5e87-418d-94c1-92499ddc8252")
http.SetUrlVar("envelopeId","90d7e40a-b4bd-4ccd-bf38-c80e37954a13")

url = "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
bd = Chilkat::CkBinData.new()

success = http.DownloadBd(url,bd)
if (success == false)
    print http.lastErrorText() + "\n";
    exit
end

respStatusCode = http.get_LastStatus()
print "Response Status Code = " + respStatusCode.to_s() + "\n";
if (respStatusCode != 200)
    print "Response Header:" + "\n";
    print http.lastResponseHeader() + "\n";
    # The response body contains an error message.
    print bd.getString("utf-8") + "\n";
    print "Failed." + "\n";
    exit
end

# The response indicated success.
# Get the filename from the Content-Disposition header and save to a file.
mime = Chilkat::CkMime.new()
mime.LoadMime(http.lastResponseHeader())

filename = mime.getHeaderFieldAttribute("Content-Disposition","filename")
print "filename = " + filename + "\n";

sbPath = Chilkat::CkStringBuilder.new()
sbPath.Append("C:/aaworkarea/")
sbPath.Append(filename)
success = bd.WriteFile(sbPath.getAsString())
if (success == false)
    print "Failed to save to output file." + "\n";
else
    print "Wrote " + sbPath.getAsString() + "\n";
end