Spaces:
Sleeping
Sleeping
| import os | |
| from fastapi import FastAPI, File, UploadFile | |
| from io import BytesIO | |
| from PyPDF2 import PdfReader, PdfWriter | |
| from fastapi.responses import StreamingResponse | |
| app = FastAPI() | |
| def compress_pdf(input_pdf: BytesIO) -> BytesIO: | |
| reader = PdfReader(input_pdf) | |
| writer = PdfWriter() | |
| for page_num in range(len(reader.pages)): | |
| writer.add_page(reader.pages[page_num]) | |
| output_pdf = BytesIO() | |
| writer.write(output_pdf) | |
| output_pdf.seek(0) | |
| return output_pdf | |
| async def compress_pdf_endpoint(file: UploadFile = File(...)): | |
| input_pdf = BytesIO(await file.read()) | |
| compressed_pdf = compress_pdf(input_pdf) | |
| return StreamingResponse(compressed_pdf, media_type="application/pdf", headers={"Content-Disposition": f"attachment; filename={file.filename}"}) | |