PythonとParseを使用してチェックドキュメントを印刷する

少し前までは、モバイルデバイスを使用して特定の形式のドキュメントを印刷するという課題に直面していました。 電話では、特定の値を入力し、サーバーに送信する必要があり(後でこのデータをWebサイトで使用できるように)、そのデータを含むドキュメントを印刷しました。 当初から、私の選択はGoogleクラウドプリントにありました。そのような問題の使用と解決は可能な限り簡単だからです。 ただし、このオプションを使用する場合、いくつかの欠点があります。





そのため、このような操作用に独自のスクリプトを作成することにしました。



Pythonプログラミング言語が最も柔軟で、これらのタスクに適しているため、私が選んだのはPythonプログラミング言語です。 私の開発では、Ubuntu Linux OSを使用しました。 彼女のためにライブラリのインストールが提示されます。



最初から、PDFドキュメントの作成方法を学ぶ必要があります。 HTMLマークアップをPDFに変換する最も簡単な方法は、xhtml2pdfライブラリを使用することです。 まず、必要なパッケージをインストールします。



sudo apt-get install python-cups python-pip python-dev
      
      





python-cupsはPythonがプリンターで動作できるライブラリです。python-pipはxhtml2pdfのインストールを簡単にします。



次に、xhtml2pdfをインストールします。



  sudo pip install xhtml2pdf
      
      





次のコードは、すべてがどのように機能するかを示します。



  #!/usr/bin/env python #   import cups from xhtml2pdf import pisa def main(): # ,    PDF  filename = "/home/pi/print.pdf" #     HTML  xhtml = "<h1>Test print</h1>\n" xhtml += "<h2>This is printed from within a Python application</h2>\n" xhtml += "<p style=\"color:red;\">Coloured red using css</p>\n" pdf = pisa.CreatePDF(xhtml, file(filename, "w")) if not pdf.err: #  PDF  -         pdf.dest.close() #    CUPS conn = cups.Connection() #    ,    printers = conn.getPrinters() for printer in printers: #      print printer, printers[printer]["device-uri"] #       printer_name = printers.keys()[0] conn.printFile(printer_name, filename, "Python_Status_print", {}) else: print "Unable to create pdf file" if __name__=="__main__": main()
      
      





ここではすべてが非常にシンプルで明確です。 画像はプレーンHTMLに貼り付けることができます。



 <p><img src='/home/usr/image.jpg'/>
      
      





しかし、「 データをどこに保存し、印刷用にどこで入手するのか? 」という疑問が生じます



これを行うには、 Parseサービスを使用します。 これは、データを保存するのに適した無料のクラウドです。 ほぼすべてのプラットフォームで動作するため、使用すると便利です(大まかに言うと、Androidデバイスからクラウドにデータを追加し、iOS、PHP、JavaScript、その他のプラットフォームで取得できます)。



特にPythonには、リクエストを数行で送信できるREST APIがあります。 Parsから取得するには、次のコードを使用します。



  connection = httplib.HTTPSConnection('api.parse.com', 443) connection.connect() connection.request('GET', '/1/classes/TestPay', '', { "X-Parse-Application-Id": "<b>yourAppId</b>", "X-Parse-REST-API-Key": "<b>yourRestApiKey</b>" }) result = json.loads(connection.getresponse().read())
      
      





ここで、 yourAppIdはアプリケーションのキーであり、 yourRestApiKeyは使用しているApiのキーです。 サイトで詳細をご覧ください。 次に、結果配列をJSONオブジェクトとして処理し、それをHTMLページに挿入すると、すぐに印刷されます。



ご質問、ヒントがある場合、または記事に関するご意見をお聞かせいただく場合は、コメントにご記入ください。 明けましておめでとうございます!



All Articles