tomo2chin2 commited on
Commit
a1a59cd
·
verified ·
1 Parent(s): aeb964c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -12
app.py CHANGED
@@ -27,7 +27,7 @@ def render_fullpage_screenshot(html_code):
27
  try:
28
  driver = webdriver.Chrome(options=options)
29
 
30
- # 3) まずは適当なウィンドウサイズでページを開く
31
  driver.set_window_size(1200, 800)
32
  driver.get("file://" + tmp_path)
33
 
@@ -45,6 +45,7 @@ def render_fullpage_screenshot(html_code):
45
  )
46
 
47
  # 6) ページ全体の幅・高さを正確に取得
 
48
  scroll_width = driver.execute_script(
49
  "return Math.max("
50
  "document.body.scrollWidth, document.documentElement.scrollWidth)"
@@ -54,16 +55,13 @@ def render_fullpage_screenshot(html_code):
54
  "document.body.scrollHeight, document.documentElement.scrollHeight)"
55
  )
56
 
57
- # 7) ウィンドウサイズに2%のマージンを加える
58
- # 端が切れやすい場合に、余白をつけて確実に表示領域を広げる
59
- margin_width = int(scroll_width * 0.02) # 幅の2%
60
- margin_height = int(scroll_height * 0.02) # 高さの2%
61
 
62
- final_width = scroll_width + margin_width
63
- final_height = scroll_height + margin_height
64
-
65
- driver.set_window_size(final_width, final_height)
66
- time.sleep(2) # レイアウト再計算待ち
67
 
68
  # 念のためページ最上部にスクロール
69
  driver.execute_script("window.scrollTo(0, 0)")
@@ -89,8 +87,8 @@ iface = gr.Interface(
89
  fn=render_fullpage_screenshot,
90
  inputs=gr.Textbox(lines=15, label="HTMLコード入力"),
91
  outputs=gr.Image(type="pil", label="ページ全体のスクリーンショット"),
92
- title="Full Page Screenshot App",
93
- description="HTMLをヘッドレスブラウザでレンダリングし、ページ全体を1枚の画像として取得します(端に2%の余裕)。"
94
  )
95
 
96
  if __name__ == "__main__":
 
27
  try:
28
  driver = webdriver.Chrome(options=options)
29
 
30
+ # 3) まずはある程度のウィンドウサイズでページを開く
31
  driver.set_window_size(1200, 800)
32
  driver.get("file://" + tmp_path)
33
 
 
45
  )
46
 
47
  # 6) ページ全体の幅・高さを正確に取得
48
+ # bodyとdocumentElementの値を比較し、より大きい方を使用
49
  scroll_width = driver.execute_script(
50
  "return Math.max("
51
  "document.body.scrollWidth, document.documentElement.scrollWidth)"
 
55
  "document.body.scrollHeight, document.documentElement.scrollHeight)"
56
  )
57
 
58
+ # 上下方向に4%の余裕を加えた高さを計算
59
+ # (上下に2%ずつ、合計4%を足すイメージ)
60
+ adjusted_height = int(scroll_height * 1.04)
 
61
 
62
+ # 7) ウィンドウサイズを (幅はそのまま, 高さのみ4%増し) に設定
63
+ driver.set_window_size(scroll_width, adjusted_height)
64
+ time.sleep(2) # レイアウトが変わるので少し待つ
 
 
65
 
66
  # 念のためページ最上部にスクロール
67
  driver.execute_script("window.scrollTo(0, 0)")
 
87
  fn=render_fullpage_screenshot,
88
  inputs=gr.Textbox(lines=15, label="HTMLコード入力"),
89
  outputs=gr.Image(type="pil", label="ページ全体のスクリーンショット"),
90
+ title="Full Page Screenshot App (上下4%余裕)",
91
+ description="HTMLをヘッドレスブラウザでレンダリングし、ページ全体を1枚の画像として取得します。上下にだけ4%の余裕を加えます。"
92
  )
93
 
94
  if __name__ == "__main__":