-
Notifications
You must be signed in to change notification settings - Fork 6
PDF 图书内容转换 #5
Copy link
Copy link
Closed
Labels
Back-endWhere data really come and goWhere data really come and goFront-endEverything you see and experienceEverything you see and experience
Description
需求描述
现有的图书资源以 PDF 格式为主,要使用这些资源,就需要先把它们转换成可用的格式。
转换成 XML
PDF 电子书可以通过 Adobe Acrobat 导出为 XML 1.0 格式的文档,XML 文档整体结构如下。
<?xml version="1.0" encoding="UTF-8" ?>
<TaggedPDF-doc>
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
这里是文档元信息,如创建/修改时间,标题、作者等等
<?xpacket end="w"?>
<?xpacket end='r'?>
这里是文档内容
</TaggedPDF-doc>但是有个问题:在文档内容中,出现 Ruby 标签对的地方,标签对内的 RB 标签和 RT 标签在 XML 文档里的顺序,和在 PDF 文档里的顺序是相反的。而且所有出现 Ruby 标签的地方,都是汉字在前面的 RB 标签中,单个的左/右双引号在 RT 标签中。
转换成 TXT
也可以直接把 PDF 导出成 TXT 格式的纯文本文档并复制到浏览器中,然后在浏览器中用自定义的编辑器给每一段文字刷上对应的格式,再增加插入图片、视频之类的功能(需要在服务器上搭建文件服务,Nginx 也要做对应的配置,不是个小工程),编辑完成的文档导入 MongoDB 即可。
方案调研
PDF 转换
- modesty/pdf2json
- 手动在本地把 PDF 导出成 TXT 格式的纯文本文档
文本编辑
- GitHub:
text editor- 更具体一点:markdown 编辑器?带 UI 的更好,方便使用。
- 继续:还需要考虑如何将页面中设置好格式的富文本传入后端数据库,比如标题、段落、引用等类型的内容,都要设置对应的标签,这个标签是包在文本的外面放在同一个字段中,还是说放在不同的字段中,都是需要好好考虑的事情。
- 富文本中嵌入的图片、音频、视频等资源,还需要传入下面的 seaweedfs 中,传入之后会生成资源文件的链接,这个链接也要更新到上面编辑的富文本中,这么一看,工作量很大啊。
文件服务
- chrislusf/seaweedfs
- 不只是文件服务搭建起来就行,应该还需要 Nginx 进行相关配置才能正常使用。
XML to HTML
- GitHub:
xml to html - 首选项目:posthtml/posthtml
应用过程
要点总结
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Back-endWhere data really come and goWhere data really come and goFront-endEverything you see and experienceEverything you see and experience