Утилита для сканирования стопок двусторонних документов

Утилита для сканирования стопок двусторонних документов

У меня есть симплексный сканер с податчиком документов, и я ищу лучший способ сканирования двусторонних заметок. Было бы полезно иметь возможность сканировать одну и ту же стопку дважды, после переворота, и иметь утилиту, которая автоматически чередует отсканированные изображения. Экспорт многостраничных PDF-файлов также был бы хорош. Есть ли инструмент для этого?

В противном случае я рассматриваю возможность написания на Python с модулем imagescanner, если он сможет использовать ADF --http://pypi.python.org/pypi/imagescanner/0.9

Спасибо

решение1

Старый вопрос, все еще актуальный:

Использовать"простое сканирование". Он имеет функцию "переупорядочить страницы". Я нашел эту подсказкуздесь.

решение2

Отсканируйте документ как PDF с упорядоченными страницами, как они были отсканированы, т.е. сначала все нечетные страницы, затем все четные. Затем исправьте это с помощью:

pdftk raw.pdf cat odd even output ordered.pdf

Смотрите такжеОбъединить два PDF-файла, содержащих четные и нечетные страницы книги.

решение3

На сканере с устройством автоматической подачи документов (АПД) я делаю следующее:

  1. Сканировать нечетные страницы с первой по последнюю, сохранить как первый файл PDF
  2. Переверните стопку страниц и отсканируйте четные страницы с последней по вторую, сохраните как второй файл PDF.
  3. Объедините оба файла с помощью небольшого скрипта PowerShell, который использует библиотеку PDFSharp (двоичные файлы необходимо скопировать рядом со скриптом 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, чтобы получить четные страницы в обратном порядке.

Связанный контент