Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -5,7 +5,7 @@ import io
|
|
5 |
import tempfile
|
6 |
import os
|
7 |
|
8 |
-
def compress_pdf(input_file, url
|
9 |
if input_file is None and (url is None or url.strip() == ""):
|
10 |
return None, "Please provide either a file or a URL."
|
11 |
|
@@ -35,12 +35,8 @@ def compress_pdf(input_file, url, strength):
|
|
35 |
|
36 |
pdf = pikepdf.Pdf.open(pdf_content)
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
elif strength == "Medium":
|
41 |
-
compression_params = dict(compress_streams=True, object_stream_mode=pikepdf.ObjectStreamMode.preserve)
|
42 |
-
else: # High
|
43 |
-
compression_params = dict(compress_streams=True, object_stream_mode=pikepdf.ObjectStreamMode.generate)
|
44 |
|
45 |
pdf.save(temp_file_path, **compression_params)
|
46 |
|
@@ -57,9 +53,9 @@ def compress_pdf(input_file, url, strength):
|
|
57 |
return temp_file_path, f"PDF compressed successfully! Compression achieved: {compression_percentage:.2f}%"
|
58 |
except Exception as e:
|
59 |
return None, f"Error compressing PDF: {str(e)}"
|
60 |
-
|
61 |
-
def process_and_compress(input_file, url
|
62 |
-
output_file, message = compress_pdf(input_file, url
|
63 |
if output_file:
|
64 |
return output_file, message
|
65 |
else:
|
@@ -70,14 +66,13 @@ with gr.Blocks() as demo:
|
|
70 |
with gr.Row():
|
71 |
input_file = gr.File(label="Upload PDF")
|
72 |
url_input = gr.Textbox(label="Or enter PDF URL")
|
73 |
-
strength = gr.Radio(["Low", "Medium", "High"], label="Compression Strength", value="Medium", info="Low: Minimal compression, Medium: Moderate compression, High: Maximum compression")
|
74 |
compress_btn = gr.Button("Compress")
|
75 |
output_file = gr.File(label="Download Compressed PDF")
|
76 |
message = gr.Textbox(label="Message")
|
77 |
|
78 |
compress_btn.click(
|
79 |
process_and_compress,
|
80 |
-
inputs=[input_file, url_input
|
81 |
outputs=[output_file, message]
|
82 |
)
|
83 |
|
|
|
5 |
import tempfile
|
6 |
import os
|
7 |
|
8 |
+
def compress_pdf(input_file, url):
|
9 |
if input_file is None and (url is None or url.strip() == ""):
|
10 |
return None, "Please provide either a file or a URL."
|
11 |
|
|
|
35 |
|
36 |
pdf = pikepdf.Pdf.open(pdf_content)
|
37 |
|
38 |
+
# Always use the highest compression setting
|
39 |
+
compression_params = dict(compress_streams=True, object_stream_mode=pikepdf.ObjectStreamMode.generate)
|
|
|
|
|
|
|
|
|
40 |
|
41 |
pdf.save(temp_file_path, **compression_params)
|
42 |
|
|
|
53 |
return temp_file_path, f"PDF compressed successfully! Compression achieved: {compression_percentage:.2f}%"
|
54 |
except Exception as e:
|
55 |
return None, f"Error compressing PDF: {str(e)}"
|
56 |
+
|
57 |
+
def process_and_compress(input_file, url):
|
58 |
+
output_file, message = compress_pdf(input_file, url)
|
59 |
if output_file:
|
60 |
return output_file, message
|
61 |
else:
|
|
|
66 |
with gr.Row():
|
67 |
input_file = gr.File(label="Upload PDF")
|
68 |
url_input = gr.Textbox(label="Or enter PDF URL")
|
|
|
69 |
compress_btn = gr.Button("Compress")
|
70 |
output_file = gr.File(label="Download Compressed PDF")
|
71 |
message = gr.Textbox(label="Message")
|
72 |
|
73 |
compress_btn.click(
|
74 |
process_and_compress,
|
75 |
+
inputs=[input_file, url_input],
|
76 |
outputs=[output_file, message]
|
77 |
)
|
78 |
|