-3
使用命令行工具將製表符分隔的文件(或CSV)轉換爲PDF文檔有沒有直接的方法?據我所知,enscript會將原始文本轉換爲pdf,但我需要將這些列排列在PDF中。任何意識形態?如何將TSV/CSV轉換爲PDF表格
使用命令行工具將製表符分隔的文件(或CSV)轉換爲PDF文檔有沒有直接的方法?據我所知,enscript會將原始文本轉換爲pdf,但我需要將這些列排列在PDF中。任何意識形態?如何將TSV/CSV轉換爲PDF表格
更新回答
另一種選擇可能是在你的文件進行兩遍,並確定在第一輪的所有字段的最大寬度,然後輸出到剛剛高於更寬第二格式 - 所有使用awk
。所以,如果你input.csv
看起來是這樣的:
r1c1,r1c2longpuppy,r1c3
r2c1dddf,r2c2,r2c3
r3c1,r3c2,r3c3iiiiiiiiiiiiiiiiiiiiiiiii
你可以這樣做:
awk -F, '
FNR==NR { # first pass, determine max length of each field
for(f=1;f<=NF;f++){if(length($f)>widest[f])widest[f]=length($f)}
next;
}
{ # second pass, print each field just wider than widest
for(f=1;f<=NF;f++){
printf "%-" widest[f] "s ",$f
}
printf "\n"
}' file.csv file.csv
它給你這樣的:
r1c1 r1c2longpuppy r1c3
r2c1dddf r2c2 r2c3
r3c1 r3c2 r3c3iiiiiiiiiiiiiiiiiiiiiiiii
,你可以,大概傳遞給enscript
。
原來的答案
如果您的CSV文件可以按摩到這個樣子
FILE.CSV
col1,col2,col3
----,----,----
r1c1,r1c2,r1c3
r2c1,r2c2,r2c3
r3c1,r3c2,r3c3
您可以通過翻譯逗號將其轉換爲PDF
到管道符號(|
)中並通過pandoc
運行它來轉換「管道表」成一個獨立的PDF
這樣的:
tr ',' '|' < file | pandoc -s -o result.pdf
文檔here。
using Libre Office:'soffice --headless --convert-to pdf:calc_pdf_Export input.csv' – hoijui