質問編集履歴

1

「前提・実現したいこと」にあいまいな記述があったため修正しました。

2022/09/22 02:44

投稿

Jochum
Jochum

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,59 +1,23 @@
1
1
  **### 前提・実現したいこと**
2
2
 
3
-
4
-
5
-
6
-
7
3
  Python初学者です。
8
-
9
- 現在、Wordファイルの文章差し替えDocxのライブラリで試しています。
4
+ 現在、Wordファイルの文章の置換Python-docxのライブラリで試しています。
10
-
11
- 文章を替えあと該当Paragraphのフォントサイズが初期値の10.5になっていることに気づきました。
5
+ 文章を置換した置換した文字列のフォントサイズが変更されていることに気づきました。
12
-
13
- 下記ソースコードの(para.runs[0].font.size~)ように、フォントサイズを12に戻すと自体は可能なのですが、変更箇所が複数の段落にあるため、なるべくなら、フォントサイズを変更せずに差し替えたいと思っています。こちらの原因と対処方法をご存知の方、ご教授いただたら幸いです。
6
+ こちらの原因と対処方法をご存知の方、ご教授いただたら幸いです。
14
-
15
-
16
-
17
7
  よろしくお願いいたします。
18
-
19
-
20
-
21
-
22
8
 
23
9
  ### 該当のソースコード
24
10
 
11
+ 【事前準備】
25
12
 
13
+ beforeの文字列を複数の段落に含む"sample.docx"を用意する。(フォントサイズはデフォルト設定より大きく入力された状態である。)
14
+ 下記ソースコードのpythonファイルを同じ階層に置いて実行する。
26
15
 
27
- Python```ここに言語名を入力
28
-
29
-
30
-
31
-
32
-
33
- ソースコード
16
+ ソースコード
34
-
35
-
36
-
37
-
38
-
39
17
  import docx
40
-
41
18
  doc = docx.Document("sample.docx")
42
-
43
-
44
-
45
- para = doc.paragraphs[2] # 2つ目の段落を取得
19
+ for para in doc.paragraphs:
46
-
47
-
48
-
49
- t = para.text
20
+ t = para.text
50
-
51
- t = t.replace("before", "after")
21
+ t = t.replace("before", "after")
52
-
53
-
54
-
55
- para.text = t # 編集したテキストで差し替える
22
+ para.text = t # 編集したテキストで差し替える
56
-
57
- para.runs[0].font.size = docx.shared.Pt(12)
58
-
59
- doc.save("Sample2.docx")
23
+ doc.save("sample_replace.docx")