Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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,
|
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 |
-
|
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=
|
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 |
-
|
|
|
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")
|