]> git.plutz.net Git - invoices/commitdiff
pdf conversion (via libreoffice) and serving
authorPaul Hänsch <paul@plutz.net>
Wed, 28 Nov 2018 04:11:58 +0000 (05:11 +0100)
committerPaul Hänsch <paul@plutz.net>
Wed, 28 Nov 2018 04:11:58 +0000 (05:11 +0100)
.gitignore
invoices.cgi
invoices.sh
odtgen.sh

index 9c26be5e3c768910a3475f0c99afe66cb3c2f788..be77cba76ef9dedea508086615fe46fc1dae9e45 100644 (file)
@@ -1,5 +1,6 @@
 clients/
 invoices/
 senders/
+export/
 .*.swp
 serverkey
index 10aa8fc8726c6a79463d311738a6e96fd2341024..261395f9b417dbc1267de36db383959771c31418 100755 (executable)
@@ -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
index b8568493cbc689d30cd74f47a72bb052e7901d0c..56dd244a6472bcc0cb996ac25a20cb065e16fcfa 100755 (executable)
@@ -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"
 }
index dbe2945ff0bf92907bd90cfe748ef5c04178a6f0..f9b7d62cf920e7c0371eea17609203b5f59379dc 100755 (executable)
--- 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
        <?xml version="1.0" encoding="UTF-8"?>
        <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
@@ -122,13 +123,13 @@ odt_content(){
                </draw:frame><draw:frame draw:style-name="fr2" draw:name="Rahmen2" text:anchor-type="paragraph" svg:width="1.8228in">
                  <draw:text-box fo:min-height="1.8992in">
                    <text:p text:style-name="P5"><!--
-                 -->$(HTML "$sender" |sed 'a<text:line-break/>')<!--
+                 -->$(HTML "$sender" |sed -r 's;(&#13\;)?&#10\;;<text:line-break/>;g')<!--
                 --></text:p>
                  </draw:text-box>
                </draw:frame><draw:frame draw:style-name="fr3" draw:name="Rahmen1" text:anchor-type="paragraph" svg:y="1.3799in" svg:width="3.4398in">
                  <draw:text-box fo:min-height="1.3311in">
                    <text:p text:style-name="P3"><!--
-                   -->$(HTML "$client" |sed 'a<text:line-break/>')<!--
+                   -->$(HTML "$client" |sed -r 's;(&#13\;)?&#10\;;<text:line-break/>;g')<!--
                   --></text:p>
                  </draw:text-box>
                </draw:frame><text:span text:style-name="T3">Rechnung ${issuance}</text:span>
@@ -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}"
 }