# PDF4Eink 1.0 中文帮助

PDF4Eink是一个将文本文件转换为Eink reader适用的PDF的小软件。
PDF是一种固定版面的格式，因此如果不是专门为Eink reader屏幕设计的PDF，在Eink reader上是难以得到最佳阅读效果的。但另一方面，如果你自己有电子书的文本格式来源，将其转换成PDF来阅读也有以下优点：
1.一般的阅读器在txt支持上都不够完美，需要考虑编码，排版等等。而且缩放字体后引起页数变化经常需要时间计算。Txt也无法支持目录
2.只要将字体嵌入，中文pdf可以在任何reader上阅读，无需汉化。如果考虑到许多中文书还是扫描版pdf，就几乎完全不需要汉化了。
将Txt转换成PDF是非常普通的功能，市面上有无数软件可以做到这一点，然而在Eink Reader出现之前所有的软件都不可能考虑到Eink Reader的需求，那就是
1.版面控制，尤其是页面的大小，边距，行距，缩进等等。
2.字体选择。
3.我个人认为这种转换应该尽量在操作上简单，在设置合适的情况下应该做到一键转换，操作越少越好。
能够满足这几点要求的软件很少，尤其是第三点。我在2009年购买eslick之前花了两三天时间写了一个Groovy的脚本，利用iText实现了想要 的功能。但是这个脚本很难给别人使用，因为需要直接编辑源码来修改参数，并且结合Total Commander的工具栏才能做到一键转换。
最近我在学习Groovy SwingBuilder的过程中给这个脚本加上了图形界面，应该可以方便一般用户使用了。

### PDF4Eink的主要特点：

1.支持中文，英文的文本文件，包括GBK（或GB2312也是一样的），UTF8，ISO8859_1 (一般的英文文件编码)编码格式。
2.拖拽文件到程序窗口
3.采用配置文件存储常用的设置，在调整好之后每次转换都不用进行改动。结合拖拽功能，每次操作可以精简到：一次拖拽，一次点击便完成所有操作。
4.自行选择字体，控制页面设置等参数
5.可以批量转换。
6.若txt文件内有标记，可以根据标记生成书签。

### 程序界面和操作介绍

界面可以分为下列区域：

#### 1.语言与帮助

1.在这里可以选择界面语言。改变语言后需要重新启动程序。
2.Help即打开本帮助文档。

#### 2.输入文件

1.将要转换的文本文件拖拽到整个程序窗口的任何地方即可。可以同时拖拽多个文件。
2.可用删除键将文件从列表中删除。

#### 3.文件格式

请选择文件是英文还是中文，以及其编码格式。中文文件一般是GBK（或GB2312选择GBK即可）编码，或UTF8编码。英文文件若用GBK编码大部分 情况也是一样的，个别情况有特殊符号显示问题，还是应选择ISO8859_1编码。Emeditor可以识别、重新转换常见的编码格式，推荐使用。
注意程序只接受以txt为扩展名的文件。另外，如果文件排版不好，请先用其他软件进行处理。因为排版不好的原因非常多，也有许多优秀的工具软件，本软件不 去作这一工作，只是假设每段都是一行而没有硬回车。推荐使用的排版工具有eTextcov, dreamEdit等。我常用前者，可以拖拽文件到窗口，转换html到文本，直接合并多个文件为一个等等。

#### 4.输出选项

1.PDF可以在文件属性中定义标题和作者，这和文件名是不同的，许多Eink reader可以识别这种信息并显示出来。缺省情况下为了减少操作干预，会自动以文件名作为标题。关闭这一选项才能输入文件标题。当然，如果选择了多个文 件准备批量转换，那么多个文件将会出现同一标题造成混淆，这种情况下会自动忽略输入的标题，仍然以文件名为标题。
2.输出目录缺省就用输入文件的目录，以尽量减少操作。若需要不同的输出目录，可以点击按钮进行选择，选择之后还可以直接在显示的文件夹路径上进行编辑。 输出文件名则直接使用输入文件名，只是后缀变成pdf。
3.程序有根据标记生成书签的功能。需要在文本文件中的章节标题一行的前面加上标记<bm>，就会把这一行标记为书签，成为pdf的目录。这 个只能自己事先进行处理，可以手工添加，也可以用正则表达式替换的方式添加，但不同的文件章节格式不同，很难有通用的方式，只能自己根据需要处理了。

