Djangoからの矎しいPDF印刷

なぜなら この蚘事は数幎の実隓の結果であり、倚くの手玙がありたす。 しかし-おそらく-それは説明されおいるように、誰かがレヌキで䜕ヶ月もサむクリングするこずを節玄したす。

䞀般的なケヌスでは、これはDjangoでさえもではなく、テンプレヌト゚ンゞンを䜿甚しおPythonから芏制されたドキュメントを印刷するこずです。

さらに怠を読むために-私はすぐに蚀いたす-問題は完党に解決されおいたせん。 しかし、倚かれ少なかれ機胜するバヌゞョンが登堎したした。



1.課題







2.制限





最初の段階は、最終圢匏の遞択です。 さたざたなt.zでの熟考の埌。 クロスプラットフォヌム、保蚌された結果、倉換可胜性c遞択はPDFで決たりたした。

今-入力圢匏ずその倉換方法。



3.゜フトフォヌム



ODF


私たちは、Open Document Format-ODS、ODTなどに぀いお話しおいる。

ここではすべおが非垞に簡単です。



デヌタの堎所ナヌザヌ定矩フィヌルドをドキュメントに远加するか、{{django tags}}をテキストに盎接挿入したす。 最初のケヌスでは、これらのフィヌルドに埌でpythonから入力するこずはおそらく可胜ですが、どのように想像するこずもできたせんより正確には、衚瀺されるものはすべお非垞に玛らわしいようです したがっお、タグはテキスト圢匏で配眮するだけです。

この堎合、フィヌルドの入力は基本です-テンプレヌトをDjangoテンプレヌト゚ンゞンにフィヌドするだけですgentushkiのテンプレヌト内で遞択するためにPythonラむブラリを残したす:-)。 そしお、キックごずにドキュメントを解凍/圧瞮しないために、ドキュメントは* .fodXフラットXに保存されたす-唯䞀の解凍されたxml。 テンプレヌトはxmlずしお䟛絊されたす。

PDFの取埗-オプションなし-LibreOfficeの䜿甚LibreOfficeデヌモンlibreofficedubuntudersのどこかにありたすたたはunoconvをフィヌドするか、デヌモンモヌドでLOランチャヌを手動で実行したす。 これらのオプションはすべおほが同じです。

長所




欠点




たずめ


極端なフォヌルバックオプションずしお-適切。 しかし、同じくらい極端です。

HTML


ここでは、テンプレヌトの線集手䜜業ずテンプレヌト゚ンゞンスパヌクにより、すべおが明確になりたす。 小さいですが、䞻な質問が1぀ありたす-PDFを取埗する方法ですか 必芁に応じお改ペヌゞを䜿甚しお、すばやく効率的に。 そしお、これが最も実隓的でした。

玔粋なpython htmlレンダリングPISAや祖先/盞続人/フォヌクなどを䜿甚した倚数の実隓により、重芁なIMHO結論が導き出されたした。結果を保蚌するには、既補のhtml゚ンゞンを䜿甚する必芁がありたす。 そのうち、私たち皆が知っおいるように、最倧​​4通垞から。 これらのうち、Linuxではgeckoずwebkitの2぀たで䜿甚できたす。 Pythonからgeckoを呌び出すこずはほずんど可胜ですが、aXを実行する必芁がありたすLibreOfficeの堎合のようにb既補のレシピが芋぀かりたせんでした。

残りのWebkit



長所




欠点




たずめ


「゜フト」ドキュメントの䞻なオプション。 しかし、 高品質の玔粋なpython htmlレンダヌフラッシュ、JS、その他の挫画なしを探す必芁がありたすが、高品質のCSS凊理が必芁です。

たぶん


将来的には、TeX、LaTeX、Lyx、docbook圢匏が考慮されたすが、これたでのずころ利点はありたせん特に「ほが゜フトな」圢匏の堎合-同じ21001など。



4.ハヌドフォヌム



ここではすべおが悲しい。 特に、ここでは既にビゞュアル゚ディタが非垞に望たしいずいう事実に照らしお。

さらに、ロシア連邊の「ハヌド」フォヌムの倧郚分すべおではないにしおもでは、テキストが文字に分割されるずきに「正方圢」が䜿甚され、それぞれが独自の正方圢に収たりたす 䟋 。

最初のもの「tiffのプルテキスト」などを削陀し、ファむナリストに盎行したす。

RML


Reportlabの開発はい、python-reportlabは圌らのものですは通垞のXMLであり、PDFで䞍思議な仕事をするこずができたす。 なぜなら よく知られおいるpython-trml2pdfはすでにRIPです開発者が正盎に私に曞いたように-このtrml2pdfを取り、少し仕䞊げなければなりたせんでした。 RMLの倚くの興味深い機胜をサポヌトしおおらず、 宗教により商甚のrml2pdfを賌入するこずは犁じられおいたすさらに壊れおいたす。

長所




欠点


たずめ


正確な圢匏特に単玔な圢匏のフォヌルバック。

PDFフォヌム


ここではすべおが非垞に簡単です。PDFの゜ヌス-PDFの最終結果です。

  1. 巊手に元のPDFを取りたす
  2. 組み蟌みのDjangoテンプレヌト゚ンゞンによっお凊理されたXFDF気取らないxml-右偎
  3. それらを新しいPDFにマヌゞ取り蟌み「ロヌルアりト」-フラット化
  4. それをナヌザヌに枡したす


問題は1぀だけです-項目3。

これたで、PDFフォヌムを操䜜するためのネむティブで正しく機胜するpython APIは芋぀かりたせんでしたただし、popplerは既に䜕かを実行できたすが、明らかに、さらに倚くの機胜がありたす。したがっお、 iTextが唯䞀の蚱容可胜なオプションです。 pdftkたたは自転車を䜿甚するこずは、すでにあなたの奜みに合っおいたす。

長所




欠点




たずめ


正確な印刷フォヌムの䞻なオプション。



5.抂芁



今日圢成された合蚈





PS。 これがどのように機胜するか- ここで芋るこずができたす-ODFずRMLなしで、埌者が提䟛されたす。



All Articles