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