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()