ドキュメント フィーダー付きの片面スキャナを持っていて、両面のノートをスキャンする最適な方法を探しています。同じ束を 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
答え3
自動ドキュメントフィーダー (ADF) を備えたスキャナーで次の操作を実行します。
- 1ページ目から最後のページまで奇数ページをスキャンし、最初のPDFファイルとして保存します
- ページの束を裏返し、最後から2番目のページまで偶数ページをスキャンし、2番目のPDFファイルとして保存します。
- 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 に設定して、逆の順序で偶数ページを取得します。