[[SystemHelp/PDF]]
#author("2017-10-04T08:19:26+00:00","","")
[[Computer/PDF]]

*スキャンした PDF ファイルの加工 [#g3453dd6]

ここでは例として、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ページずつスキャンする [#h196923d]

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

**2, crop する [#v594a4a0]

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

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

次のような 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, シェルスクリプトの作成 [#q4d8e948]

ページ数が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, シェルスクリプトの実行 [#j01db456]

 $ sh ./Canoscan3000F01.sh

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

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

 $ pdftk page0?.pdf cat output output.pdf

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

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

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

次のような 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
 
 pdftk output.pdf update_info info.txt output $1

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

 $ sh ./update_info.sh output2.pdf

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

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


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