alexkueck commited on
Commit
e89df4a
1 Parent(s): 22bcf6d

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +31 -1
utils.py CHANGED
@@ -751,6 +751,19 @@ def create_picture(history, prompt):
751
  ########################################
752
  # Ausgabe in PDF des Chathistory
753
  ########################################
 
 
 
 
 
 
 
 
 
 
 
 
 
754
  def erstellePdf(file_path_download, ueberschrift, dic_history):
755
  # Initialisiere eine leere Listseinstellung ("flowables"), die später gefüllt wird
756
  elements = []
@@ -807,7 +820,9 @@ def erstellePdf(file_path_download, ueberschrift, dic_history):
807
 
808
 
809
  # Generiere das PDF-Dokument
810
- doc = SimpleDocTemplate(file_path_download, pagesize=paper_size)
 
 
811
  doc.build(elements)
812
 
813
 
@@ -849,6 +864,21 @@ def is_stop_word_or_prefix(s: str, stop_words: list) -> bool:
849
  return False
850
 
851
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
 
853
 
854
 
 
751
  ########################################
752
  # Ausgabe in PDF des Chathistory
753
  ########################################
754
+ #callback Methode, die auf jeder PDF Seite das Datum oben hinschreibt
755
+ def on_each_page(canvas, doc):
756
+ page_width, page_height = A4 # Oder das von Ihnen verwendete Seitenformat, z.B. A4
757
+ canvas.saveState()
758
+ canvas.setFont('Times-Roman', 10)
759
+ # Formatieren Sie das Datum nach Ihrem Wunsch
760
+ current_date = datetime.now().strftime("%Y-%m-%d")
761
+ print(current_date)
762
+ # Positionieren Sie das Datum oben rechts auf der Seite
763
+ canvas.drawRightString(page_width - 72, page_height - 28, current_date)
764
+ canvas.restoreState()
765
+
766
+ #PDF Inhalte zusammenstellen und PDF unter dem angegebene Pfad file_path_download ablegen
767
  def erstellePdf(file_path_download, ueberschrift, dic_history):
768
  # Initialisiere eine leere Listseinstellung ("flowables"), die später gefüllt wird
769
  elements = []
 
820
 
821
 
822
  # Generiere das PDF-Dokument
823
+ doc = CustomDocTemplate(file_path_download, pagesize=paper_size)
824
+ #on_each_page ist eine callback Methode, die auf jeder neuen PDF Seite ausgeführt wird
825
+ doc.onPage = on_each_page
826
  doc.build(elements)
827
 
828
 
 
864
  return False
865
 
866
 
867
+ ##########################################
868
+ # Klasse, die die SimpleDocTemplate überschreibt (für PDF Generierung)
869
+ # war nötig, da SimpleDocTemplate die on_each_page nicht ausgeführt hat - warum auch immer ...
870
+ ##########################################
871
+ class CustomDocTemplate(SimpleDocTemplate):
872
+ def handle_pageBegin(self):
873
+ # Sorgt dafür, dass die Standard-Page-Begin-Logik ausgeführt wird
874
+ self._handle_pageBegin()
875
+ # Jetzt können Sie das Canvas-Objekt über self.canv sicher verwenden
876
+ self.canv.saveState()
877
+ self.canv.setFont('Helvetica', 10)
878
+ current_date = datetime.now().strftime("%Y-%m-%d")
879
+ # Passen Sie hier die Positionierung an Ihre Bedürfnisse an
880
+ self.canv.drawRightString(550, 800, current_date) # Position anpassen
881
+ self.canv.restoreState()
882
 
883
 
884