如何通过Bash脚本从竖线分隔文本生成PDF报告?
从竖线分隔数据生成PDF报告的Bash实用方案
你已经能用awk提取数据生成TXT文件,下面几个工具能帮你快速从TXT转成PDF,无需复杂的PostScript编写:
1. 使用pandoc(最简便通用)
pandoc是全能文档转换工具,支持直接将TXT转PDF,还能轻松调整格式。
- 安装方式:Debian/Ubuntu用
sudo apt install pandoc texlive-latex-base;macOS用brew install pandoc mactex - 基本转换命令:
# 假设提取后的文件是data.txt,生成report.pdf pandoc data.txt -o report.pdf
- 进阶格式调整(指定页边距、字体、标题):
pandoc -V geometry:margin=1in -V fontfamily=arial -V title="每日数据报告" data.txt -o report.pdf
2. 使用enscript + ps2pdf(轻量快速)
enscript能快速将TXT转成PostScript,再用ps2pdf(Ghostscript自带工具)转PDF,步骤简单:
- 安装方式:Debian/Ubuntu用
sudo apt install enscript ghostscript - 直接管道转换,无需生成中间PS文件:
enscript --header='每日数据报告|%D %T|Page %s' --footer='Generated by Bash Script' -p - data.txt | ps2pdf - report.pdf
参数说明:--header和--footer可自定义页眉页脚,-p -表示输出到标准输出,直接传给ps2pdf处理。
3. 使用a2ps + ps2pdf(格式灵活)
a2ps也是TXT转PS的工具,支持多列排版、语法高亮(按需使用):
- 安装方式:Debian/Ubuntu用
sudo apt install a2ps ghostscript - 转换命令:
a2ps --center-title="每日数据报告" --footer="Page %s" data.txt -o - | ps2pdf - report.pdf
整合到现有脚本
把转换步骤加到awk提取数据的流程后,示例脚本:
# 先用awk提取竖线分隔数据到data.txt awk -F'|' '{print "字段1:" $1 "\n字段2:" $2 "\n---"}' input_data.txt > data.txt # 调用pandoc生成PDF pandoc data.txt -o daily_report.pdf
内容的提问来源于stack exchange,提问作者Alexis Aymerich
相关产品推荐
相关产品推荐

