File size: 946 Bytes
f8df900
 
c7865c7
f8df900
85348b1
f8df900
 
85348b1
c7865c7
1fb2ec4
c7865c7
 
 
f8df900
 
 
c7865c7
 
1fb2ec4
 
c7865c7
 
85348b1
c7865c7
 
1fb2ec4
 
c7865c7
 
 
f8df900
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import gradio as gr
import PyPDF2
import os

def merge_pdfs(pdf_files):
    merger = PyPDF2.PdfMerger()
    
    for pdf_file in pdf_files:
        merger.append(pdf_file.name)
    
    output_path = "merged.pdf"
    merger.write(output_path)
    merger.close()
    
    return output_path

def update_preview(pdf_files):
    return "\n".join([f.name for f in pdf_files])

with gr.Blocks() as iface:
    gr.Markdown("# PDF Merger")
    gr.Markdown("Upload multiple PDF files to merge them into a single PDF.")
    
    pdf_files = gr.File(file_count="multiple", file_types=[".pdf"], label="Upload PDFs")
    preview = gr.Textbox(label="Files to be merged (in order)", lines=5, interactive=False)
    merge_button = gr.Button("Merge PDFs")
    output = gr.File(label="Merged PDF")

    pdf_files.change(update_preview, inputs=[pdf_files], outputs=[preview])
    merge_button.click(merge_pdfs, inputs=[pdf_files], outputs=[output])

iface.launch()