Timothy Jaeryang Baek пре 4 месеци
родитељ
комит
8dcee6b6ed

+ 2 - 2
backend/open_webui/static/assets/pdf-style.css

@@ -26,7 +26,7 @@
 
 html {
 	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'NotoSans', 'NotoSansJP', 'NotoSansKR',
-		'NotoSansSC', 'STSong-Light', 'MSung-Light', 'HeiseiMin-W3', 'HYSMyeongJo-Medium', Roboto,
+		'NotoSansSC', 'Twemoji', 'STSong-Light', 'MSung-Light', 'HeiseiMin-W3', 'HYSMyeongJo-Medium', Roboto,
 		'Helvetica Neue', Arial, sans-serif;
 	font-size: 14px; /* Default font size */
 	line-height: 1.5;
@@ -40,7 +40,7 @@ html {
 
 body {
 	margin: 0;
-	color: #212529;
+	padding: 0;
 	background-color: #fff;
 	width: auto;
 }

BIN
backend/open_webui/static/fonts/Twemoji.ttf


+ 22 - 18
backend/open_webui/utils/pdf_generator.py

@@ -51,21 +51,25 @@ class PDFGenerator:
 
         # extends pymdownx extension to convert markdown to html.
         # - https://facelessuser.github.io/pymdown-extensions/usage_notes/
-        html_content = markdown(content, extensions=["pymdownx.extra"])
+        # html_content = markdown(content, extensions=["pymdownx.extra"])
 
         html_message = f"""
-            <div> {date_str} </div>
-            <div class="message">
+            <div>
                 <div>
-                    <h2>
+                    <h4>
                         <strong>{role.title()}</strong>
-                        <span style="font-size: 12px; color: #888;">{model}</span>
-                    </h2>
+                        <span style="font-size: 12px;">{model}</span>
+                    </h4>
+                    <div> {date_str} </div>
                 </div>
-                <pre class="markdown-section">
+                <br/>
+                <br/>
+
+                <div>
                     {content}
-                </pre>
+                </div>
             </div>
+            <br/>
           """
         return html_message
 
@@ -74,18 +78,15 @@ class PDFGenerator:
         return f"""
         <html>
             <head>
-                <meta charset="UTF-8">
-                <meta name="viewport" content="width=device-width, initial-scale=1.0">
+                <meta name="viewport" content="width=device-width, initial-scale=1.0" />
             </head>
             <body>
-                <div class="container"> 
-                    <div class="text-center">
-                        <h1>{self.form_data.title}</h1>
-                    </div>
-                    <div>
-                        {self.messages_html}
-                    </div>
+            <div>
+                <div>
+                    <h2>{self.form_data.title}</h2>
+                    {self.messages_html}
                 </div>
+            </div>
             </body>
         </html>
         """
@@ -114,9 +115,12 @@ class PDFGenerator:
             pdf.add_font("NotoSansKR", "", f"{FONTS_DIR}/NotoSansKR-Regular.ttf")
             pdf.add_font("NotoSansJP", "", f"{FONTS_DIR}/NotoSansJP-Regular.ttf")
             pdf.add_font("NotoSansSC", "", f"{FONTS_DIR}/NotoSansSC-Regular.ttf")
+            pdf.add_font("Twemoji", "", f"{FONTS_DIR}/Twemoji.ttf")
 
             pdf.set_font("NotoSans", size=12)
-            pdf.set_fallback_fonts(["NotoSansKR", "NotoSansJP", "NotoSansSC"])
+            pdf.set_fallback_fonts(
+                ["NotoSansKR", "NotoSansJP", "NotoSansSC", "Twemoji"]
+            )
 
             pdf.set_auto_page_break(auto=True, margin=15)