Help:Converting/zh
为维基共享资源转换文档格式可能大有裨益:
- 可生成更便于获取的衍生版本;
- 每种格式各有其独特优势;
- 当需要同时在不同阅览器中打开两本及以上书籍时。
因此,收藏多种格式的电子书不失为明智之举。
Converting PDF
- 尽管维基共享资源接受PDF文档,但这类文件往往难以正常访问。
Converting PDF to DJVU
See page Converting PDF to DjVu.
Converting PDF to images
Extracting text from PDF
若PDF文件中的文本可直接提取,请选用以下方式:
- Adobe Acrobat阅读器的“另存为文本”功能
- GSview软件的“编辑”/“文本提取...”选项
- STDUViewer菜单栏的“文件”->“导出”->“转为文本”功能
- XPdf命令行工具中的pdftotext与pdftohtml程序
若PDF中的文本以图像形式存在:
- 请参照前文“将PDF转换为图像”的指引进行操作,随后按照下文“通过图像格式转文本(OCR)”的建议继续处理。
Converting DjVu
将DjVu转换为其他格式很有用,因为用户可能未安装DjVu阅读器,而其他格式可直接在浏览器中查看。
Converting DjVu to PDF
See page Help:Converting DjVu to PDF
Converting DjVu to images
使用DjVuLibre命令行工具ddjvu(DjVu解码器)或djvups(用于转换为PostScript格式)。
Extracting text from DjVu
WinDjView可以实现此功能,或者使用DjVuLibre命令行工具djvutxt。
Converting images
Converting between image formats
- 使用(个人免费)共享软件IrfanView或XnView(及其命令行工具NConvert)、jpegcrop,或免费软件ImageMagick进行高级图像处理。
处理从扫描仪获取的图像
从扫描仪获取的图像在制作成PDF或DJVU文件前通常需要经过处理:包括裁剪、旋转、分割、尺寸压缩及转换为TIFF格式等。开源应用ScanTailor-Universal正是为此设计,您可从项目的发布页面下载使用。
从图像创建PDF
- img2pdf 是一款开源命令行程序,能够无损地将图像转换为 PDF 文件。它还可设置元数据(如标题与作者信息),并指定生成的 PDF 文件在查看器中的呈现方式。
以下命令将当前文件夹中的所有文件合并成一个名为test.pdf的PDF文档,并添加标题和作者元数据:
img2pdf --title "My First PDF" --author "Jack Example" --output test.pdf *
请注意,此操作默认当前目录下不包含非图像文件或子文件夹。若所有源文件均为单一类型(例如JPEG格式),您可将输入指定为 *.jpg。您也可以分别指定多个输入文件。
查看 img2pdf --help 了解 img2pdf 的全部功能。
img2pdf可从Python Package Index获取,同时也被纳入众多Linux发行版的软件仓库中。此外,通过项目的Appveyor还提供了Windows可执行文件。
- 若已安装 GhostScript,ImageMagick 与 GraphicsMagick 亦可实现图像至 PDF 文件的转换。
以下命令将使用ImageMagick的mogrify工具将所有JPEG文件转换为单独的PDF文件,并放入名为"pdf"的子文件夹中:
mogrify -format pdf -path pdf/ *.jpg
在某些Linux发行版中,默认的ImageMagick安全策略会阻止程序处理PDF文件。具体修改安全策略的方法可参考此StackOverflow问题。
从双色图像创建PDF
双色调图像(即仅包含单一黑白色调的图像)是一种高效的扫描文档存储方式,特别适用于仅含文字或其他只需两种颜色即可清晰呈现的简单元素。高质量的双色调文本页面通常仅有几十千字节大小。
PDF文件中采用两种双色调压缩技术,即CCITT Group 4传真压缩与JBIG2压缩。后者虽效率更高,但因涉及专利争议问题,导致PDF生成软件常缺失或禁用JBIG2编码功能。不过通过自行安装编码器,有时仍可启用该功能。
现有多种工具可将图像转换为双色调压缩格式。ScanTailor-Universal 是一款处理扫描页面的开源工具,能够输出双色调图像。ImageMagick和GraphicsMagick同样可通过-threshold选项实现此功能。
以下ImageMagick命令可将文件夹中的所有.jpg文件转换为采用Group 4压缩的双色调TIF文件,并将其存入名为“bitonal”的文件夹中。
mogrify -format tif -compress Group4 -path bitonal/ -threshold 50% *.jpg
调整-threshold的数值,找到最适合您内容的理想阈值。
JBIG2转换
OCRmyPDF是一款开源命令行程序,主要功能是为扫描版PDF文件添加OCR文字识别层。其附加特性包括优化PDF文件——支持将其他双色调图像格式转换为JBIG2格式。该功能需安装jbig2enc编码器,Linux用户可查阅编译安装指南,Windows用户可获取第三方可执行文件,而通过Homebrew打包的MacOS版本已内置jbig2enc组件。
在Windows系统上安装OCRmyPDF的方法请参阅此处。许多Linux发行版的软件仓库中都包含OCRmyPDF安装包,但版本可能较旧。OCRmyPDF也可通过pip渠道获取。
以下命令使用OCRmyPDF为PDF添加OCR文本层,并优化PDF结构,使其在完全下载前即可在网页浏览器中开始显示。
ocrmypdf --output-type pdf --fast-web-view 0 test.pdf test-OCR.pdf
默认情况下,OCRmyPDF会对PDF进行无损优化,因此若已安装jbig2enc,二值图像将自动转换为JBIG2格式。
若无需对PDF进行OCR识别,可使用--tesseract-timeout 0直接跳过整个OCR流程。
更多使用示例请参阅OCRmyPDF 文档。
从图像创建DjVu
使用DjVuLibre命令行工具c44(用于彩色图像)和cjb2(用于黑白图像)将图像转换为单页DjVu文件,再通过djvm工具合并。
Example c44 command line:
c44 [options] pnm-or-jpeg-file [djvufile]
重要选项包括-slice、-dpi和-mask。-slice用于设置每个“块”(这是DjVu中的复杂术语)中的“切片”数量。输入三个数字将生成三个“块”,四个数字则生成四个块。这些数值会显著影响文件质量与大小——请通过实验并查阅官方文档进行验证。
c44 -slice -slice 74+13+10 -dpi 150 pnm-or-jpeg-file [djvufile]
来自cjb2双色调编码器不言自明的帮助说明:
Usage: cjb2 [options] <input-pbm-or-tiff> <output-djvu> Options are: -verbose Display additional messages. -dpi <n> Specify image resolution (default 300). -clean Cleanup image by removing small flyspecks. -lossy Lossy compression (implies -clean as well) -losslevel <n> Loss factor (implies -lossy, default 100) Encoding is lossless unless a lossy options is selected.
在许多情况下,-losslevel 参数即使设置为低至50也不会产生不良影响。
详情请参阅DjVuLibre文档。
Minidjvu 可将黑白单页及多页TIFF、BMP和PBM文件与DjVu格式相互转换。该工具配有简洁的图形界面,其支持多页TIFF文件的能力相比DjVuLibre系列工具更具显著优势。
minidjvu 0.8 - encode/decode bitonal DjVu files
Usage:
single page encoding/decoding:
minidjvu [options] <input file> <output file>
multiple pages encoding:
minidjvu [options] <input file> ... <output file>
Formats supported:
DjVu (single-page bitonal), PBM, Windows BMP, TIFF.
Options:
-A, --Averaging: compute "average" representatives
-a <n>, --aggression <n>: set aggression level (default 100)
-c, --clean remove small black pieces
-d <n> --dpi <n>: set resolution in dots per inch
-e, --erosion sacrifice quality to gain in size
-i, --indirect: generate an indirect multipage document
-l, --lossy: use all lossy options (-s -c -m -e -A)
-m, --match: match and substitute patterns
-n, --no-prototypes: do not search for prototypes
-p <n>, --pages-per-dict <n>: pages per dictionary (default 10)
-r, --report: report multipage coding progress
-s, --smooth: remove some badly looking pixels
将图像格式转换为文本(光学字符识别)
gImageReader
- gImageReader 是一款开源应用程序,用于从图像和基于图像的PDF文档中提取文本。它能够自动检测文本布局并对识别后的文本进行后处理,包括拼写检查和换行符删除。该软件采用Tesseract引擎进行文字识别,因此支持Tesseract兼容的所有语言。
IrfanView
Pdf X-Change Viewer
- 使用PDF-XChange Viewer的OCR功能:文档 -> OCR页面。
Tesseract引擎
- 使用免费的Tesseract开源软件(支持Linux、Mac OS X及Windows系统):
- 同时下载"tesseract"软件及与扫描文档语言/文字对应的"tessdata"语言包,将其解压至同一文件夹(Windows可执行文件无需安装)
- 获取最高分辨率的扫描件,若需提升识别效果可进一步放大图像(使用快速缩放功能,避免重采样滤镜),直至字符高度超过20像素(建议通过测试确定最佳尺寸),最后保存图像(推荐使用ImageMagick或IrfanView)
- 在命令行中执行 tesseract 图像文件 输出文件名
eScriptorium
- 使用免费的开源软件 eScriptorium 与 Kraken 搭配。服务器组件可安装在 Linux、macOS 或 Windows(通过 WSL)系统上。客户端为网络应用程序,支持所有现代网络浏览器运行。该工具能实现文本区域与行段分割,并可识别印刷体与手写文字。其分割与识别功能均支持训练优化。
谷歌具备光学字符识别功能。详见:
- https://tools.wmflabs.org/ws-google-ocr/
- https://wikisource.org/wiki/Wikisource:Google_OCR
- https://cloud.google.com/vision/docs/ocr
在所有情况下,你可能都需要分段转换。由于转换并不完美,你需要手动校正生成的文本。
转换视频
Further help
You can ask for help at the Commons:Help desk.