#author("2016-04-16T14:24:01+09:00","","")
#author("2017-10-04T08:20:55+00:00","","")
[[Computer/PDF]]

*memo [#zb45f0a8]

Canoscan 3000F で A4 の書類をコピーしたものを加工して、有用なPDFファイルを作成します。

+1ページずつスキャンする
+crop する
+ページを結合する
+必要に応じてページを回転する
+PDF のデータを編集する
+Adobe Reader で確認する

Canoscan 3000F は Windows のみの対応ですが、他の作業は Windows ではそれほど簡単ではないので、Linux や Mac OS X を使います。次のものを使います。

-比較的新しい LaTeX のシステム
-pdftk
-PDF のページの回転などができるアプリケーション(Mac OS X のプレビュー.app、Combine PDFs など)
-cat, sed などのコマンドと、シェルスクリプトの使える環境

**1, 1ページずつスキャンする [#v41fc0dd]

+「設定」で、スキャナのボタンを押すと自動的に「保存」が実行されるようにしておくと簡単でしょう。
+まず、ダミーのPDFファイルを作成します。CanoScan Toolbox から「保存」を実行します。ファイル名は「Save」、ファイルの種類は「PDF」にしておき、スキャンを実行します。
+次に、本物のデータをスキャンします。CanoScan Toolbox から「保存」を実行し、ファイル名は「Save」のままにし、スキャンを実行します。すると、作成されるファイル名が「Save0001.PDF」のようになり、あとの作業が楽です。

**2, crop する [#xde5f428]

上下左右に黒い帯が入ることがあるので、LaTeX を使って crop します。黒い帯が入ってもよいならば、この手順は省略することができます。

***a, LaTeX テンプレートの作成 [#n03fd16d]

次のような Canoscan3000F.tex ファイルを作成します。

 \documentclass[a4paper]{jsarticle}
 \usepackage[dvipdfm]{graphicx}
 
 \setlength{\hoffset}{-1in}
 \setlength{\voffset}{-1in}
 \setlength{\oddsidemargin}{0pt}
 \setlength{\topmargin}{0pt}
 \setlength{\headheight}{0pt}
 \setlength{\headsep}{0pt}
 \setlength{\textheight}{845pt}
 \setlength{\textwidth}{597pt}
 \setlength{\marginparsep}{0pt}
 \setlength{\marginparwidth}{0pt}
 \setlength{\footskip}{0pt}
 \setlength{\marginparpush}{0pt}
 \setlength{\paperwidth}{597pt}
 \setlength{\paperheight}{845pt}
 
 \begin{document}
 
 \begin{center}
  \includegraphics[width=587pt,bb=15 50 597 845,clip]{Save0000.PDF}
 %\includegraphics[width=210mm,bb=x1 y1 x2 y2]{Save0000.pdf}
 \end{center}
 
 \end{document}

includegraphics の行は、黒い帯の状況によって書き換えてください。x1, y1, x2, y2 は、版面左下を0, 0にした場合の座標です。

***b, シェルスクリプトの作成 [#m1c856fd]

ページ数が9ページまでなら次の Canoscan3000F01.sh を作成します。

 #***/bin/sh
 
 i=1
 
 while [ $i -le 9 ]
 do
   cat Canoscan3000F.tex > sed s/Save0000/Save000$i/g >page0$i.tex
   platex page0$i && dvipdfmx page0$i
   i=`expr $i + 1`
 done

***c, シェルスクリプトの実行 [#u2515cc3]

 $ sh ./Canoscan3000F01.sh

**3, ページを結合する [#x3db44ed]

上のシェルスクリプトに含めてしまうのが簡単です。

 $ pdftk page0?.pdf cat output output.pdf

**4, 必要に応じてページを回転する [#c3daf0f6]

見開きで A4 になるようなページをスキャンした場合は、ここでページを回転しておきます。

**5, PDF のデータを編集する [#c2ffdafa]

次のような info.txt を作成しておきます。日本語は数文字参照にしなければなりません。

 InfoKey: Title
 InfoValue: Book Title
 InfoKey: Author
 InfoValue: Author of the book
 InfoKey: Subject
 InfoValue: Subject of the book
 InfoKey: Keywords
 InfoValue: Scanned by MATSUURA Takashi
 InfoKey: Creator
 InfoValue: Canoscan 3000F (300dpi)
 InfoKey: Producer
 InfoValue: LaTeX, dvipdfmx, and pdftk

次のコマンドを実行します。

 $ pdftk output.pdf update_info info.txt output output2.pdf

次のようなシェルスクリプトを作っておくと簡単でしょう(update_info.sh)。

 #***/bin/sh
 #!/bin/sh
 
 pdftk output.pdf update_info info.txt output $1

このシェルスクリプトは次のように使います。

 $ sh ./update_info.sh output2.pdf

**6, Adobe Reader で確認する [#ae237432]

Adobe  Reader でページの順序、PDF の情報などを確認します。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS