Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

特定フォルダ配下のPDFファイルを一括、右綴じ変換 調査編

f:id:espio999:20170917122716p:plain
いわゆる自炊した文書をスキャンニングしてPDF化した際、その文章フォーマットに関わらず、そのファイルは左綴じの文書として処理されます。見開きで表示すると、左側に奇数ページ、右側に偶数ページの順に配置されます。
日本語のような縦書き文書の場合、右綴じの文書として処理され、見開き表示では右に奇数ページ、左に偶数ページを配置してほしいところです。

単一のファイルを操作する場合、このための設定変更はファイルのプロパティを変更します。Adobe Acrobatの場合でいうと、トップ画像の赤丸の部分を操作することになる。

一度に複数のファイルについて同様の操作を施す場合、何とか効率化したいところです。ここでは次のツールを活用して、対応方法を紹介します。

VB.Net (Visual Studio 2017 Community)
iText 7

長くなるため、次のエントリーに分割して紹介します。

  1. 調査:PDFファイルの変更箇所
  2. 操作:変更操作に対応するiText 7のコード
  3. 実装1:Visual Studio 2017へのiText 7導入
  4. 実装2:Visual Studio 2017での実装

この投稿では、「調査:PDFファイルの変更箇所」を扱います。

まずPDFファイルの仕様を確かめます。確認先はPDF Referenceです。
www.adobe.com

結論から述べると、今回の操作箇所はPDF Referenceだけで対応できます。さらに拡張についても確かめたい場合には、次の文章を参照することになります。
www.adobe.com

PDFファイルのページ表示、綴じ方の設定は次の箇所を操作することになります。

PageLayout、PDF Referenceの140ページを参照。
Direction、PDF Referenceの578ページを参照。

PageLayoutは、PDFファイルを開くPDF Viewer(例えばAcrobat Reader)がどのように表示するかを定義します。見開き表示で、右側に奇数ページを配置するのであれば、PageLayoutへTwoPageRightを代入します。

Directionが、まさに今回の操作対象となる箇所です。PDFファイルが左綴じなのか、右綴じなのかを設定します。右綴じにするのであれば、DirectionへR2Lを代入します。578ページから、該当箇所を引用します。次のように述べられています。

R2L
Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean)

さらに引用すると、次のようにも述べられています。

This entry has no direct effect on the document’s contents or page numbering but can be used to determine the relative positioning of pages when displayed side by side or printed n-up. Default value: L2R.

ファイルの内容、ページの採番に影響するものではなく、あくまでも表示、あるいは用紙一枚に複数ページを印刷する際の配置に利用されるということです。
特にファイルの内容、ページの裁判に影響しないことは、Directionに限らず、PageLayoutも同様です。

私は次のように理解しました。

  • PageLayout:Viewerが表示方法を決めるための設定→文書自体の設定ではない
  • Direction:綴じ方→文書そのものの設定

DirectionにR2Lを代入する方法を特定するために、iText 7の話題に移ります。
impsbl.hatenablog.jp