PythonでPDFの上に文字とか乗っけるアプリを作った！-２.機能説明-

# 画面レイアウト

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249830/489708e3-77bf-711e-2b90-049b194d1c2a.png)

# 機能解説

【重要】
基本的に同一フォルダにて作業を行います。アクセス権限があるフォルダで作業を行ってください。

### ファイル操作
###### 1.PDFを開く
　ファイル選択ダイアログで、テンプレートとなるPDFファイルを選択してください。
###### 2.PDF出力
　ファイル保存ダイアログで、出力先を指定します。
　保存後、自動的に出力したPDFファイルを開きます。
###### 3.入力読込
　4で作成した図形情報(csv)を読み込みます。
　その場合、PDF名と同じファイルにしてください。
　PDF名）ゼロワンスクール入会書_サンプル.**pdf**
　CSV名）ゼロワンスクール入会書_サンプル.**csv**
###### 4.入力保存
　7で作成した図形情報をcsvへ保存します。
　特にダイアログ等は発生しません。同一フォルダへ作成されます。
　CSV名）ゼロワンスクール入会書_サンプル.csv
###### 5.クリア
　読み込んだ情報や、図形情報をクリアします。

### ページ切り替え
###### 6-1.prev
　前のページヘ遷移します。　
###### 6-2.next
　次のページヘ遷移します。　

### 図形描画
ボタンを押すと、描画モードが固定され、canvasへ描画出来ます。
もう一度ボタンを押すと、描画モードが解除されます。
描画したオブジェクトの座標は、5ピクセル以下は切り捨てられます。


###### 7-1.四角
　四角をcanvas上に描画できます。
　(9-1)描画色の設定が適用されます。
###### 7-2.線
　線をcanvas上に描画できます。
　(9-1)描画色の設定が適用されます。
###### 7-3.円
　四角をcanvas上に描画できます。
　(9-1)描画色の設定が適用されます。
###### 7-4.文字
　文字をcanvas上に描画できます。
　(9-1)描画色の設定が適用されます。
　(9-2)フォントサイズの設定が適用されます。
　(9-3)PDF出力時に、フォントサイズ補正の設定が適用されます。

###### 8.一つ戻す
　描画モードの一番最後の図形を削除します。

### 図形情報
###### 9-1.描画色
　Pythonで使用できる色を入力してください。
　例）blue,red,yellow など
###### 9-2.フォントサイズ
　入力するフォントサイズが変わります。
###### 9-3.フォントサイズ補正
　全体的なフォントサイズが補正されます。
　canvas上のフォントサイズとPDF描画時にフォントサイズのズレを補正します。
　PDF上でのフォントの大きさが異なる場合に使用してください。


### 一括処理
###### 10.バッチ処理csv
　入力読込→PDF出力を、csv分一括で実施します。
　全て読込PDFファイルと同じディレクトリで行います。
　同様に、PDF名と同じファイルにしてください。
　CSV名）ゼロワンスクール入会書_サンプル%(ここに任意の情報)%.csv

例）
　CSV名）ゼロワンスクール入会書_サンプル_M001.csv
　CSV名）ゼロワンスクール入会書_サンプル_M002.csv
　CSV名）ゼロワンスクール入会書_サンプル_M003.csv
　CSV名）ゼロワンスクール入会書_サンプル_M004.csv
　**（一括処理）**　↓ 
　PDF名）ゼロワンスクール入会書_サンプル_M001.pdf
　PDF名）ゼロワンスクール入会書_サンプル_M002.pdf
　PDF名）ゼロワンスクール入会書_サンプル_M003.pdf
　PDF名）ゼロワンスクール入会書_サンプル_M004.pdf　

### その他
###### 11.終了
　プログラムを終了します
###### 12.ヘルプ
　このページヘ遷移します。
###### 13.canvas
　読み込んだPDF、図形情報を描画します。

# 基本的な使い方（初回）
 1.PDFを開く
　↓
 7-4.文字
　↓
 4.入力保存
　↓
 2.PDF出力

# 基本的な使い方（２回目以降）
 1.PDFを開く
　↓
 3.入力読込
　↓　↑
（画面上微調整、またはcsvデータを編集）
　↓
 4.入力保存
　↓
 2.PDF出力

# 業務的な使い方
 1.PDFを開く
　↓
 7-4.文字
　↓
 4.入力保存
　↓
（csvデータを複数作成 ※ネーミングルールあり）
　↓
10.バッチ処理csv

