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 |
|