私は、現在のドキュメントに2つのフォントが混在しているため、ドキュメントのフォント全体をArial(10pt)に変更するという幻想的な方法を探しています。python-docxを使って単語文書のフォントを変更する方法はありますか?
これは可能ですか?
- ありがとうございます! JP
私は、現在のドキュメントに2つのフォントが混在しているため、ドキュメントのフォント全体をArial(10pt)に変更するという幻想的な方法を探しています。python-docxを使って単語文書のフォントを変更する方法はありますか?
これは可能ですか?
- ありがとうございます! JP
これは、最初に表示されるよりも複雑な問題があるため、これにアプローチする方法はいくつかあります。
Wordのテキストアイテムの「見た目の」フォント、またはより正確には「効果的な」フォントは、CSSがHTMLと同じようにスタイル階層から計算されます。
すべての上位レベルを上書きするスタイル階層の最終レベルは、実行レベルで直接適用されます。したがって、Arialを10ptにするように特定の実行を設定した場合、それは何とかそのように表示されます。
上記のレベルには、段落のデフォルトの書式、文字スタイル、段落スタイル、継承スタイル(基本スタイルの適用スタイル)、およびドキュメントの既定値があります。だから、あなたは複雑さに関する私の見解を知ることができます。これらすべてのことを「適切に」するために再調整する必要があります(これは後で編集可能になるというメリットがあります)。
しかし、強引にアプローチしたい場合は、文書内の各実行に明示的なフォントを適用するだけです。実際には、それぞれの実行時に明示的なフォント設定を削除し、スタイルまたはドキュメントのデフォルトルールで有効なフォントを使用するようにしてください。
反復処理の実行は、このaircodeようなものになります。
document = Document('my-document.docx')
for paragraph in document.paragraphs:
for run in paragraph.runs:
font = run.font
# ---do font-related things---
for table in document.tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
for run in paragraph.runs:
font = run.font
# ---do font-related things---
をおそらくいくつかの関数を抽出することにより、それがきれいにしたいが、それは要点です。
pythonicとはどういう意味ですか?それはdocument.paragraphsを使用すると、すべての段落を取得し、それらを介してループできるようにする必要があります – Srgrn
私はアカウントのテーブルとそのサブ構造(行、セル)とドキュメントを取るより高いレベルのソリューションを探しています.paragraphs。 –