naohiro701 commited on
Commit
fd6e006
·
verified ·
1 Parent(s): df26d41

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -13
app.py CHANGED
@@ -3,6 +3,8 @@ from pdf2image import convert_from_bytes
3
  from PIL import Image
4
  import io
5
  import zipfile
 
 
6
 
7
  # タイトルと説明
8
  st.title("PDFを高画質PNG画像に変換")
@@ -18,26 +20,29 @@ if uploaded_file is not None:
18
  # DPIの設定
19
  dpi = st.slider("解像度(dpi)を選択してください", min_value=100, max_value=3000, value=1000, step=100)
20
 
 
 
 
 
 
 
 
 
 
 
21
  if st.button("変換開始"):
22
  try:
23
  with st.spinner("PDFを画像に変換中..."):
24
- # Poppler のパスを指定(必要に応じて)
25
- # 例: Windowsの場合 'C:\\poppler-xx\\bin'
26
- # Mac/Linuxの場合通常は PATH に追加済み
27
- poppler_path = None # 必要に応じて設定
28
-
29
- # 例: Windowsの場合
30
- # poppler_path = 'C:\\poppler-xx\\bin'
31
-
32
- # 例: macOS/Linuxで Poppler が /usr/bin にある場合
33
- # poppler_path = '/usr/bin'
34
-
35
  # PDFを画像に変換
36
- images = convert_from_bytes(uploaded_file.read(), dpi=dpi, poppler_path=poppler_path)
 
 
 
 
37
 
38
  # ZIPファイルの作成
39
  zip_buffer = io.BytesIO()
40
- with zipfile.ZipFile(zip_buffer, "w") as zip_file:
41
  for i, image in enumerate(images):
42
  img_byte_arr = io.BytesIO()
43
  image.save(img_byte_arr, format='PNG')
 
3
  from PIL import Image
4
  import io
5
  import zipfile
6
+ import sys
7
+ import os
8
 
9
  # タイトルと説明
10
  st.title("PDFを高画質PNG画像に変換")
 
20
  # DPIの設定
21
  dpi = st.slider("解像度(dpi)を選択してください", min_value=100, max_value=3000, value=1000, step=100)
22
 
23
+ # Popplerのパス設定(Windowsユーザー向け)
24
+ poppler_path = None
25
+ if sys.platform.startswith("win"):
26
+ poppler_path = st.text_input(
27
+ "Popplerのパスを入力してください(Windowsユーザーのみ)",
28
+ value='C:\\poppler-xx\\bin' # デフォルト値を適宜変更
29
+ )
30
+ if not os.path.exists(poppler_path):
31
+ st.warning("指定されたPopplerのパスが存在しません。正しいパスを入力してください。")
32
+
33
  if st.button("変換開始"):
34
  try:
35
  with st.spinner("PDFを画像に変換中..."):
 
 
 
 
 
 
 
 
 
 
 
36
  # PDFを画像に変換
37
+ images = convert_from_bytes(
38
+ uploaded_file.read(),
39
+ dpi=dpi,
40
+ poppler_path=poppler_path
41
+ )
42
 
43
  # ZIPファイルの作成
44
  zip_buffer = io.BytesIO()
45
+ with zipfile.ZipFile(zip_buffer, "w", zipfile.ZIP_DEFLATED) as zip_file:
46
  for i, image in enumerate(images):
47
  img_byte_arr = io.BytesIO()
48
  image.save(img_byte_arr, format='PNG')