質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2593閲覧

pythonでQRコードを作成し、wordに直接貼り付ける方法

able

総合スコア7

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/11/05 13:36

前提・実現したいこと

現在、QRコードを作成し、Wordに貼り付けるコードを作成しています。
QRコードを作成し、一度画像ファイルとして保存してからWordに貼り付けることには成功しました。しかし、画像ファイルとして保存せずに直接Wordに貼り付けるにはどうすればよいのかわかりません。もし方法があるのならご教示いただけますと幸いです。
参考に単純化したコードを記載します。
よろしくお願い致します。

該当のソースコード

python

1#QR.py 2import qrcode 3import docx 4import PIL.Image 5 6root = tk.Tk() 7root.title("QR出力") 8root.geometry("100x100") 9 10inputBox = tk.Entry(root, state='normal', width=6,justify=tk.CENTER) 11inputBox.place(x=40, y=15) 12 13def input_click(): 14 qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H) 15 qr.add_data(inputBox.get()) 16 qr.make() 17 img = qr.make_image() 18 # img.save('出力.png') 19 doc = docx.Document() 20 #doc.add_picture('出力.png') 21 doc.add_picture(img) 22 doc.save('出力.docx') 23 24inputbtn = tk.Button(root, text='出力',command=input_click) 25inputbtn.place(x=40, y=50) 26 27root.mainloop()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

glyzinieh

2020/11/05 14:05

あまり良い解決方法ではないように感じますが、一度保存して挿入してから、削除するというのはダメでしょうか?
able

2020/11/06 12:34

最終的には繰り返しでいくつもQRコードを作成して貼り付けるため、直接貼り付ける形にしたかったのですが、方法がない場合は保存してから削除する形にしようと思います。コメントありがとうございます。
guest

回答1

0

ベストアンサー

画像ファイルとして保存せずに直接Wordに貼り付ける

BytesIO 経由でもよろしければ

Python

1import io 2 3... 4 5 #doc.add_picture(img) 6 byteio = io.BytesIO() 7 img.save(byteio, format='png') 8 byteio.seek(0) 9 doc.add_picture(byteio) 10 doc.save('出力.docx')

投稿2020/11/07 14:32

lehshell

総合スコア1147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

able

2020/11/10 12:53

BytesIOという機能があるのですね。初めて知りました。 活用させていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問