From 864a9aad6a2d6ede85c0c3ad6312573f9a0804eb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Wed, 28 Nov 2018 05:11:58 +0100 Subject: [PATCH] pdf conversion (via libreoffice) and serving --- .gitignore | 1 + invoices.cgi | 4 ++++ invoices.sh | 3 +++ odtgen.sh | 13 ++++++++----- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 9c26be5..be77cba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ clients/ invoices/ senders/ +export/ .*.swp serverkey diff --git a/invoices.cgi b/invoices.cgi index 10aa8fc..261395f 100755 --- a/invoices.cgi +++ b/invoices.cgi @@ -82,6 +82,10 @@ case $info in . "$_EXEC/invoices.sh" update_invoice ;; + /export/*.pdf) + . "$_EXEC/cgilite/file.sh" + FILE "${info#/}" application/pdf + ;; *) REDIRECT /invoices ;; esac diff --git a/invoices.sh b/invoices.sh index b856849..56dd244 100755 --- a/invoices.sh +++ b/invoices.sh @@ -206,6 +206,9 @@ update_invoice(){ if [ "$(POST genpdf)" ]; then . $_EXEC/odtgen.sh genodt "$id" + lowriter --convert-to pdf --outdir export/ "export/${id}.odt" >/dev/null + REDIRECT "/export/${id}.pdf" + exit 0 fi REDIRECT "/invoices/$id" } diff --git a/odtgen.sh b/odtgen.sh index dbe2945..f9b7d62 100755 --- a/odtgen.sh +++ b/odtgen.sh @@ -59,6 +59,7 @@ odt_stylesheet(){ odt_content(){ local id="$1" sender="$2" client="$3" date="$4" number="$5" vat="$6" vatrate="$7" hourly="$8" + cat <<-EOF @@ -122,13 +123,13 @@ odt_content(){ $(HTML "$sender" |sed 'a')$(HTML "$sender" |sed -r 's;( \;)? \;;;g') $(HTML "$client" |sed 'a')$(HTML "$client" |sed -r 's;( \;)? \;;;g') Rechnung ${issuance} @@ -209,7 +210,10 @@ odt_content(){ genodt(){ local id="$1" exdir="export/$1" - [ -d "$exdir" ] && rm "$exdir/META-INF" + [ -d "$exdir" ] && { + rm "$exdir/content.xml" "$exdir/styles.xml" "$exdir/META-INF/manifest.xml" + rmdir "$exdir/META-INF/" "$exdir/" + } read -r sender client date number vat vatrate <<-EOF $(sed q "invoices/$id") @@ -231,9 +235,8 @@ genodt(){ [ -f "export/${id}.odt" ] && rm "export/${id}.odt" ( cd "$exdir" - zip "../${id}.odt" content.xml styles.xml META-INF/manifest.xml + zip -q "../${id}.odt" content.xml styles.xml META-INF/manifest.xml ) rm "$exdir/content.xml" "$exdir/styles.xml" "$exdir/META-INF/manifest.xml" rmdir "$exdir/META-INF/" "$exdir/" - # lowriter --headless --convert-to pdf "${odtdoc}" } -- 2.39.2