質問

請求書を生成してPDFとして保存するWSGIアプリケーションがあります。

これまでのところ、FPDF(または同等のもの)で同様の問題を解決し、GUIのようにゼロからPDFを生成しました。悲しいことに、これはフォーマットロジック全体(ヘッダー、フッター、コンテンツの配置、スタイリング)がアプリケーション内にあり、本来はそうすべきではないことを意味します。

テンプレートは既にOffice形式(ODT、DOC、DOCX)で存在しているため、これらを基本として使用し、実際のコンテンツを入力することをお勧めします。 Appyフレームワークを見つけました。これは、注釈付きODTファイルでほぼそれを行います。

それでもなお、大きな問題は未解決のままです。tho:ODT(またはDOC、またはDOCX)をPDFに変換します。サーバー上。 Linuxを実行します。 GUIライブラリなし。したがって、OO.oまたはMS Officeがありません。

これは可能ですか、それともコードのスタイリングを維持した方が良いですか?

入力される実際のコンテンツは、実際には非常に制限されています。いくつかの段落(オプションの場合もあります)、見出しまたは2つ、常に同じ場所、および表の数行。 HTMLではこれは簡単です。

編集:基本的に、テンプレートとして機能するODFファイルからODTファイルを生成できるライブラリと、結果をPDF(おそらくcrux)に変換できるライブラリが必要です。

役に立ちましたか?

解決

自動ODTの実行方法がわからない-> PDF変換ですが、より簡単な方法は、 http:// wwwを使用して請求書をHTMLとして生成し、PDFに変換することです。 xhtml2pdf.com/ 。私は自分でライブラリを試したことはありませんが、間違いなく有望なようです。

他のヒント

PyQt4ではQTextDocument、QTextCursor、およびQTextDocumentWriterを使用できます。 odtファイルへの書き込み方法を示す簡単な例:

>>>from pyqt4 import QtGui
# Create a document object
>>>doc = QtGui.QTextDocument()
# Create a cursor pointing to the beginning of the document
>>>cursor = QtGui.QTextCursor(doc)
# Insert some text
>>>cursor.insertText('Hello world')
# Create a writer to save the document
>>>writer = QtGui.QTextDocumentWriter()
>>>writer.supportedDocumentFormats()
[PyQt4.QtCore.QByteArray(b'HTML'), PyQt4.QtCore.QByteArray(b'ODF'), PyQt4.QtCore.QByteArray(b'plaintext')]
>>>odf_format = writer.supportedDocumentFormats()[1]
>>>writer.setFormat(odf_format)
>>>writer.setFileName('hello_world.odt')
>>>writer.write(doc) # Return True if successful
True

この場合のodtとodfの違いがわからない場合。ファイルの種類を確認したところ、「application / vnd.oasis.opendocument.text」と表示されていました。だから私はそれがodtだと思います。 QPrinterを使用してPDFファイルに印刷できます。

詳細情報: http://qt-project.org/doc/qt-4.8/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top