pa4*_*080 15
首先安装wkhtmltopdf转换工具(此工具需要桌面环境;源码):
sudo apt install wkhtmltopdf
Run Code Online (Sandbox Code Playgroud)然后创建一个文件,其中包含多个目标网页的 URL 列表(每个都在新行上)。让我们调用这个文件url-list.txt并将它放在~/Downloads/PDF/. 例如它的内容可以是:
https://askubuntu.com/users/721082/tarek
https://askubuntu.com/users/566421/pa4080
Run Code Online (Sandbox Code Playgroud)然后运行下一个命令,这将为每个站点 URL 生成一个 PDF 文件,位于执行命令的目录中:
while read i; do wkhtmltopdf "$i" "$(echo "$i" | sed -e 's/https\?:\/\///' -e 's/\//-/g' ).pdf"; done < ~/Downloads/PDF/url-list.txt
Run Code Online (Sandbox Code Playgroud)
此命令的结果 - 在目录中执行~/Downloads/PDF/- 是:
~/Downloads/PDF/$ ls -1 *.pdf
askubuntu.com-users-566421-pa4080.pdf
askubuntu.com-users-721082-tarek.pdf
Run Code Online (Sandbox Code Playgroud)通过在上述目录(source)中执行的下一个命令合并输出文件:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged-output.pdf $(ls -1 *.pdf)
Run Code Online (Sandbox Code Playgroud)
结果是:
~/Downloads/PDF/$ ls -1 *.pdf
askubuntu.com-users-566421-pa4080.pdf
askubuntu.com-users-721082-tarek.pdf
merged-output.pdf
Run Code Online (Sandbox Code Playgroud)首先,我们必须创建一个url-list.txt包含站点 URL 映射的文件 ( )。运行这些命令(source):
TARGET_SITE="https://www.yahoo.com/"
wget --spider --force-html -r -l2 "$TARGET_SITE" 2>&1 | grep '^--' | awk '{ print $3 }' | grep -v '\.\(css\|js\|png\|gif\|jpg\)$' > url-list.txt
Run Code Online (Sandbox Code Playgroud)然后我们需要完成上一节中的步骤。
为了自动化该过程,我们可以将所有内容整合到一个脚本文件中。
创建一个可执行文件,名为site-to-pdf.sh:
mkdir -p ~/Downloads/PDF/
touch ~/Downloads/PDF/site-to-pdf.sh
chmod +x ~/Downloads/PDF/site-to-pdf.sh
nano ~/Downloads/PDF/site-to-pdf.sh
Run Code Online (Sandbox Code Playgroud)脚本内容为:
sudo apt install wkhtmltopdf
Run Code Online (Sandbox Code Playgroud)
复制以上内容并nano使用:Shift+Insert为粘贴;Ctrl+O和Enter保存;Ctrl+X退出。
用法:
原始问题的答案:
首先安装包enscript,这是一个“常规文件到pdf”的转换工具:
https://askubuntu.com/users/721082/tarek
https://askubuntu.com/users/566421/pa4080
Run Code Online (Sandbox Code Playgroud)然后运行下一个命令,这将生成名为 的文件output.pdf,位于执行命令的目录中,该php文件将包含所有文件/path/to/folder/及其子目录的内容:
while read i; do wkhtmltopdf "$i" "$(echo "$i" | sed -e 's/https\?:\/\///' -e 's/\//-/g' ).pdf"; done < ~/Downloads/PDF/url-list.txt
Run Code Online (Sandbox Code Playgroud)例如,在我的系统中,生成了这个文件:
~/Downloads/PDF/$ ls -1 *.pdf
askubuntu.com-users-566421-pa4080.pdf
askubuntu.com-users-721082-tarek.pdf
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
7744 次 |
| 最近记录: |