From b4c923be76a14fea620fdd8ac3b3aaf8c17f73c4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= <paul@plutz.net> Date: Thu, 30 Nov 2023 17:20:47 +0100 Subject: [PATCH] PDF export functions --- doclist.sh | 1 + invoices.cgi | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/doclist.sh b/doclist.sh index f875b15..aeae79f 100644 --- a/doclist.sh +++ b/doclist.sh @@ -34,6 +34,7 @@ list_status() { [input type=hidden name=tid value="$(transid "$file")"] [input type=hidden name=session_key value="$SESSION_KEY"] [button type=submit name=action value=update_invoice . $(_ Update)] + [button type=submit name=action value=pdf_export . $(_ PDF)] ] EOF done diff --git a/invoices.cgi b/invoices.cgi index 35847fe..ae97b17 100755 --- a/invoices.cgi +++ b/invoices.cgi @@ -63,16 +63,22 @@ serverkey' >.gitignore ;; pdf_export) id="$(POST id)" file="$_DATA/${id}.kvd" tmp="$(randomid)" - type="$(DBM "$file" get type)" - [ -d "${_EXEC}/${type}/" ] \ - && . "${_EXEC}/${type}/print.sh" + DB3 open "$file" + type="$(DB3 get type)" + . "${_EXEC}/${type}/form.sh" + . "${_EXEC}/${type}/print.sh" - yield_html >"$_DATA/export/${tmp}.html" - lowriter --convert-to pdf --outdir "export/" "export/${tmp}.html" >/dev/null - pdftk "export/${tmp}.pdf" background "$_EXEC/$type/Background.pdf" output "export/${tmp}.pdf" - mv -- "export/${tmp}.pdf" "export/${id}.pdf" + yield_html >"$_DATA/export/${id}.html" + lowriter --convert-to pdf --outdir "export/" "export/${id}.html" >/dev/null + if [ -f "$_EXEC/$type/print.pdf" ]; then + pdftk "export/${id}.pdf" burst output "export/${id}_%04d.pdf" + pdftk "export/${id}_0001.pdf" background "$_EXEC/$type/print.pdf" output "export/${tmp}.pdf" + mv -- "export/${tmp}.pdf" "export/${id}_0001.pdf" + pdftk "export/${id}"_*.pdf cat output "export/${id}.pdf" + rm -- "export/${id}"_*.pdf "export/doc_data.txt" + fi rm -- "export/${id}.html" - redirect "/pdf/${id}/$(URL "${filenamestring}.pdf")" + REDIRECT "/pdf/${id}/$(URL "${filenamestring}.pdf")" ;; *) REDIRECT / @@ -94,6 +100,10 @@ esac && . "${_EXEC}/${type}/form.sh" yield_form ;; + /pdf/*/*.pdf) + id="${PATH_INFO#/pdf/}" id="${id%%/*}" + FILE "$_DATA/export/${id}.pdf" + ;; *) REDIRECT / ;; esac -- 2.39.5