Ankündigung

Einklappen
Keine Ankündigung bisher.

PDF Erzeugen

Einklappen
X

PDF Erzeugen

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • PDF Erzeugen

    Schönen guten Morgen zusammen,

    ich hänge mal wieder an einem Problem und komm nicht weiter.

    Folgende Aufgabe:
    aus rund 6000 Datensätzen aus einer Datengruppe möchte ich nach Vorlage druckfähige pdf-Dateien erzeugen und möglichst
    ein einem von mir bestimmten Pfad speichern.

    Grundsätzlich funktioniert die Dokumentenerstellung auch, nur ab einer gewissen Anzahl läuft das System auf einen Server Error.

    Mein Gedanke wäre ein groovy Prozess der genau das auf Knopfdruck bewerkstelligt. (Irgendwo habe ich sowas mal gesehen, find es aber leider nicht mehr).

    Hat hier vielleicht jemand einen Tipp??

    Herzlichen Dank und schönes Wochenende im voraus.

  • #2
    Hallo,

    spontan würde ich mal iText versuchen (https://itextpdf.com/de).
    Hiermit kann man PDFs aus einem Groovy-Prozess heraus Erstellen/Editieren.
    Die Lib ist im Intrexx-Standard mit drin.

    Leider ist das keine schnelle Lösung.
    Was entsteht den für ein Server Error bei der momentanen Dokumentenerstellung?

    Kommentar


    • #3
      Moin Patrick,

      wenn ich 500 Datensätze in der Tabelle darstelle (mehr lässt intrexx wohl nicht zu) und drucken will kommt nach einer Weile "502 -Error".

      Das Problem ist wohl die Menge an Datensätzen.

      Habe auch versucht LibreOffice per groovy anzustoßen...
      Funktioniert grundsätzlich, aber die Daten werden nicht abgefragt, sondern die nackte Vorlage (ohne Werte) exportiert.

      Kommentar


      • #4
        Kannst du dem Logfile die genaue Fehlermeldung entnehmen?
        Evtl. läuft der Speicher voll. Du könntest mal versuchen den Speicher vom Portal zu erhöhen.
        Wie hoch ist dieser aktuell? Default ist 512MB. Damit kommt man aber recht schnell an seine Grenzen.

        Kommentar


        • #5
          Hallo Martin,

          im Logfile schaut das ganze dann so aus:

          Code:
          ERROR 2020-10-12T09:10:29,973Z - de.uplanet.lucy.server.report.ReportIxServlet[http-nio-0.0.0.0-1337-exec-4]
          Error while processing reporting request.
          org.apache.catalina.connector.ClientAbortException : java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
          at org.apache.catalina.connector.OutputBuffer.realWri teBytes(OutputBuffer.java:372) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at org.apache.catalina.connector.OutputBuffer.flushBy teBuffer(OutputBuffer.java:841) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at org.apache.catalina.connector.OutputBuffer.append( OutputBuffer.java:746) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at org.apache.catalina.connector.OutputBuffer.writeBy tes(OutputBuffer.java:407) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at org.apache.catalina.connector.OutputBuffer.write(O utputBuffer.java:385) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at org.apache.catalina.connector.CoyoteOutputStream.w rite(CoyoteOutputStream.java:96) ~[tomcat-embed-core-8.5.57-patched.jar:8.5.57]
          at de.uplanet.io.IOHelper.copyStream(Unknown Source) ~[ix-common.jar:9.2.0.20190423.195621]
          at de.uplanet.lucy.server.report.ReportIxServlet.serv ice(Unknown Source) [update/:?]
          ...
          ... 82 more
          Der andere Ansatz war:
          Code:
          import de.uplanet.scripting.groovy.util.Safely
          
          def pOut = new StringBuffer()
          def pErr = new StringBuffer()
          
          def proc = ["""E:\Program Files\LibreOffice\program\soffice.exe --print-to-file --printer-name "Microsoft Print to PDF" E:\Download\intrexx_1903\Inventur_20.odt --outdir E:\Export -headless"""].execute()
          
          proc.consumeProcessOutput(pOut, pErr)
          proc.waitForOrKill(10000) // 10 seconds
          Aber da werden die Felder nicht befüllt.

          Kommentar


          • #6
            Sieht nicht nach einem Speicher-Fehler aus.
            Vielleicht ist ein Datensatz drunter, der bei der PDF-Erstellung Probleme macht.
            Wäre es möglich, die Generierung mal mit einem Filter häppchenweise zu versuchen?

            Kommentar


            • #7
              Hallo Patrick,

              einen fehlerhaften Datensatz schließe ich mal ganz mutig aus weil wenn der "Druck in Datei" in LibreOffice ausgeführt wird läuft das ganze durch.

              Kommentar


              • #8
                Zitat von MartinW Beitrag anzeigen
                Evtl. läuft der Speicher voll. Du könntest mal versuchen den Speicher vom Portal zu erhöhen.
                Wie hoch ist dieser aktuell? Default ist 512MB. Damit kommt man aber recht schnell an seine Grenzen.
                Kannst du da auch noch drauf eingehen? :-)

                Kommentar


                • #9
                  Oh, entschuldige Martin,

                  Intrexx hat max. 2GB zur Verfügung.
                  Aber eine außergewöhnliche Speicherlast wird gar nicht erzeugt da ja keine Daten im Dokument ankommen (über das Script).
                  Will ich das Dokument über die Intrexx eigene Schnittstelle erzeugen kommt nach einer Weile besagter Fehler.
                  Angehängte Dateien

                  Kommentar

                  Lädt...
                  X