bluenevus commited on
Commit
52f175a
·
verified ·
1 Parent(s): bc4b939

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -9
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
- pdf.save(temp_file_path, compress_streams=True, compress=compress_level)
 
 
 
 
 
 
 
 
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: