สามารถทำการใส่การจัดการไฟล์ในส่วนของ API ในการแปลงไฟล์ PDF เป็นภาพได้แล้วค่ะ โดย
โค้ด: เลือกทั้งหมด
from fastapi import FastAPI, Request
from pydantic import BaseModel
import uvicorn
import base64
import subprocess
app =FastAPI()
class Pdf_base64(BaseModel): #สร้างคลาสเพื่อรับ bastุุุ64 ในรูปแบบ str
pdf_base64: str
@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
#ในส่วนนี้จะเป็นการแปลงไฟล์จาก base64 ไปเป็น PDF
with open(r'C:\Users\fonfo\pdf-toolkits\lernpython.pdf', 'wb') as theFile:
theFile.write(base64.b64decode(request.pdf_base64))
#ในส่วนนี้จะเป็นการแปลงไฟล์จาก PDF ไปเป็น ภาพ
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf C:\Users\fonfo\pdf-toolkits\lernpython.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
return "success" #เมื่อสำเร็จให้ทำการแสดงข้อความว่า success
ผลลัพธ์ที่ได้
จะมีไฟล์ PDF และไฟล์ ภาพตามโค้ดดิ้งที่ได้โค้ดไว้ด้านบนโดยไฟล์ PDFจะมีชื่อว่า lernpython.pdf และไฟล์ภาพที่แปลงมาจะมีชื่อว่า lernpython.jpg
สามารถทดสอบใน postman คือ นำ url http ://127.0.0.1:8000/api_pdftopic ไปทดสอบ และใส่ base64 ที่มีตามภาพด้านล่าง จากนั้นกด send
- นำ URL ไปทดสอบใน Postman.png (24.64 KiB) Viewed 919 times
จะมีข้อความ success แปลว่าไฟล์ได้ทำการถูกสร้างสำเร็จแล้ว
- ข้อความ success.png (9.13 KiB) Viewed 919 times
เมื่อกลับมาดูที่โฟร์เดอร์จะพบไฟล์ 2 ไฟล์ที่ถูกสร้างขึ้น โดยมีไฟล์ PDF ที่แปลงจาก base64 และไฟล์ ภาพที่แปลงจาก ไฟล์ PDF
- เมื่อกลับมาดูที่โฟร์เดอร์จะไฟล์ 2 ไฟล์ที่ถูกสร้างขึ้น.png (3.16 KiB) Viewed 919 times