Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Satoshi Yamada
PDF, PPTX
3,773 views
本気でPythonで宛名書きした話
PythonでCSVから宛名書きを行った話です。Pillowを使っています。 http://startpython.connpass.com/event/25269/ のLTです。
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 30
2
/ 30
3
/ 30
4
/ 30
5
/ 30
6
/ 30
7
/ 30
8
/ 30
9
/ 30
Most read
10
/ 30
11
/ 30
Most read
12
/ 30
13
/ 30
14
/ 30
15
/ 30
16
/ 30
17
/ 30
Most read
18
/ 30
19
/ 30
20
/ 30
21
/ 30
22
/ 30
23
/ 30
24
/ 30
25
/ 30
26
/ 30
27
/ 30
28
/ 30
29
/ 30
30
/ 30
More Related Content
PDF
pythonでemlファイルを扱う話
by
Satoshi Yamada
PDF
Pythonで業務改善をしたときにあった問題(ライト版)
by
Satoshi Yamada
PDF
bottle.pyをつかったチャットアプリ作成チュートリアル
by
Satoshi Yamada
PDF
bottleで始めるWEBアプリの最初の一歩
by
Satoshi Yamada
PDF
PostgreSQLとPythonとSQL
by
Satoshi Yamada
PDF
Requestsで始める5分前帰社
by
Satoshi Yamada
PDF
Тема 1. Сутність і значення бухгалтерського обліку як основи підприємницької ...
by
CDN_IF
PDF
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
by
Satoshi Yamada
pythonでemlファイルを扱う話
by
Satoshi Yamada
Pythonで業務改善をしたときにあった問題(ライト版)
by
Satoshi Yamada
bottle.pyをつかったチャットアプリ作成チュートリアル
by
Satoshi Yamada
bottleで始めるWEBアプリの最初の一歩
by
Satoshi Yamada
PostgreSQLとPythonとSQL
by
Satoshi Yamada
Requestsで始める5分前帰社
by
Satoshi Yamada
Тема 1. Сутність і значення бухгалтерського обліку як основи підприємницької ...
by
CDN_IF
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
by
Satoshi Yamada
More from Satoshi Yamada
PDF
DBエンジニアに必要だったPythonのスキル
by
Satoshi Yamada
PDF
10080分でPythonからIP Messeneger
by
Satoshi Yamada
PDF
Djangoで業務改善したい
by
Satoshi Yamada
PDF
15分で情シスに怒られる方法
by
Satoshi Yamada
PDF
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
by
Satoshi Yamada
PDF
PostgreSQL実行計画入門@関西PostgreSQL勉強会
by
Satoshi Yamada
PDF
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
by
Satoshi Yamada
PDF
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
by
Satoshi Yamada
DBエンジニアに必要だったPythonのスキル
by
Satoshi Yamada
10080分でPythonからIP Messeneger
by
Satoshi Yamada
Djangoで業務改善したい
by
Satoshi Yamada
15分で情シスに怒られる方法
by
Satoshi Yamada
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
by
Satoshi Yamada
PostgreSQL実行計画入門@関西PostgreSQL勉強会
by
Satoshi Yamada
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
by
Satoshi Yamada
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
by
Satoshi Yamada
Recently uploaded
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
本気でPythonで宛名書きした話
1.
1 本気でPythonで 宛名書きした話 山田 聡@denzowill #stapy 2016/3/8
2.
2 WHO ARE YOU ●
DBエンジニア@株式会社アシスト ● ノンプログラマ ● 開発業務未経験 ● Python触って2年(3年?)くらい ● LT専門
3.
3 こんな話してました
4.
4 前回は本チャンでpsycopg2の話をさせていただきました 会社のBlogにももうちょっと細かい話で投稿しました http://www.ashisuto.co.jp/db_blog/article/20160308_postgresql_with_python.html
5.
5 タダの宣伝でした。
6.
6 本題
7.
7 こういうデータを
8.
8 こうしたかった
9.
9 Pythonで宛名書き ● CSVを読んで ● ディクショナリのリストにして ●
Pillowで書き出す!
10.
10 https://pillow.readthedocs.org/en/3.1.x/ Pillow
11.
11 Pillow ● PILというPython画像ライブラリのFork ● こっちのほうが継続メンテされてる ●
PILと互換性あるので同じメソッドで動く ● 今回の主役
12.
12 流れ CSVをデータに はがきサイズの 白いキャンパス作成 住所書いて 書きこみ位置をry 名前書いて 書きこみ位置をry 連名があれば それも書く 画像を保存 郵便番号書いて 書きこみ位置をずらす
13.
13 実は同じ内容で前回LTしました
14.
14 実は同じ内容で前回LTしました が コードをちゃんと書き直しました https://github.com/denzow/print_label
15.
15 実は同じ内容で前回LTしました が コードをちゃんと書き直しました https://github.com/denzow/print_label 縦書きもあるといいねって いわれたから!
16.
16 Pillowで文字を書くには ● フォントファイル指定 ● 書き込みの基準位置(x,y)を指定 ●
draw.textで書き出す
17.
17 Pillowで文字を書くには ● フォントファイル指定 ● 書き込みの基準位置(x,y)を指定 ●
draw.textで書き出す ● 書き出しは横書きで
18.
18 縦書きするには ● 1文字ずつ区切る(2系ならunicode) ● 書き出し毎にサイズを確認する ●
サイズ分だけ書き出し位置をずらす
19.
19 img = PIL.Image.new("RGB",
VERTICAL_CANVAS_SIZE, (0xff, 0xff, 0xff)) draw = PIL.ImageDraw.Draw(img) write_posit = [0, 0] for character in u"東京都千代田区九段北9-9-9 市ヶ谷どっかビル": txt_size = list(draw.font.getsize(character)) draw.text(write_posit, character, (0, 0, 0)) # 書いた分だけY軸をずらす write_posit[1] += txt_size[1] 縦書きするには
20.
20 あ。。。
21.
21 img = PIL.Image.new("RGB",
VERTICAL_CANVAS_SIZE, (0xff, 0xff, 0xff)) draw = PIL.ImageDraw.Draw(img) write_posit = [0, 0] for character in u"東京都千代田区九段北9-9-9 市ヶ谷どっかビル".replace(u"-",u"|"): txt_size = list(draw.font.getsize(character)) draw.text(write_posit, character, (0, 0, 0)) # 書いた分だけY軸をずらす write_posit[1] += txt_size[1] 横棒を縦棒に
22.
22 半角文字がずれて 気持ち悪い
23.
23 img = PIL.Image.new("RGB",
VERTICAL_CANVAS_SIZE, (0xff, 0xff, 0xff)) draw = PIL.ImageDraw.Draw(img) write_posit = [0, 0] # マルチバイト文字のフォント幅を取得 one_char_width = self.draw.font.getsize(u" ")[0] for character in u"山田 聡": txt_size = list(draw.font.getsize(character)) if one_char_width > txt_size[0]: # 差分の半分だけX軸ずらせばセンタリングになる tmp_write_posit = write_posit[:] tmp_write_posit[0] += (one_char_width - txt_size[0]) / 2 draw.text(tmp_write_posit, character, (0, 0, 0)) else: draw.text(write_posit, character, (0, 0, 0)) # 書いた分だけY軸をずらす write_posit[1] += txt_size[1] 半角文字のセンタリング
24.
24 北 1 10 北 1 55
25.
25 満足
26.
26 こういうことをいろいろして ./print_label.py data/sample.csv /tmp
vertical
27.
27 こういうデータが
28.
28 こうなった(実在の人物とは関係有りません)
29.
29 こうなった(実在の人物とは関係有りません)
30.
30 ご清聴ありがとうございました
Download