`
helpbs
  • 浏览: 1159021 次
文章分类
社区版块
存档分类
最新评论

epub电子书格式转换(E-book Conversion翻译) -- calibre

 
阅读更多

原文地址:http://calibre-ebook.com/user_manual/conversion.html#convert-microsoft-word-documents

calibre转换系统的设计非常容易使用。通常情况下,你只需要添加一本书到calibre,单击转换, calibre将尽可能接近输入地产生输出。然而,calibre接受的输入格式非常多,但并非适合所有这些格式都转换为其它格式电子图书。在这种情况下对于这些输入格式,如果你想在更大程度上控制转换系统,calibre有很多转换过程中的控制选项。但是请注意,calibre的转换系统并不是一个完全成熟的电子书编辑器的替代品。要编辑电子书,我建议首先使用calibre将它们转换为EPUB,然后用专用EPUB的编辑器,如Sigil ,以获得完美的造型成书。然后,您可以使用编辑过的EPUB作为输入,用calibre 转换为其他格式。

这份文件将主要是指转换设置,如下图转换对话框所示。所有这些设置也可以通过命令行界面的转换,并记录电子书转换。在calibre,您可以通过移动你的鼠标,在任何个人设置中获得帮助,会出现一个工具提示描述设置。


calibr UI

内容

简介

外观和感觉

页面设置

结构检测

目录

如何设置选项/保存的转换

特定格式的转换提示

简介

首先要了解有关转换系统,它是一个管道设计的。示意图如下:

calibre flow chart

输入格式是先由相应的输入插件转换为XHTML。然后转换HTML。在最后一步,处理XHTML是有适当的输出插件转换到指定的输出格式。转换的结果根据输入格式可能差别很大。一些格式转换比其它工具好。这里有一个最好的源格式转换列表如: LIT, MOBI, EPUB, HTML, PRC, RTF, PDB, TXT, PDF。

该转换XHTML的输出上的行为是发生在所有的工作。有各种各样的转换,例如,在书的开始要插入书元数据(metadata)页,用来检测章节标题并自动创建的目录表,按比例调整字体大小,等等。重要的是要记住,所有的转换是XHTML输出输入插件的行为不是在输入文件本身。因此,举例来说,如果你问calibre转换RTF文件为EPUB的,它首先被内部转换为XHTML,各种转换将被应用到的XHTML,然后输出插件将创建EPUB的文件,所有元数据(metadata)、目录等等,自动生成。

您可以通过使用调试选项看到这一行动的过程。只需指定调试的路径为输出目录。在转换过程中,calibre将会把生成的XHTML转换流水线的各个阶段放在不同子目录。四个子目录是:

转换管道阶段

目录 | 说明

input | 这包含了HTML输出输入插件。使用此调试输入插件。

parsed | 前处理和从输入插件转换为XHTML输出结果。用于调试的结构检测。

structure | 后结构检测,但在CSS flattening和字体大小的转换之前。用于调试的字体大小转换和CSS转换。

processed | 在电子图书传递到输出插件之前。用于调试输出插件。

如果你想用calibre转换之前,编辑输入文件,最好的办法是编辑输入子目录中的文件,然后压缩它的小,并以此作为后续的转换输入格式的压缩文件。要做到这一点,使用编辑元(meta)信息对话框添加压缩文件ZIP文件,然后在转换对话框顶部的左下角,选择ZIP作为输入格式。

这份文件将主要处理以XHTML为中间格式的各种操作转换,并讲述如何控制它们。在最后有一些提示,具体到每一个输入/输出格式。

外观和感觉

内容

字体大小缩放

段落间距

附加的CSS

杂项

这组选项控制的外观各个方面和转换电子书的感觉。

字体大小缩放

对电子阅读体验最好的功能之一是能够方便地调整字体大小以适应个人的需要和亮度选项。calibre有复杂的算法,以确保所有的书籍,输出有一个一致的字体大小,字体大小是没有什么在输入文件中指定的问题。

文档的基本字体大小是在该文件中,即在该文件中的文本批量大小最常见的字体大小。当您指定相应的字体大小,calibre自动重新成比例调整文档中的所有字体大小,因此,最常见的字体大小成为指定的基本字体大小,其他字体大小适当的重新调整。通过选择一个更大的基本字体大小,您可以在文件中获得较大字体,反之亦然。当您设置相应的字体大小,以取得最佳效果,你也应该设置关键的字体大小。

一般来说,calibre会自动选择您已选择(见页面设置)的输出模式合适的基本字体大小。但是,您在这里可以覆盖此情况下,默认是不适合你。

Font size key选项可以控制如何使非基本字体大小重新调整。字体缩放算法的工作原理使用Font size key,这是一个简单的字体大小以逗号分隔的列表。Font size key告诉calibre,对比于基本字体大小, 给定的字体大小应有多少大或小“步骤”。这个idea是一个文档中的字体大小应该数量有限。例如,一个用于正文文本大小,不同层次的大小标题和一对super/sub脚本和脚注字体大小。font size key允许calibre在输入文件划分成独立的“箱”字体大小对应不同的逻辑字体大小。

让我们用一个例子说明。假设我们的源文件转换是由具有优良的视力的人制作,并以8pt为基本的字体大小。这意味着该文件中的文字大部分是在8pts大小,而标题是有点大(如10和12pt)和小一些的6pt脚注。现在,如果我们使用以下设置:

Base font size : 12pt

Font size key : 7, 8, 10, 12, 14, 16, 18, 20

输出文件将有一个基本字体大小12pt,14 ,16pt标题和脚注8pt字体大小。现在假设我们要做出最大的标题大小更加突出,以及一些较大的脚注。要做到这一点,关键的字体应改为:

New font size key : 7, 9, 12, 14, 18, 20, 22

最大的标题将成为18pt,而脚注将成为9pt。你可以通过这些设置,找出使用字体缩放向导的最佳方式,可以通过点击旁边的小按钮,字体大小项设置为您最佳的访问。

如果你想保留在输入文件中的字体大小,所有的字体大小缩放转换中被禁止。

一个相关的设置是行的高度。行的高度控制线的垂直高度。默认情况下,(行高度0),没有行的高度进行操纵。如果你指定一个非默认值,行的高度将设在所有地点,不指定自己的行高度。然而,这是一个钝器,应谨慎使用。如果你想调整一些输入部分的行高度,最好使用EXTRA CSS。

段落间距

通常,在XHTML段落之间呈现空行,而没有文本缩进。calibre有一对选项来控制这些呈现方式。删除段落之间的间距强制所有段落之间没有段落间距。它还设置文本缩进1.5em(可改变),以标志每一个段落的开头。另一方面可插入空行,保证有每个段落之间有空行。这两个选项非常全面,删除空格,或插入的所有段落(实际上对应于<p>和<div>标签)中。这是为了让你可以设置选项,并确保它的执行像广告,不论如何凌乱输入文件。唯一的例外是当输入文件使用硬换行符实施跨段落间距。

如果你想删除所有段落之间的间距,除了有选择的几个,不要使用这些选项。相反添加以下CSS代码为Extra CSS:

p, div { margin: 0pt; border: 0pt; text-indent: 1.5em }

.spacious { margin-bottom: 1em; text-indent: 0pt; }

然后,在您的源文件,需要用class=”spacious”标记的段落间距。如果你输入的文件不是在HTML中,使用调试选项,描述如何得到HTML(使用输入子目录)。

Extra CSS

这个选项允许你指定任意的CSS将其应用到所有的输入HTML文件。这个CSS应用具有非常高的优先,所以最应该重写CSS在输入文件本身存在。你可以用它来微调设定文档的presentation/layout。例如,如果你想所有段落尾类是正确对齐,只需要添加:

.endnote { text-align: right }

或者如果你想改变所有段落的缩进:

p { text-indent: 5mm; }

Extra CSS是一个非常强大的选项,但您确实需要很好地理解如何使用CSS,充分发挥其潜力的。

杂项

这里有几个在本节的选项。

No text justification

一般来说,如果输出格式支持的话,calibre将强制输出有合理的文本(即平滑右边距)的电子书。此选项将关闭此行为,在这种情况下,在输入文件中指定任何调节将被使用。

Linearize tables

一些设计不良的文件,使用表格控制网页上的文字布局。当这些文件转换成文本,往往运行在页面及其他文章。此选项将提取的表的内容和线性方式呈现它。请注意,此选项线性化的所有表,所以只有你是确保输入的文件不使用正当目的,比如提交表格信息,才使用它。

Transliterate unicode characters

音译Unicode字符的ASCII表示。应小心使用,因为这将取代使用ASCII Unicode字符。比如,它会用“Mikhail Gorbachiov”取代“МихаилГорбачёв”。此外,请注意,一个字符有多个表示意义,(例如由中国和日本共同字符),使用人数最多将被使用(在前面的例子中用中文)。如果你的电子设备上不支持Unicode的电子书,这个选项主要是有用的。

Input character encoding

旧文档有时不指定其字符编码。转换时,这可能导致非英文字符或特殊字符,如智能引号被损坏。calibre尝试自动检测源文件的字符编码,但它不是总是成功。你可以强制使用此设置特定字符的编码。 cp1252是一种常见的使用Windows软件所产生的文件编码。你也应该阅读How do I convert my file containing non-English characters, or smart quotes? <http://calibre-ebook.com/user_manual/faq.html#char-encoding-faq>解决更多编码问题。

页面设置

页面设置选项用于控制屏幕布局,如页边距、屏幕尺寸。如果选定的输出格式支持页边距选项,这里有一些选项配置页边距供输出插件使用。此外,你应该选择一个输入和输出配置文件。这两套配置文件在输入/输出文档基本处理如何测量屏幕尺寸和默认font rescaling keys。

如果你知道你的文件正在转换的目的是用在一个特定的设备/软件平台,选择相应的输入配置,否则就选择默认输入配置。如果你知道你正在生成的文件是给一个特定的设备类型,选择相应的输出配置文件。特别是,对MOBI 输出文件,你应该选择适合Kindle,LIT对应微软,EPUB对应索尼阅读器。对于EPUB,索尼阅读器的配置将导致所有EPUB的文件的输出。但是,它有一些副作用,如像人工插入分节符保持内部组件低于阈值大小的索尼设备需要。特别是在为iPhone / Android手机,选择索尼输出配置文件。如果你知道你的EPUB文件将无法在一个索尼或类似设备阅读,使用默认的输出配置文件。如果您生成MOBI而不用于Kindle,选择Mobipocket的图书输出配置文件。

输出配置文件也可以控制屏幕的大小。这将导致,比如说,图像,自动调整大小以适合在一些屏幕输出格式。因此,选择一个与你的设备有一个类似屏幕尺寸的配置文件。

结构检测

当 输入文档没有正确指定结构元素,calibre结构检测将尽力检测,例如,章节,分页,页眉,页脚等。你可以想像,这个进程会随着不同的书变化很大。幸运的是,calibre有非常强大的选项来控制。控制选项是复杂的,但如果一旦你花时间去学习它的复杂性,你会发现它非常值得的努力。

章节和分页符

calibre有两个章节的检测选项和插入分页符集。这有时会稍微有些混乱,默认情况下,calibre将在检测到章节以及所检测分页选项的位置插入分页符。其原因是,经常有位置插入分页符但不属于本章的界限。此外,检测到的章节可以设置为生成的目录自动插入。

calibre使用一种强大的语言XPath,允许用户指定章节界限/分页符。 XPath在开始使用时看起来有点令人生畏的,幸运的是,这里XPath教程用户手册。请记住,结构检测操作由XHTML转换管道产生的。使用调试选项的为你的电子书找出适当的设置说明。还有一个XPath向导按钮,以协助处理简单的XPath表达式生成。

默认情况下, calibre使用下面的表达式检测章节:

//*[((name()='h1' or name()='h2') and re:test(., 'chapter|book|section|part/s+', 'i')) or @class = 'chapter']

这个表达式是相当复杂的,因为它试图一次同时处理多个个案。它的意思是, calibre假定章节开始于<h1>或<h2>标记,其中包含内容(包括章,书籍,分段或分部)或有class=”chapter”属性。

相关选项是章标志,当它检测到某一章,它允许你控制calibre做一些操作。默认情况下,它会在章节之前插入一个分页符。你也可以插入规则线,或附加分页符。也可以什么也不做。

检测的默认分页设置为:

//*[name()='h1' or name()='h2']

这意味着默认情况下,calibre将在每一个<h1>和<h2>标签插入分页符。

注意:默认的表达可能你的输入格式转换而改变。

删除页眉和页脚

这些选项是有用的,主要用于对PDF文件的转换。通常,转换留下页眉和页脚中的文本。这些选项使用正则表达式来尝试检测和删除页眉和页脚他们。请记住,他们在由转换XHTML的管道产生的中间操作。还有一个向导来帮助您自定义文档的正则表达式。

页眉和页脚中使用正则表达式结合删除页眉和页脚选项。如果删除选项未启用正则表达式将不会被用于消除匹配的文本。清除过程使用Python正则表达式。所有匹配的文本只是从文件中移除。你可以了解正则表达式和他们的语法(http://docs.python.org/library/re.html)。

杂项

这里有几个在本节的选项。

Insert metadata as page at start of book

关于calibre 最具成就的事情之一是,它可以让你保持着所有图书非常完整的元数据(metadata),例如,rating, tags, comments等,这选项将创建一个单页的所有元数据(metadata),并将其插入到转换的电子书,一般在封面之后。你可以把它看成是一种创建你自己定制的书夹克的方式。

Remove first image

有时候,你要转换的源文件包含了书中的一部分,作为封面,而不是作为一个单独的封面。如果你也指定一个封面,然后将转换后的书有两个封面。此选项只会删除源文件的第一个图像,从而确保转换后的书只有一个封面,即calibre规定的一个。

Preprocess input

此选项将激活那些试图发现和纠正错误格式的输入文件常见的情况不同的算法,如硬断行,没有格式的大块文本等。如果你的输入文件格式非常坏,可打开此选项。但要知道,在某些情况下,这个选项可能会导致更坏的结果,所以请小心使用。

Line-unwrap factor

此选项控制calibre用于去除硬换行符算法。例如,如果该选项的值是0.4,这意味着calibre将删除行长度低于文档中所有行长度40%的硬换行符。

目录

当输入文件已在其元数据(metadata)的目录表,calibre只会使用它。然而,旧格式或者不支持基于元数据目录,或个别文档中没有。在这种情况下,在转换电子书输入文档的实际内容的目录的基础上在本节中的选项可以帮助您自动生成。

第一种选择是强制自动生成的目录使用。选中此选项,您可以有calibre覆盖任何目录中的自动输入与元数据中找到生成的文件。

默认的方式下,创建自动生成目录表的工作原理是,calibre将首先尝试添加任何检测到的章节的内容生成的表。你可以学习如何自定义在上面检测到的部分的章节结构。如果您不希望在生成的目录表中包含检测到的内容章节,则不添加detected chapters选 项。

如果低于检测章章数阈值,calibre 将它添加任何发现的超链接在输入文件的目录表。这对在多个输入文件开始包括一个超链接的目录往往行之有效。链接数目的选项可以用来控制此行为。如果设置为零,没有链接添加。如果设置最多为大于零的数字,即链接的数量随之尽量增加。

calibre会自动过滤目录生成的表重复内容。但是,如果有一些额外的不良条目,您可以用TOC Filter过滤他们。这是一个将在生成的目录表匹配内容条目标题的正则表达式。每当找到匹配,它会被删除。例如,要删除所有条目标题“Next” or “Previous” 使用:

Next|Previous

最后,1,2,3级TOC选项允许你创建一个复杂的多级目录。他们是XPath表达式匹配的转换产生的管道中的XHTML标记。请参阅如何访问这个XHTML的介绍。也读XPath教程,学习如何构建XPath表达式。每个选项旁边有一个按钮,启动一个向导来帮助基本XPath表达式创建。下面简单的例子说明如何使用这些选项。

假设你有一个输入文件,在XHTML看起来像这样:

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Sample document</title>

</head>

<body>

<h1>Chapter 1</h1>

...

<h2>Section 1.1</h2>

...

<h2>Section 1.2</h2>

...

<h1>Chapter 2</h1>

...

<h2>Section 2.1</h2>

...

</body>

</html>

然后,我们设置的选项为:

Level 1 TOC : //h:h1

Level 2 TOC : //h:h2

这将导致一个自动产生两个级别的目录表,看起来像这样:

第1章

第1.1节

1.2节

第2章

第2.1节

警告:并非所有的输出格式支持多级目录。你应该首先尝试使用EPUB的输出。如果可以正常工作,然后选择你的格式。

转换的set/saved选项

calibre转换选项有两个地方可设置。首先是在Preferences ->Conversion。这些设置是默认的转换选项。当您尝试转换了一本新书,这里设置将被默认使用。

您也可以在转换对话框中改变每本图书转换设置。当您转换一本书,calibre将记住用于您书的设置,因此,如果你再次转换,对每本书保存的设置将高于在首选项中设置默认的优先级。您可以在书籍转换对话框使用Restore to defaults按钮,还原为默认的个人设置。

当您批量转换一套书,设置采取以下顺序:

From the defaults set in Preferences->Conversion

从被转换的每本书保存转换设置(如有)。在Bulk Conversion 对话框左上角的选项,这可能是关闭的。

From the settings set in the Bulk conversion dialog

请注意,对于每本图书在批量转换的最终设置将被保存和重新使用,如果书是再次转换。由于散装转换是最优先考虑在大容量转换对话框中的设置,这将覆盖任何书的特定设置。所以你应该只批量转换需要一起类似的设置的书籍。例外的是元数据输入格式和具体的设置。由于批量转换对话框不具有这两类设置,他们从书中将采取具体设置(如有)或默认值。

注意:您可以通过点击右下角的旋转图标,然后双击个人的转换工作任务,在任何转换中使用实际的设置。这将有一个转换日志,包含实际设置,接近顶部。

特定格式转换描述

在这里,你会发现具体到特定格式的转换。具体到特定格式的选项,不论是输入或输出转换对话框,可根据自己的部分选定,例如TXT等输入或EPUB的输出。

转换Microsoft Word文档

calibre不直接转换Microsoft Word doc文件。但是,在Word中,可以保存为HTML文件,然后用calibre转换生成的HTML文件。以HTML格式保存时,一定要使用 “Save as Web Page, Filtered” 选项,因为这将产生干净的HTML,将很好地转换。

这里有一个Word宏包,可以使用 calibre自动转换Word文件。这也使得生成的目录表简单得多。这就是所谓BookCreator,并于mobileread免费提供。

转换TXT文件

TXT文件并没有明确的方法来指定如粗体,斜体等,或文件如段落,标题,章节等结构格式。由于TXT文件没有提供方法来显式标记的文字,是在默认情况下calibre只有将输入文档一些行转换为段落。默认是假设一个或多个空白段落边界线:

This is the first.

This is the

second paragraph.

TXT input supports a number of options to differentiate how paragraphs are detected.

Treat each line as a paragraph

Assumes that every line is a paragraph:

This is the first.

This is the second.

This is the third.

Assume print formatting

Assumes that every paragraph starts with an indent (either a tab or 2+ spaces). Paragraphs end when the next line that starts with an indent is reached:

This is the

first.

This is the second.

This is the

third.

Process using markdown

calibre还支持一个叫markdown的预处理器转换 TXT输入文件。markdown允许基本格式被添加到TXT文件,如粗体,斜体,节标题,表格,列表,一个目录等,标识章标题的方法如下,前导#和设置的XPath检测表达式为“//h:h1”是最简单的方法,可以从一个TXT文件产生适当的目录表。你可以在daringfireball 了解markdown语法<http://daringfireball.net/projects/markdown/syntax>。

转换PDF文件

PDF文件格式是最糟糕的一个转换,固定页面的大小和格式文本的位置。这意味着,它是非常难以确定一个段落结束,另一个开始。calibre会尽量使用可配置(Line Un-Wrapping Factor)解开段。这是用来确定在哪个行应该是解开长度规模。有效值为0和1之间的小数。默认值是0.5,这是中等长度。降低此值,以包括更多的展开文本。增加包括更少。您可以调整此PDF格式下输入转换设置的值。

此外,他们往往有页眉和页脚成为与文本文件的一部分。使用选项来删除页眉和页脚,以减轻这一问题。如果在页眉和页脚不从文本中删除它将甩开段展开。

PDF格式的输入的一些限制是复杂的,多列、基于图像的文件不被支持。在文档中提取矢量图像和表格也是不支持。

漫画集

一本漫画书的集合是一个.cbc 文件。一个.cbc 行文件是一个zip文件,它包含其他CBZ/CBR的文件。此外,.cbc 文件必须包含一个简单的文本文件名为comics.txt,在UTF - 8编码。该comics.txt文件在.cbc文件中,必须包含一个漫画文件名列表,形式为filename:title,如下所示:

one.cbz:Chapter One

two.cbz:Chapter Two

three.cbz:Chapter Three

.cbc文件将包含:

comics.txt

one.cbz

two.cbz

three.cbz

calibre将自动转换.cbc文件成电子书,电子书中目录表指向comics.txt的每个条目。

EPUB的高级格式演示

各种先进的EPUB的文件格式在这个演示文件(http://calibre-ebook.com/downloads/demos/demo.epub)展现。该文件是由使用calibre 手工编码的HTML创建,其目的是要作为自己的努力创造EPUB的模板。

HTML源可从demo.zip(http://calibre-ebook.com/downloads/demos/demo.zip)创建。用于从ZIP文件来创建EPUB的设置包括:

ebook-convert demo.zip .epub -vv --authors "Kovid Goyal" --language en --level1-toc '//*[@class="title"]' --disable-font-rescaling --page-breaks-before / --no-default-epub-cover

注意: 因为该文件探讨了EPUB的潜力,大多数先进的格式在低于calibre的内置EPUB viewer的阅读器是不能正常工作的。

-------------------------- 全文完 -----------------------------------------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics