Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -30,18 +30,19 @@ def compress_pdf(input_file, url, strength):
|
|
30 |
initial_size = pdf_content.tell()
|
31 |
pdf_content.seek(0)
|
32 |
|
33 |
-
if strength == "Low":
|
34 |
-
compress_level = pikepdf.compress.CompressSettings(level=1)
|
35 |
-
elif strength == "Medium":
|
36 |
-
compress_level = pikepdf.compress.CompressSettings(level=2)
|
37 |
-
else: # High
|
38 |
-
compress_level = pikepdf.compress.CompressSettings(level=3)
|
39 |
-
|
40 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as temp_file:
|
41 |
temp_file_path = temp_file.name
|
42 |
|
43 |
pdf = pikepdf.Pdf.open(pdf_content)
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
# Check the compression ratio achieved
|
47 |
compressed_size = os.path.getsize(temp_file_path)
|
@@ -56,7 +57,7 @@ def compress_pdf(input_file, url, strength):
|
|
56 |
return temp_file_path, f"PDF compressed successfully! Compression achieved: {compression_percentage:.2f}%"
|
57 |
except Exception as e:
|
58 |
return None, f"Error compressing PDF: {str(e)}"
|
59 |
-
|
60 |
def process_and_compress(input_file, url, strength):
|
61 |
output_file, message = compress_pdf(input_file, url, strength)
|
62 |
if output_file:
|
|
|
30 |
initial_size = pdf_content.tell()
|
31 |
pdf_content.seek(0)
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as temp_file:
|
34 |
temp_file_path = temp_file.name
|
35 |
|
36 |
pdf = pikepdf.Pdf.open(pdf_content)
|
37 |
+
|
38 |
+
if strength == "Low":
|
39 |
+
compression_params = dict(compress_streams=True, object_stream_mode=pikepdf.ObjectStreamMode.disable)
|
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 |
|
47 |
# Check the compression ratio achieved
|
48 |
compressed_size = os.path.getsize(temp_file_path)
|
|
|
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, strength):
|
62 |
output_file, message = compress_pdf(input_file, url, strength)
|
63 |
if output_file:
|