trpl-zh-cn icon indicating copy to clipboard operation
trpl-zh-cn copied to clipboard

pdf样式好,如何生成?

Open lingr7 opened this issue 4 years ago • 12 comments

从gitbook网站上下载到的教程样式非常好,就是在markdown基础上,适当加了出版物特性比如有分页。 那么这个文档的pdf文件是如何生成的呢? 我尝试了一些gitbook2pdf工具,都没有找到办法生成类似的pdf文件。

lingr7 avatar Apr 19 '20 05:04 lingr7

以前 gitbook 是开源的 😂 https://github.com/GitbookIO/gitbook

KaiserY avatar Apr 19 '20 06:04 KaiserY

我试了几种gitbook2pdf的工具,生成效果都不好,开源的gitbook工具的效果不好。比如这样的。 没有代码高亮。抓取gitbook站点很容易失败 image 我自己总结了几种可以将文档生成pdf的办法: 探索markdown2pdf最佳实践 · 语雀 目前我能尝试出的是看云。 看到这个文档是 属性 这样的,烦请赐教这个文件的生成的流程。 如果是LaTex的话,凡是pdf文件,必然有tex源码,可以复现出。但是LaTeX写这种文档成本太高了。

lingr7 avatar Apr 20 '20 02:04 lingr7

我疏忽了,各种方法试了一大堆,这个仓库本身开始构建却没有尝试,身在林中看不见树。(¬_¬)智商三岁。

lingr7 avatar Apr 20 '20 06:04 lingr7

一次失败的尝试

在这个前提下:制作pdf · GitBook image.png

image.png

同时左面的目录是不支持跳转的,所有都跳转到第1页,是比较失败的。

image.png

踩坑如下:

左侧导航栏超链接无法跳转->生成的pdf书签不能跳转,未解决。

左侧导航栏超链接无法跳转

gitbook生成的静态网页很像wiki,左侧有电子书的导航栏,很方便。但是,点击链接居然不会跳转。不会跳转的超链接能叫超链接吗?此时,在_book文件夹内,找到gitbook文件夹,在里面找到theme.js打开,用文本搜索工具搜索查找

if(m)for(n.handler&&

注意,文本时压缩过的,不要搜索if(m),那样找不到。

找到后,将 if(m)改成if(false)

再次打开_book下的网页,左侧导航栏超级链接就可以正常跳转了。

Error converting .svg into .png

在后来尝试使用gitbook生成pdf时,又遇到一个问题

error: error while generating page "chapter1/14.md":

Error: Error converting C:\Users\Administrator\AppData\Local\Temp\tmp-47768poGb4f1fkPK_mathjax_46d8639.svg into C:\Users\Administrator\AppData\Local\Temp\tmp-47768poGb4f1fkPK\c6231af5.png

看样子是在生成pdf时,需要把mathjax公式svg图转换为png。刚开始以为是mathjax的问题,换了很多歌mathjax插件版本,后来发现把插件换成katex也有一样的错误提示。

于是想到了可能是svg转png的过程出现问题,于是找到了svgexport 。

svgexport 是一个svg转png的工具,现在版本是0.4.0

搜了一下,发现有一些人遇到同样的问题(不仅限于在gitbook),但是大家都有一个个特点:那就是windows

于是我用svgexport 测试了一下单独的svg图片,发现也是报错。

后来在svgexport 的github的issue里发现问题,svgfile在读取windows下的文件时会有文件地址错误的问题,具体就是window和Linux中文件路径的表示方法是不一样造成的。

该问题目前暂时无解,工具的作者已经提交issue,准备修复这个bug了。

但是,在此之前,可以使用0.3.2版本的svgexport,就可以完美滴解决这个问题。

npm使用淘宝镜像加速安装

解决方案:

cnpm install [email protected] -g

NPM镜像-NPM下载地址-NPM安装教程-阿里巴巴开源镜像站 https://developer.aliyun.com/mirror/NPM?from=tnpm

Gitbook踩坑记录II - 知乎 https://zhuanlan.zhihu.com/p/123870902

Regression 0.4.0: "Error converting __.svg into ___.png" with GitBook · Issue #71 · shakiba/svgexport https://github.com/shakiba/svgexport/issues/71

lingr7 avatar Apr 20 '20 08:04 lingr7

我也曾经像楼主这样折腾过,分享一点经验。gitbook由于商业策略的变更,开源的gitbook软件已经不再维护,在legacy.gitbook.com上下载的pdf显示还不错,但是如果自己生成pdf,会遇到许多兼容性问题。比如:

  • 字体问题。我使用微软雅黑字体时,遇到粗体被显示为normal的情况。
  • 页边距问题。我使用最新版本calibre时,修改页边距无效,我的解决办法是回滚到2.12.0版本。

pandoc+LaTeX我也使用过,学习成本过高,需要解决的显示问题过多,我最后选择了放弃。

me1ting avatar Apr 20 '20 15:04 me1ting

现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮 图片

然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。

图片

chuigda avatar Aug 27 '20 03:08 chuigda

现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮 图片

然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。

图片

这是我经过了若干次尝试,这种是最好的生成pdf方法.除了没有目录其他都完美

aoslee avatar Oct 15 '20 02:10 aoslee

mozilla.pdf

这里有我生成好的

mokurin000 avatar Oct 28 '20 09:10 mokurin000

mozilla.pdf

这里有我生成好的

mozilla生成的效果还是太丑了,推荐我的trpl-zh-cn-pdf

全书签+一级标题换行等打印效果优化

me1ting avatar Jan 08 '21 15:01 me1ting

mozilla.pdf 这里有我生成好的

mozilla生成的效果还是太丑了,推荐我的trpl-zh-cn-pdf

全书签+一级标题换行等打印效果优化

这个不错,谢谢

eorendel avatar Feb 01 '21 01:02 eorendel

Rust 程序设计语言 简体中文版.pdf

actions 里集成了一个 pdf,样式还需要再调调,然后 emoji 显示不了 :joy:

KaiserY avatar Feb 19 '22 10:02 KaiserY

现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮 图片 然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。 图片

这是我经过了若干次尝试,这种是最好的生成pdf方法.除了没有目录其他都完美

@aoslee 你说【用浏览器打开mdbook的生成结果】,我从_book里打开index.html或者其他html页面都是只有一页,没有你说的【会获得一个所有内容都在一页上的网页】,还是我打开的地方不对?请教

LiYouliang avatar Sep 14 '22 03:09 LiYouliang