#### 5.配置列表

前面的各种设置是针对输入文件的，可能经常会变化。而配置是针对设备或特定需求的，相对变化较少，一般针对自己的几个设备或几种需求定制好后就不需要修改 了。每个配置文件都是一个简单的ini文本文件，放在程序目录的config子目录下。为了简化程序，没有在程序中提供对配置文件的新建，复制，删除功 能，可以在不启动程序的时候直接对config目录下的文件进行操作。比如删除某一配置文件，修改配置文件的文件名，以及以某一配置文件为模版复制一个副 本，然后修改文件名－－具体的配置参数可以在程序启动后在程序中调节。
程序启动时会读入config目录下所有的ini文件，以文件名为列表项。

#### 6.参数设置

每个配置文件存储了右边的参数设置，包括
1.屏幕大小，以毫米为单位。程序中预设了eslick, Sony 505, Kindle DX的三个配置文件，如果你的设备不同，直接用尺子量一下屏幕的宽度和高度是最简单的。
2.行间距和段首缩进，以磅pt为单位。因为Eink Reader的屏幕空间有限，不考虑段间空行的排版方式。
3.页边距，也就是正文内容在四个方向上留出的空白，以毫米为单位。四个输入框的位置对应了顶部，底部，左边，右边四个方向。
4.采用的字体。必须是TrueType字体，即以ttf为后缀名。把你要用的字体拷贝到程序目录下的TTFfonts子目录下，文件名可以修改为易记的 名字。程序启动时会读入这些字体。字体大小以磅pt为单位。注意中文文件当然必须使用中文字体，不过英文文件既可以使用中文字体也可以使用英文字体。字体 总是会被嵌入到文件中，这样Eink reader不需要汉化，你也可以任意选择各种字体。
我建议你贴一大段文本到word中，然后选择各种字体看显示效果。字体在单个字的效果和段落中的效果是不同的。然后再把选中的几种字体拷贝过来进行实验。
字体是有版权的，有些字体允许你使用，但不允许你嵌入到pdf之中，iText遵守这种限制，对这种字体就无法转换。
5.两端对齐即在每行的标点、夹杂英文不同的情况下导致行长度不同时，强行将右边的最后一个字对齐。在某些情况下可能会显得这一行字中间空白较大。请根据 书的具体情况自己选择。
参数区域显示的是当前选中的参数文件中的配置，选择不同的参数文件就切换到不同的配置。可以在这些配置的基础上进行调整，然后点击转换就基于当前的调整进 行。这时退出程序并不会自动保存刚作的调整，需要保存时要点击保存更改，则当前的参数会保存到当前选中的配置文件中。

#### 7.转换

点击即开始转换列表中选中的文件。如果列表中只有一个文件，即使未手工选中也会进行转换，因此单个文件的转换可以做到一次拖拽，一次点击即完成。如果选择 了下面的“总是转换列表中所有文件”，则总是进行批量转换。如果添加了多个文件，但先选择一部分文件进行转换，转换之后并未将这部分文件从列表中删除，因 为根据输出情况你可能还想进行参数调整。若已经对效果满意，点击输入列表上方的删除按钮则可把这部分选中的文件从列表中删除。
程序界面中的区域1.语言选择，3.文件格式，4.以文件名为标题，7.是否总是转换所有文件的选择状态都会在退出程序时记忆，下次启动时总是会记住上次 的选择。