2017-01-30 10 views
-2

SoftLayerのAPIのgetPdfメソッドでバイナリデータを取得しました。SoftLayerの見積もりの​​バイナリデータから "PDF"ファイルを取得する方法は?

Ref。 BillingSoftLayer_Billing_Order_Quote :: getPdf | SoftLayer開発ネットワーク - http://sldn.softlayer.com/reference/services/SoftLayer_Billing_Order_Quote/getPdf

次に、私はバイナリデータからPDFファイルを作成したいと思います。 これを進める方法は分かりますか?

答えて

0

このメソッドは、ベース64でエンコードされたバイナリデータを返します。バイナリデータをデコードする必要があります。

この記事では、バイナリデータのエンコードとデコードについて説明します。あなたがここにそのオブジェクトのPythonクライアントとPython 3

#!/usr/bin/env python 

import SoftLayer 
import xmlrpc.client 
import base64 
import os 

USERNAME = 'set me' 
API_KEY = 'set me' 

quoteId = 1560845 

client = SoftLayer.Client(username=USERNAME, api_key=API_KEY) 

accountClient = client['SoftLayer_Billing_Order_Quote'] 
binaryData = accountClient.getPdf(id=quoteId) 
decodeBinary = binaryData.data 
file = open('test.pdf','wb') 
file.write(decodeBinary) 

よろしくを使用した例で作業する必要があるので、

https://code.tutsplus.com/tutorials/base64-encoding-and-decoding-using-python--cms-25588

Pythonクライアントはxmlrpc.client.Binaryオブジェクトを返します

-1

これは私の質問の私の答えです。

# import 
import SoftLayer 
import sys 
parm=sys.argv 
quoteId=parm[1] 

# account info 
client = SoftLayer.create_client_from_env() 

# getPdf as a binary data 
getPdf = client['Billing_Order_Quote'].getPdf(id=quoteId) 

# Save as a PDF 
quoteFileName = "Quote_ID_%s.pdf" % quoteId 
w = open(quoteFileName, "wb") 
w.write(getPdf.data) 
w.close() 
+0

これは私が以前あなたに与えたコードと実質的に同じですが、私の答えは正しいとマークしていません。S!@#$#%$$% –

関連する問題