自己有pdf,但更想打印成纸质书阅读。本文介绍一种排版、装订的方法。
常见的打钱纸为A4尺寸的,直接打印pdf往往会使得字号过大、文字颜色太浅,边距过大。
经过笔者亲自尝试,推荐一种排版、装订的方式:
1、使用k2pdfopt工具进行裁边、字色加深
2、上述pdf内容转图片
3、按排版次序,重命名上述图片文件
4、插入上述图片到横排的word文档
5、使用虚拟打印机,打印上述文档为竖排pdf
6、对上述竖排pdf的偶数页进行180度旋转
7、将打印好的纸张对折,按内容次序叠放
8、使用502胶水侧面粘合
最终成品:
步骤详述:
1、使用k2pdfopt工具进行裁边、字色加深
下载地址https://willus.com/k2pdfopt/
windows版本有操作界面,mac/linux为命令行
运行后按图中,输入参数(-mode tm -n- -c-)、回车、文件路径、回车
等待处理完成后,所在目录下会创建出处理后的pdf文件
2、找一些在线网站或pdf转图片工具。转换出图片
如果有golang的编程环境,可以执行以下代码
package main
import (
"fmt"
"image/jpeg"
"os"
"path"
"path/filepath"
"strings"
"github.com/karmdip-mi/go-fitz"
)
func main() {
var files []string
root := "/private/var/spool/pdfwriter/wangdongxiao/"
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if filepath.Ext(path) == ".pdf" {
files = append(files, path)
}
return nil
})
if err != nil {
panic(err)
}
for _, file := range files {
doc, err := fitz.New(file)
if err != nil {
panic(err)
}
folder := strings.TrimSuffix(path.Base(file), filepath.Ext(path.Base(file)))
// Extract pages as images
for n := 0; n < doc.NumPage(); n++ {
img, err := doc.Image(n)
if err != nil {
panic(err)
}
err = os.MkdirAll("img/"+folder, 0755)
if err != nil {
panic(err)
}
f, err := os.Create(filepath.Join("img/"+folder+"/", fmt.Sprintf("image-%05d.jpg", n)))
if err != nil {
panic(err)
}
err = jpeg.Encode(f, img, &jpeg.Options{Quality: jpeg.DefaultQuality})
if err != nil {
panic(err)
}
f.Close()
}
}
}
3、按排版次序,重命名上述图片文件
由于需要在每张a4纸上,正反共打印4页内容,这4页的次序为4-1-2-3,对折装订后正好为内容次序
可按这个规则编写以下程序,在浏览器console中输出重命名的命令,mac/linux 为mv, windows为rename
ret = ""
offset = {"0":3,"1":-1,"2":-1,"3":-1}
for (i = 8 - 8; i <= 250 - 8; i++) {
var curIdx = ((i + 8 + offset[i % 4])-1)
ret += "mv image-00" + Math.floor(((curIdx/100))) + Math.floor(((curIdx/10)%10)) + Math.floor(((curIdx%10)))
ret += ".jpg new_" + (1000+i) + ".jpg"
ret += "\n"
}
console.log(ret)
4、插入上述图片到横排的word文档
1)新建文档,页面设置为横排
2)双击标尺,在弹出的页边距设置里,修改4个边距,其中右边距先设置大于一半的值(也可直接拖动标尺)。其目的是让word在插入图片时,自动去缩放图片为最终需要的大小。
3)插入上文中的图片
4)重新修改右边距与在边距相同
至此已经完成了,若打印机正常支持横向打印+双面打印,就可以直接打印了。
为了适应某些不支持横向打印的设备,可以再额外处理为竖排(5、6的步骤,可按实际情况省略)
5、使用虚拟打印机,打印上述文档为竖排pdf
mac下可安装https://github.com/rodyager/RWTS-PDFwriter/releases
虚拟打印出pdf文件
6、对上述竖排pdf的偶数页进行180度旋转
依次选取每张偶数页,点击两次90度旋转
7、将打印好的纸张对折,按内容次序叠放
对折叠放时注意保持内容次序
8、使用502胶水侧面粘合
若打算进行订书机装订,需要注意在4-2中,对右边距适当增大,保证纸张中心有足够的空白区。