複数のpdfにheaderをつける. txt等からpdfを作成する. pandoc, pdftk, shellscrpit

# 環境
mac osx 10.11 el capitan
pandoc 1.17.0.3 < Compiled with texmath 0.8.6.3, highlighting-kate 0.6.2.
pdftk2.02

# git
https://github.com/KeitaSumiya/shellscript/tree/master/add_filename_header_pdf

# はじめに
複数のpdfにheaderをつけます. terminalで全部やります. 
大まかな手順は

- (pdf以外であれば目的のファイルをpdf化する)
- header用のpdfを作成する
- 目的pdfの上にheader-pdfをstampする
- stampしたpdf達をmergeする

です. 
shellscriptで実行します. 

事前にinstallする必要があるのは

- pandoc (header-pdfの作成) > brew install pandoc
- tex (header-pdfの作成, pandoc内で使用) > tex live
- pdftk > brewとか

です. 

# pandoc
## 参考
install
http://pandoc.org/installing.html
manual
http://pandoc.org/MANUAL.html
demos
http://pandoc.org/demos.html
日本語 使い方 参考
http://qiita.com/sky_y/items/80bcd0f353ef5b8980ee
docx, md
http://www.mscharhag.com/software-development/pandoc-markdown-to-pdf

## commands
txt2pdfの例だけど, md2pdfとかでもたぶん大体同じ. 

```
基本
pandoc input.txt -o output.pdf

日本語文書
pandoc input.txt -o output.pdf -V documentclass=ltjarticle --latex-engine=lualatex

フォントを変える(ヒラギノとかの指定方法はわからなかったけど, fontbookの中の英語フォントは大体いけた)
pandoc input.txt -o output.pdf -V mainfont="Phosphate"

フォントサイズを変える(12pt以外うまくいかなかったけど, たぶんそれはtex側の問題)
pandoc input.txt -o output.pdf -V fontsize=12pt

複数の設定を実行する
pandoc input.txt -o output.pdf -V mainfont="Phosphate" -V fontsize=12pt

marginを変える(左右上下すべてを0mmに設定する)
pandoc input.txt -o output.pdf -V geometry:margin=0mm

marginを変える(左右上下を個別に設定する)
pandoc input.txt -o output.pdf margin-left=0mm -V margin-top=-2mm -V margin-bottom=0mm

用紙のサイズを変える
pandoc input.txt -o output.pdf -V papersize:a4
以下のようにlatexのengineを変更しないと反映されないかも?
pandoc input.txt -o output.pdf --latex-engine=lualatex -V papersize:a4
```

# pdftk
## 参考
以前の自分の記事:

pdftk on OSX10.11(El capitan)
http://qiita.com/keitasumiya/items/83756caf2865291707fb
moodleからフッター付のまとめpdfを作成
http://qiita.com/keitasumiya/items/7975b068f22ddb7ddb82

# pandoc
## commands

```
merge
$ pdftk input1.pdf input2.pdf output output.pdf

merge all
$ pdftk *.pdf output output.pdf

stamp
$ pdftk input.pdf stamp header.pdf output output.pdf

background
$ pdftk input.pdf background header.pdf output output.pdf
```

# 本題
ファイル名のヘッダーを付ける. 

```環境.
$ tree
.
└── pdf
    ├── ab9999_YamadaTaro.pdf
    ├── ef9990_山本三郎.pdf
    └── hg9980_SatoJiro.pdf
```


## commands

```
mkdir txt
mkdir txt_pdf
mkdir output_pdf

cd pdf
ls | sed 's/\./_/g' | awk -F'_| ' '{print "echo",$1"_"$2,">",$1".txt"}' | sh
ls | grep .txt | awk '{print "mv",$0,"../txt"}' | sh

cd ../txt
ls | sed 's/\./_/g' | awk -F'_| ' '{print "pandoc",$1".txt -o",$1".pdf -V documentclass=ltjarticle --latex-engine=lualatex -V geometry:margin=0mm -V fontsize=12pt -V papersize:a4"}' | sh
ls | grep .pdf | awk '{print "mv",$0,"../txt_pdf"}' | sh

cd ../pdf
ls | awk -F'_| ' '{print "pdftk",$0,"stamp ../txt_pdf/"$1".pdf","output ../output_pdf/"$1".pdf"}' | sh

cd ../output_pdf
pdftk *.pdf output ../output.pdf
```

# results

```結果tree.
$ tree
.
├── output.pdf
├── output_pdf
│   ├── ab9999.pdf
│   ├── ef9990.pdf
│   └── hg9980.pdf
├── pdf
│   ├── ab9999_YamadaTaro.pdf
│   ├── ef9990_山本三郎.pdf
│   └── hg9980_SatoJiro.pdf
├── txt
│   ├── ab9999.txt
│   ├── ef9990.txt
│   └── hg9980.txt
└── txt_pdf
    ├── ab9999.pdf
    ├── ef9990.pdf
    └── hg9980.pdf
```

![スクリーンショット 2017-05-22 13.11.06.png](https://qiita-image-store.s3.amazonaws.com/0/102253/bc33c458-7eb3-569d-20bc-588a86d76c18.png)
![スクリーンショット 2017-05-22 13.11.17.png](https://qiita-image-store.s3.amazonaws.com/0/102253/aed3ba5d-461e-9697-0ffb-f3b2e2050d00.png)


pandocの処理が遅いですが, 一応実行できます.