RFC(Request For Comments)文档是许多互联网协议的标准文档,对于学习计算机网络的学生和通信网络行业从业者来说是一个重要的资料来源。任何人都可以可以从[RFC Editor(https://www.rfc-editor.org/)方便地获取到RFC文档。
RFC文档是由人编写的,不可避免地会出现一些笔误的情况,在RFC Editor站点上会不定期地刊登出这些勘正信息(Errata),但是并不提供订正后的文本。这点做得就不如法律的修正案,后者在立法机关公布修正案的同时会发布修订后的全文。
咳咳,言归正传,为了平时方便使用,我们需要把这些勘正合并到原文档中(.txt),然后再生成方便阅读和使用的PDF格式文档。参考官方RFC文档中的信息,这里使用enscript和ghostscript来生成近似官方PDF文档的效果。
安装软件
sudo apt install enscript ghostscript
执行脚本
将以下代码保存成 build_PDF.sh 文件
#!/bin/bash
FILENAME=`echo ${1} | sed 's/\.txt//'`
#-B 不在每页添加 '文件名 - 生成日期' 格式的首部
#--margins 设置页边距
#--media=letter 使用US Letter 纸张
#-p <file> 将enscript执行的结果导出成ps文件
enscript -B --margins=76::20 --media=letter -p ${FILENAME}.ps ${FILENAME}.txt
#enscript -B --margins=126::10 --font=Times-Roman12 --media=letter -p ${FILENAME}.ps ${FILENAME}.txt
#等待文件生成
until [ -f ${FILENAME}.ps ]
do
sleep 1s
done
#转换成pdf
ps2pdf ${FILENAME}.ps ${FILENAME}.pdf
#删除中间文件
rm -f ${FILENAME}.ps
在shell中执行以下命令,会在同目录下生成同名的pdf文件
./build_PDF.sh 3069.txt #使用你自己的RFC文档
Windows 版本
安装软件
下载ghostscript并安装
下载enscript源码包
在msys2 mingw32(64位可能编译失败)环境下编译enscript:
./configure --with-media=Letter
make
make install
配置环境
假设ghostscript安装到了 C:\Program Files\ghostscript\ 目录,
打开C:\Program Files\ghostscript\lib\ps2pdfwr,
修改GS_EXECUTABLE变量
GS_EXECUTABLE="C:\Program Files\ghostscript\bin\gswin64c.exe"
执行脚本
将以下代码保存成 build_PDF_win.sh 文件,注意修改ps2pdf的路径为你自己的ghostscript路径
#!/bin/bash
FILENAME=`echo ${1} | sed 's/\.txt//'`
ps2pdf="C:\Program Files\ghostscript\lib\ps2pdf"
#-B 不在每页添加 '文件名 - 生成日期' 格式的首部
#--margins 设置页边距
#-p <file> 将enscript执行的结果导出成ps文件
enscript -B --margins=76::20 -p ${FILENAME}.ps ${FILENAME}.txt
#等待文件生成
until [ -f ${FILENAME}.ps ]
do
sleep 1s
done
#转换成pdf
"${ps2pdf}" ${FILENAME}.ps ${FILENAME}.pdf
#删除中间文件
rm -f ${FILENAME}.ps
在msys2中执行以下命令,会在同目录下生成同名的pdf文件
./build_PDF.sh 3069.txt #使用你自己的RFC文档
参考:
Linux下文本格式转pdf