Help:Converting/zh

为维基共享资源转换文档格式可能大有裨益:

  • 可生成更便于获取的衍生版本;
  • 每种格式各有其独特优势;
  • 当需要同时在不同阅览器中打开两本及以上书籍时。

因此,收藏多种格式的电子书不失为明智之举。

Converting PDF

  • 尽管维基共享资源接受PDF文档,但这类文件往往难以正常访问。

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

Converting DjVu to images

使用DjVuLibre命令行工具ddjvu(DjVu解码器)或djvups(用于转换为PostScript格式)。

Extracting text from DjVu

WinDjView可以实现此功能,或者使用DjVuLibre命令行工具djvutxt。

Converting images

Converting between image formats

处理从扫描仪获取的图像

从扫描仪获取的图像在制作成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可执行文件。

以下命令将使用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

  • 使用IrfanView选项菜单中的“开始OCR”插件(OCR即光学字符识别)来提取文本。截至2010年2月20日,IrfanView的KADMOS OCR插件受限于电脑可用内存,约能处理六页文档(每10页约需1GB内存)。

Pdf X-Change Viewer

Tesseract引擎

  • 使用免费的Tesseract开源软件(支持Linux、Mac OS X及Windows系统):
  • 同时下载"tesseract"软件及与扫描文档语言/文字对应的"tessdata"语言包,将其解压至同一文件夹(Windows可执行文件无需安装)
  • 获取最高分辨率的扫描件,若需提升识别效果可进一步放大图像(使用快速缩放功能,避免重采样滤镜),直至字符高度超过20像素(建议通过测试确定最佳尺寸),最后保存图像(推荐使用ImageMagick或IrfanView)
  • 在命令行中执行 tesseract 图像文件 输出文件名

eScriptorium

  • 使用免费的开源软件 eScriptorium 与 Kraken 搭配。服务器组件可安装在 Linux、macOS 或 Windows(通过 WSL)系统上。客户端为网络应用程序,支持所有现代网络浏览器运行。该工具能实现文本区域与行段分割,并可识别印刷体与手写文字。其分割与识别功能均支持训练优化。

Google

谷歌具备光学字符识别功能。详见:

在所有情况下,你可能都需要分段转换。由于转换并不完美,你需要手动校正生成的文本。

转换视频

参见Help:Converting video.

Further help

You can ask for help at the Commons:Help desk.

另见

Category:Commons help/zh#Converting Category:Commons image resources/zh#Converting Category:Digitisation help/Translations
Category:Commons help/zh Category:Commons image resources/zh Category:Digitisation help/Translations