将许多页面直接扫描为PDF
在Ubuntu中是否有一些易于使用的程序可以将许多页面直接扫描成PDF文件?
简单扫描实用程序的想法是开发简单扫描的背后 – 默认情况下从10.04开始安装的扫描工具(应用程序‣图形‣简单扫描)。
只需扫描任意数量的页面,并在保存时选择PDF作为文件格式。
另一个稍微不那么简单的程序,它提供了文本识别等附加function,也就是存储库中的gscan2pdf 。
“易于使用”是用户的眼睛,但xsane
提供此function。 选择表示查看器的多页(或按CTRL-M),从那里算出来应该不难。
我正在使用xsane
直到我看到这个问题,并认为它的界面特殊,至少可以说,但有效。
看到这个问题后,我去寻找并发现gscan2pdf存在于Ubuntu Lucid / Maverick存储库中。 它使用相同的扫描(libsane)引擎,但UI更像是Gnome-ish。 好好玩,试试:
sudo apt-get install gscan2pdf
在 Simple Scan的保存对话框中将文件名从myfile.jpg更改为myfile.pdf 。
在Ubuntu 14.04,Simple Scan 3.12.1上测试。
即使文件类型下拉列表不显示“PDF”,也只显示“图像”,这仍然有效。 我认为这是一个UI错误。
“ Help > Contents
记录了此function:
从“另存为”对话框中,选择一种受支持的文件类型,或者只需在“名称”字段中更改扩展名。
它表示支持以下格式:
- JPEG
- PNG
- TIFF
有趣的事实:如果您将扫描类型(“扫描”旁边的下拉列表)更改为“文本”,则默认文件类型将变为PDF。
从USB扫描仪扫描页面。 使用tesseract将OCR转换为PDF。 将多个页面合并为一个PDF。 用法:scan2PDF outputfilename number_of_pages
#!/bin/bash #scan2PDF #Requires: tesseract 3.03 for OCR to PDF # scanimage for scanning, I use 1.0.24 # pdfunite to merge multiple PDF into one, I use 0.26.5 # # Use scanimage -L to get a list of devices. # eg device `genesys:libusb:006:003' is a Canon LiDE 210 flatbed scanner # then copy/paste genesys:libusb:006:003 into SCANNER below. # play with CONTRAST to get good images DPI=300 TESS_LANG=nor #Language that Tesseract uses for OCR SCANNER=genesys:libusb:006:003 #My USB scanner CONTRAST=35 #Contrast to remove paper look FILENAME=$1 #Agrument 1,filename PAGES=$2 #Argument 2, number of pages re='^[0-9]+$' #Check if second argument is a number if ! [[ ${PAGES} =~ $re ]] ; then echo "error: Usage: $0 filename number_of_pages" >&2; exit 1 fi SCRIPT_NAME=`basename "$0" .sh` #Directory to store temporary files TMP_DIR=${SCRIPT_NAME}-tmp if [ -d ${TMP_DIR} ] #Check if it exists a directory already then echo Error: The directory ${TMP_DIR} exists. exit 2 fi mkdir ${TMP_DIR} #Make and go to temp dir cd ${TMP_DIR} echo Starts Scanimage... scanimage -d ${SCANNER} --format=tiff --mode Color --resolution ${DPI} -p --contrast ${CONTRAST} --batch-start=1 --batch-count=${PAGES} --batch-prompt echo Starts Tesseract OCR for file in *.tif #Goes through every tif file in temp dir do tesseract $file ${file%.tif} -l ${TESS_LANG} pdf done if [ "$PAGES" = "1" ] #How many pages then cp out1.pdf ../${FILENAME}.pdf #Only one page, just copy the PDF back else for file in *.pdf #More pages, merge the pages into one PDF and copy back do pdfuniteargs+=${file} pdfuniteargs+=" " done pdfunite $pdfuniteargs ../${FILENAME}.pdf fi echo ${FILENAME}.pdf done rm * #Done, clean up cd .. rmdir ${TMP_DIR}