Webページとそのサブページを1つのPDFファイルに変換する方法はありますか?
最初にwkhtmltopdf
変換ツールをインストールします(このツールにはデスクトップ環境が必要です; source ):
Sudo apt install wkhtmltopdf
次に、複数のターゲットWebページ(それぞれが新しい行にある)のURLのリストを含むファイルを作成します。このファイルをurl-list.txt
と呼び、~/Downloads/PDF/
に配置しましょう。たとえば、コンテンツは次のようになります。
https://askubuntu.com/users/721082/tarek
https://askubuntu.com/users/566421/pa4080
次に、次のコマンドを実行します。これにより、各サイトURLのPDFファイルが生成され、コマンドが実行されるディレクトリに配置されます。
while read i; do wkhtmltopdf "$i" "$(echo "$i" | sed -e 's/https\?:\/\///' -e 's/\//-/g' ).pdf"; done < ~/Downloads/PDF/url-list.txt
ディレクトリ~/Downloads/PDF/
内で実行されるこのコマンドの結果は次のとおりです。
~/Downloads/PDF/$ ls -1 *.pdf
askubuntu.com-users-566421-pa4080.pdf
askubuntu.com-users-721082-tarek.pdf
上記のディレクトリで実行される次のコマンドで出力ファイルをマージします( source ):
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged-output.pdf $(ls -1 *.pdf)
結果は次のとおりです。
~/Downloads/PDF/$ ls -1 *.pdf
askubuntu.com-users-566421-pa4080.pdf
askubuntu.com-users-721082-tarek.pdf
merged-output.pdf
最初に、サイトのURLマップを含むファイル(url-list.txt
)を作成する必要があります。次のコマンドを実行します( 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
次に、上記のセクションの手順を実行する必要があります。
プロセスを自動化するために、すべてをスクリプトファイルにまとめることができます。
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
スクリプトの内容は次のとおりです。
#!/bin/sh
TARGET_SITE="$1"
wget --spider --force-html -r -l2 "$TARGET_SITE" 2>&1 | grep '^--' | awk '{ print $3 }' | grep -v '\.\(css\|js\|png\|gif\|jpg\|txt\)$' > url-list.txt
while read i; do wkhtmltopdf "$i" "$(echo "$i" | sed -e 's/https\?:\/\///' -e 's/\//-/g' ).pdf"; done < url-list.txt
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged-output.pdf $(ls -1 *.pdf)
上記のコンテンツをコピーし、nano
で使用: Shift+Insert ペースト用; Ctrl+O そして Enter 保存用; Ctrl+X 終了の場合
使用法:
元の質問に対する答え:
最初にパッケージenscript
をインストールします。これは '通常のファイルからpdf' 変換ツールです。
Sudo apt update && Sudo apt install enscript
次に、次のコマンドを実行します。コマンドは、output.pdf
およびそのサブディレクトリ内のすべてのphp
ファイルのコンテンツを含む/path/to/folder/
というファイルを生成します。 :
find /path/to/folder/ -type f -name '*.php' -exec printf "\n\n{}\n\n" \; -exec cat "{}" \; | enscript -o - | ps2pdf - output.pdf
このファイル を生成した私のシステムからの例:
find /var/www/wordpress/ -type f -name '*.php' -exec printf "\n\n{}\n\n" \; -exec cat "{}" \; | enscript -o - | ps2pdf - output.pdf