2

これは SO に関する私の最初の質問であり、事前にすべての助けに感謝したいと思います。私はpython、python-docx、およびプログラミング全般にかなり慣れていません。docx 形式でコントラクトを生成するための GUI プログラム (PyQt を使用) に取り組んでいます。私はほとんどのことが機能していますが、ここに私が抱えている問題があります。テキストを同じ行の左右に揃える必要があります。つまり、これは右インデントに変更してタブを押し、テキストを追加することで行われると思います。ただし、python-docx でこれを行う方法がわかりません。私は試した:

paragraph = document.add_paragraph()
paragraph.add_run('SOME TEXT')
paragraph.alignment = 0
paragraph.add_run('SOME OTHER TEXT')
paragraph.alignment = 2

しかし、これはうまくいきませんでした。enum WD_PARAGRAPH_ALIGNMENT など、ドキュメントごとに他のアイデアを試しましたが、何も機能しませんでした。

これは python-docx (バージョン 0.8.5 を使用しています) で実行できますか?

助けてくれてありがとう!

4

2 に答える 2

1

まだ解決策を探しているかどうかはわかりませんが...

私も python-docx でコントラクトを生成していますが、この同じ問題に遭遇しました。右揃えのタブ ストップ機能が追加されるまで、私の回避策は、カスタム テーブル スタイルを使用して行をテーブルとしてフォーマットすることです。

  • まず、ドキュメント ('custom_styles.docx') を開き、1 行 2 列のテーブルを追加します。
  • テーブルを選択し、新しいテーブル スタイル ('CustomTable') を追加します。最初の列は左揃えで、最後の列は右揃えです。(また、境界線を「なし」に設定するか、白く色付けして、境界線を非表示にしました。)
  • テーブルを削除してドキュメントを保存すると、新しい「CustomTable」スタイルの空のドキュメントが作成されます。

以下は、左揃えと右揃えの両方に見える行を作成するために機能するはずです。

from docx import Document

document = Document('custom_styles.docx')
table = document.add_table(1, 2, style='CustomTable')
table.cell(0,0).text = 'Left Text'
table.cell(0,1).text = 'Right Text'
document.save('new_document_name.docx')

私にとって最も難しい部分は、Word で表スタイルを作成する方法を理解することでした。

于 2015-10-01T15:59:48.657 に答える