![用于扫描大量双面文档的实用程序](https://linux22.com/image/1330568/%E7%94%A8%E4%BA%8E%E6%89%AB%E6%8F%8F%E5%A4%A7%E9%87%8F%E5%8F%8C%E9%9D%A2%E6%96%87%E6%A1%A3%E7%9A%84%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我有一台带文档进纸器的单面扫描仪,正在寻找扫描双面纸条的最佳方法。如果能够扫描同一叠纸两次(翻转一次),并让实用程序自动交错扫描的图像,那将非常有用。多页 PDF 导出也不错。有工具可以做到这一点吗?
否则,我正在考虑用 Python 编写它,使用 imagescanner 模块,如果它可以使用 ADF——http://pypi.python.org/pypi/图像扫描器/0.9
谢谢
答案1
答案2
将文档扫描为 PDF,页面顺序与扫描时相同,即首先扫描所有奇数页,然后扫描所有偶数页。然后使用以下命令修复此问题:
pdftk raw.pdf cat odd even output ordered.pdf
答案3
我在带有自动进纸器(ADF)的扫描仪上执行以下操作:
- 从第一页到最后一页扫描奇数页,存储为第一个 pdf 文件
- 翻转一叠页面,然后从最后一页到第二页扫描,存储为第二个 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,将增量设置为 -2,以反向顺序获取偶数页。