両面文書の束をスキャンするためのユーティリティ

両面文書の束をスキャンするためのユーティリティ

ドキュメント フィーダー付きの片面スキャナを持っていて、両面のノートをスキャンする最適な方法を探しています。同じ束を 2 回スキャンし、裏返して、ユーティリティでスキャンした画像を自動的にインターリーブできれば便利です。複数ページの PDF エクスポートも便利です。これを行うツールはありますか?

そうでなければ、ADF を使用できるのであれば、imagescanner モジュールを使用して Python で記述することを検討しています。http://pypi.python.org/pypi/imagescanner/0.9

ありがとう

答え1

古い質問ですが、まだ関連性があります:

使用「シンプルスキャン」. 「ページの並べ替え」機能があります。このヒントを見つけましたここ

答え2

ドキュメントを PDF としてスキャンし、ページをスキャンした順番に並べます。つまり、最初にすべての奇数ページ、次にすべての偶数ページです。次に、次のように修正します。

pdftk raw.pdf cat odd even output ordered.pdf

参照本の偶数ページと奇数ページを含む 2 つの PDF ファイルを結合する

答え3

自動ドキュメントフィーダー (ADF) を備えたスキャナーで次の操作を実行します。

  1. 1ページ目から最後のページまで奇数ページをスキャンし、最初のPDFファイルとして保存します
  2. ページの束を裏返し、最後から2番目のページまで偶数ページをスキャンし、2番目のPDFファイルとして保存します。
  3. PDFSharp ライブラリを使用する小さな PowerShell スクリプトを使用して両方のファイルをマージします (バイナリは PowerShell スクリプトと並べてコピーする必要があります)

これが私のスクリプトです。少し荒っぽいですが、私にはうまくいきました。お役に立てれば幸いです。

# Not entirely my code, this is based on Mike Pfeiffer - http://mikepfeiffer.net/2010/03/how-to-merge-pdf-files-using-powershell-and-pdfsharp/
# Requires PDFSharp assembly libraries http://sourceforge.net/projects/pdfsharp/
# You need to load the assembly before you can use the function            
#
# Usage:
# Merge-PDF -firstPdfPath 1.pdf -secondPdfPath 2.pdf -targetPdfPath merged.pdf
[CmdletBinding()]
param 
(
    $firstPdfPath,
    $secondPdfPath,
    $targetPdfPath
)
begin {
    $scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
    Add-Type -Path .\PdfSharp.dll
}

process {
    $output = New-Object PdfSharp.Pdf.PdfDocument            
    $PdfReader = [PdfSharp.Pdf.IO.PdfReader]            
    $PdfDocumentOpenMode = [PdfSharp.Pdf.IO.PdfDocumentOpenMode]                        

    $firstPdfPath = Join-Path $PSScriptRoot $firstPdfPath
    $secondPdfPath = Join-Path $PSScriptRoot $secondPdfPath
    $targetPdfPath = Join-Path $PSScriptRoot $targetPdfPath

    $firstPdf = New-Object PdfSharp.Pdf.PdfDocument            
    $firstPdf = $PdfReader::Open($firstPdfPath, $PdfDocumentOpenMode::Import)  

    $secondPdf = New-Object PdfSharp.Pdf.PdfDocument            
    $secondPdf = $PdfReader::Open($secondPdfPath, $PdfDocumentOpenMode::Import)    
    $secondIndex = $secondPdf.Pages.Count-1

    foreach($page in $firstPdf.Pages) {
        $output.AddPage($page)
        if ($secondIndex -ge 0) {
            $output.AddPage($secondPdf.Pages[$secondIndex--])
        }
    }
    
    $output.Save($targetPdfPath)            
}

end {
}

答え4

ローテクなソリューションです。ADF 増分を +2 に設定して 1 回スキャンすると、奇数ページが取得されます。スタックを反転し、開始番号を最後の奇数ページ番号 +1 に設定し、増分を -2 に設定して、逆の順序で偶数ページを取得します。

関連情報