# CSVレイアウト
CSVとは、カンマ区切りでデータが出来ているファイルです。
次の情報を含めたcsvファイルを使用してください。
・UTF-8
・BOM付き
・ダブルコーテーション無し

1行目は、ヘッダ行となります。
読み込み時に1行目はSkipします。
2行目から必要なデータを入力します。

| 列数 | ヘッダ名 | 説明 | データ例 |
|:-----------|:------------|:------------|:------------|
|1|page|ページ番号|1|
|2|obj|図形情報|Line,Rect,Arc,Text|
|3|x1|左上のx座標|50|
|4|y1|左上のy座標|50|
|5|x2|右下のx座標|200|
|6|y2|右下のy座標|100|
|7|text|文字列|ゼロワンスクール太郎|
|8|fsize|フォントサイズ|15|
|9|color|図形の色|black|
|10|font_core|フォント補正|2|

```csv:ゼロワンスクール入会書_サンプル.csv
page,obj,x1,y1,x2,y2,text,fsize,color,font_core
1,Text,190.0,170.0,235.0,185.0,2022,12,black,2
1,Text,260.0,170.0,280.0,185.0,06,12,black,2
1,Text,310.0,170.0,330.0,190.0,13,12,black,2
1,Text,170.0,225.0,405.0,245.0,署名　太郎,12,black,2
1,Text,170.0,195.0,265.0,215.0,ショメイ　タロウ,12,black,2
1,Text,175.0,260.0,440.0,285.0,東京都台東区谷中１－２－３－４－５,12,black,2
1,Text,175.0,300.0,415.0,320.0,1234-4567-8910,12,black,2
1,Text,175.0,335.0,620.0,355.0,shomei_taro@shomei_shomei.mo.jp,12,black,2
1,Text,175.0,445.0,430.0,465.0,署名　二郎,12,black,2
1,Text,175.0,420.0,355.0,435.0,ショメイ　ジロウ,12,black,2
1,Text,175.0,505.0,465.0,530.0,署名第９小学校,12,black,2
1,Text,175.0,485.0,340.0,500.0,ショメイダイキューショウガッコウ,12,black,2
1,Text,180.0,545.0,230.0,565.0,2012,12,black,2
1,Text,260.0,545.0,280.0,560.0,09,12,black,2
1,Text,310.0,545.0,330.0,565.0,12,12,black,2
2,Text,495.0,850.0,535.0,865.0,2022,12,black,2
2,Text,565.0,850.0,585.0,865.0,06,12,black,2
2,Text,610.0,850.0,630.0,865.0,13,12,black,2
2,Text,495.0,885.0,630.0,905.0,署名　太郎,12,black,2
1,Line,475.0,625.0,475.0,650.0,,,black,
1,Line,475.0,650.0,535.0,650.0,,,black,
1,Line,505.0,625.0,595.0,625.0,,,black,
1,Line,475.0,715.0,475.0,740.0,,,black,
1,Line,475.0,740.0,595.0,740.0,,,black,
1,Line,600.0,620.0,600.0,710.0,,,black,
1,Line,600.0,705.0,510.0,705.0,,,black,
1,Line,510.0,705.0,510.0,680.0,,,black,
1,Line,510.0,675.0,475.0,675.0,,,black,
1,Line,565.0,645.0,565.0,680.0,,,black,
1,Line,565.0,680.0,540.0,680.0,,,black,
1,Rect,480.0,810.0,575.0,905.0,,,black,
1,Arc,495.0,540.0,530.0,565.0,,,black,
```

※フォントサイズ補正は、初回に読み込んだTextレコードから取得します。

# ソースコード、ダウンロードはGitから

【重要】
画面ディスプレイの解像度をフルHD（1920x1080）を想定して作成しております。

ここからダウンロードできますが、環境設定が必要となります。
https://github.com/kinjoarata/PDFEditor2/tree/main/PDFEditor2


# 関連記事（全４個）

PythonでPDFの上に文字とか乗っけるアプリを作った！-１.はじめに、成果物紹介-
https://qiita.com/ArataKinjo/items/1e83810623ee15259b0a

PythonでPDFの上に文字とか乗っけるアプリを作った！-２.機能説明-
（この記事です）

PythonでPDFの上に文字とか乗っけるアプリを作った！-３.ソースコード解説-
https://qiita.com/ArataKinjo/items/c92b4637c44f2bf574e3

PythonでPDFの上に文字とか乗っけるアプリを作った！-４.今後について-
https://qiita.com/ArataKinjo/items/c71492569bd9bb76d092