用于扫描大量双面文档的实用程序

用于扫描大量双面文档的实用程序

我有一台带文档进纸器的单面扫描仪,正在寻找扫描双面纸条的最佳方法。如果能够扫描同一叠纸两次(翻转一次),并让实用程序自动交错扫描的图像,那将非常有用。多页 PDF 导出也不错。有工具可以做到这一点吗?

否则,我正在考虑用 Python 编写它,使用 imagescanner 模块,如果它可以使用 ADF——http://pypi.python.org/pypi/图像扫描器/0.9

谢谢

答案1

老问题,但仍然相关:

使用“简单扫描”。它有一个“重新排序页面”功能。我发现了这个提示这里

答案2

将文档扫描为 PDF,页面顺序与扫描时相同,即首先扫描所有奇数页,然后扫描所有偶数页。然后使用以下命令修复此问题:

pdftk raw.pdf cat odd even output ordered.pdf

也可以看看合并两个包含一本书的偶数页和奇数页的 PDF 文件

答案3

我在带有自动进纸器(ADF)的扫描仪上执行以下操作:

  1. 从第一页到最后一页扫描奇数页,存储为第一个 pdf 文件
  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,将增量设置为 -2,以反向顺序获取偶数页。

相关内容