Spaces:
Sleeping
Sleeping
Download app.py from SafiUllahAdam/intro_apps: direct link, hf CLI and curl.
- Browser
- Download file 827 Bytes
-
https://huggingface.co/spaces/SafiUllahAdam/intro_apps/resolve/main/app.py
- Command line
-
hf download hf://spaces/SafiUllahAdam/intro_apps/app.py
-
curl -L -o app.py https://huggingface.co/spaces/SafiUllahAdam/intro_apps/resolve/main/app.py
827 Bytes
| 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}"}) | |