soiz1 commited on
Commit
faa9545
·
verified ·
1 Parent(s): 3b2d5b2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -20
app.py CHANGED
@@ -1,36 +1,34 @@
1
  import gradio as gr
2
  import subprocess
3
- import os
4
 
5
- def compress_pdf(input_pdf):
6
  output_pdf = "/tmp/output.pdf"
7
 
8
- # GhostscriptコマンドでPDFを軽量化
9
- result = subprocess.run(
10
- ["gs", "-sDEVICE=pdfwrite",
11
- "-dPDFSETTINGS=/screen", # 軽量化レベル(/ebook や /printer も選べる)
12
- "-dNOPAUSE",
13
- "-dBATCH",
14
- "-dQUIET",
15
- f"-sOutputFile={output_pdf}",
16
- input_pdf],
17
- stdout=subprocess.PIPE,
18
- stderr=subprocess.PIPE
19
- )
20
 
21
- # エラー処理
22
  if result.returncode != 0:
23
  return f"エラー: {result.stderr.decode()}", None
24
 
25
- return "圧縮完了", output_pdf
26
 
27
- # Gradioインターフェース
28
  demo = gr.Interface(
29
- fn=compress_pdf,
30
  inputs=gr.File(file_types=[".pdf"]),
31
  outputs=[gr.Text(), gr.File()],
32
- title="PDF軽量化(Ghostscript)",
33
- description="PDFファイルをGhostscriptで軽量化します(/screenモード)"
34
  )
35
 
36
  demo.launch()
 
1
  import gradio as gr
2
  import subprocess
 
3
 
4
+ def rasterize_pdf(input_pdf):
5
  output_pdf = "/tmp/output.pdf"
6
 
7
+ cmd = [
8
+ "gs",
9
+ "-o", output_pdf,
10
+ "-sDEVICE=pdfwrite",
11
+ "-dFILTERVECTOR",
12
+ "-dCompatibilityLevel=1.4",
13
+ "-dPDFSETTINGS=/screen",
14
+ "-dNOPAUSE",
15
+ "-dBATCH",
16
+ "-dQUIET",
17
+ input_pdf
18
+ ]
19
 
20
+ result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
21
  if result.returncode != 0:
22
  return f"エラー: {result.stderr.decode()}", None
23
 
24
+ return "ラスタライズ完了", output_pdf
25
 
 
26
  demo = gr.Interface(
27
+ fn=rasterize_pdf,
28
  inputs=gr.File(file_types=[".pdf"]),
29
  outputs=[gr.Text(), gr.File()],
30
+ title="PDFラスタライズ変換(Ghostscript)",
31
+ description="SVGベクターPDFをビットマップ化PDFに変換し、Audiveris用に軽量化します。"
32
  )
33
 
34
  demo.launch()