soiz1 commited on
Commit
8253852
·
verified ·
1 Parent(s): 888cd71

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -7
app.py CHANGED
@@ -5,7 +5,7 @@ import img2pdf
5
  import tempfile
6
  import os
7
 
8
- def downscale_pdf(pdf_file, max_width=3000, dpi=150):
9
  with tempfile.TemporaryDirectory() as tmpdir:
10
  # ステップ 1: PDF → 画像
11
  images = convert_from_path(pdf_file.name, dpi=300, fmt='jpeg', output_folder=tmpdir)
@@ -13,8 +13,7 @@ def downscale_pdf(pdf_file, max_width=3000, dpi=150):
13
  downscaled_images = []
14
  for i, img in enumerate(images):
15
  w, h = img.size
16
- total_px = w * h
17
- print(f"Original Page {i+1}: {w}x{h} = {total_px}")
18
 
19
  # サイズ制限
20
  if w > max_width:
@@ -22,16 +21,20 @@ def downscale_pdf(pdf_file, max_width=3000, dpi=150):
22
  new_w = int(w * ratio)
23
  new_h = int(h * ratio)
24
  img = img.resize((new_w, new_h), Image.LANCZOS)
25
- print(f"Downscaled Page {i+1}: {new_w}x{new_h} = {new_w * new_h}")
26
-
 
 
 
27
  tmp_image_path = os.path.join(tmpdir, f"page_{i+1}.jpg")
28
- img.save(tmp_image_path, "JPEG", quality=95)
29
  downscaled_images.append(tmp_image_path)
30
 
31
  # ステップ 2: 画像 → PDF
32
  output_pdf_path = os.path.join(tmpdir, "downscaled.pdf")
33
  with open(output_pdf_path, "wb") as f:
34
- f.write(img2pdf.convert(downscaled_images))
 
35
 
36
  # ✅ Gradio返却用に一時ファイルにコピー
37
  final_pdf_file = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf")
 
5
  import tempfile
6
  import os
7
 
8
+ def downscale_pdf(pdf_file, max_width=3000, target_dpi=150):
9
  with tempfile.TemporaryDirectory() as tmpdir:
10
  # ステップ 1: PDF → 画像
11
  images = convert_from_path(pdf_file.name, dpi=300, fmt='jpeg', output_folder=tmpdir)
 
13
  downscaled_images = []
14
  for i, img in enumerate(images):
15
  w, h = img.size
16
+ print(f"Original Page {i+1}: {w}x{h} = {w * h} px")
 
17
 
18
  # サイズ制限
19
  if w > max_width:
 
21
  new_w = int(w * ratio)
22
  new_h = int(h * ratio)
23
  img = img.resize((new_w, new_h), Image.LANCZOS)
24
+ print(f"Downscaled Page {i+1}: {new_w}x{new_h} = {new_w * new_h} px")
25
+ else:
26
+ new_w, new_h = w, h
27
+ print(f"Page {i+1}: サイズ変更なし")
28
+
29
  tmp_image_path = os.path.join(tmpdir, f"page_{i+1}.jpg")
30
+ img.save(tmp_image_path, "JPEG", quality=90)
31
  downscaled_images.append(tmp_image_path)
32
 
33
  # ステップ 2: 画像 → PDF
34
  output_pdf_path = os.path.join(tmpdir, "downscaled.pdf")
35
  with open(output_pdf_path, "wb") as f:
36
+ # ✅ DPIを指定してPDF内の実寸を制御
37
+ f.write(img2pdf.convert(downscaled_images, dpi=target_dpi))
38
 
39
  # ✅ Gradio返却用に一時ファイルにコピー
40
  final_pdf_file = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf")