0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

QRコード生成

Posted at

はじめに

初学者がPythonなど勉強しています。

目的

(共通)働く環境を改善しましょう。人とAIの仕事の切り分けを推進したい。
(今回)powerappsで読み込むためのQRコード生成

マイルストーン

  1. 目的の確認
  2. 現場意向確認
  3. AIよコードを生成しておくれ!
  4. 付加価値
  5. HAPPY!!

目的

現状手作業の部分をタブレットでデータ収集+分析への第一歩
QRコードで読み取ることでできるかぎり間違いを無くす。

コード

chatGPTを少しでも効率よく活用できるようなプロンプトを勉強する。
OUTPUT重視

今回はエクセルファイルから抽出したいため、エクセルファイルから活用
作成時間は30min

DataDL.py
 
import os
import math
import openpyxl
from PIL import Image, ImageFont, ImageDraw

def print_qr_codes(excel_file, sheet_name, qr_directory):

    # メイリオフォントのパス
    font_path = "C:/Windows/Fonts/meiryo.ttc"

    # エクセルファイルを読み込み
    workbook = openpyxl.load_workbook(excel_file)
    sheet = workbook[sheet_name]

    # QRコード画像のファイルリストを取得
    qr_files = [file for file in os.listdir(qr_directory) if file.endswith('.png')]

    # QRコード画像の数を取得
    num_qr_codes = len(qr_files)

    # 1ページに印刷するQRコードの数
    codes_per_page = 3 * 8

    # A4用紙のサイズ
    page_width = 2480  # ピクセル単位
    page_height = 3508  # ピクセル単位

    # 1つのQRコードの幅と高さ
    qr_width = page_width // 3
    qr_height = page_height // 8

    # 印刷するQRコード画像の座標
    x = 0
    y = 0

    # メイリオフォントを指定
    title_font = ImageFont.truetype(font_path, 32)

    # 新しいページのイメージを作成
    page_image = Image.new('RGB', (page_width, page_height), 'white')
    draw = ImageDraw.Draw(page_image)

    # QRコードを1つずつ配置していく
    for i in range(num_qr_codes):
        qr_code_file = qr_files[i]

        qr_code_path = os.path.join(qr_directory, qr_code_file)

        # QRコード画像を開く
        qr_code_image = Image.open(qr_code_path)

        # QRコード画像を指定の位置に貼り付け
        page_image.paste(qr_code_image, (x, y))

        # エクセルのC列のデータを取得
        data = sheet.cell(row=i+2, column=3).value

        # データが文字列でない場合は文字列に変換
        if not isinstance(data, str):
            data = str(data)

        # ページにタイトルを追加
        try:
            draw.text((x, y), data, font=title_font, fill='black')
        except TypeError:
            print("データを印刷します:", data)

        # QRコードの位置を更新
        x += qr_width
        if x >= page_width:
            x = 0
            y += qr_height

    # ページを保存
    page_image.save("printed_page.png")
    print("ページが保存されました。")

if __name__ == "__main__":
    # エクセルファイルのパス
    excel_file = 'data.xlsx'

    # 使用するシート名
    sheet_name = 'Sheet1'

    # QRコードの保存先ディレクトリ
    qr_directory = 'QRディレクトリ'

    # QRコードを印刷する関数を呼び出す
    print_qr_codes(excel_file, sheet_name, qr_directory)

付加価値

QRを活用することで、
デバイス管理用やマニュアル、各種ムービー/情報に展開させる。
わからなくてもQRですぐフォローできるような状況にしておこう。

HAPPY!!!

ここまで読んでいただきありがとうございました。
OUTPUT継続していきましょう。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?