import gradio as gr from pypdf import PdfReader, PdfWriter def merge_pdfs(files): if not files: return None writer = PdfWriter() for f in files: reader = PdfReader(f.name) for page in reader.pages: writer.add_page(page) output_file = "merged.pdf" with open(output_file, "wb") as out_f: writer.write(out_f) return output_file with gr.Blocks(title="PDF Notes App") as demo: gr.Markdown( """ # 📄 PDF Notes App Upload multiple PDF files and merge them into a single PDF. """ ) pdfs = gr.File( file_types=[".pdf"], file_count="multiple", label="Upload PDF Files" ) merge_btn = gr.Button("Merge PDFs") output_pdf = gr.File(label="Merged PDF") merge_btn.click( fn=merge_pdfs, inputs=pdfs, outputs=output_pdf ) if __name__ == "__main__": demo.launch()