# Enhanced DOCX to PDF Converter API Documentation ## Overview This is a professional FastAPI-based service for converting DOCX files to PDF with perfect formatting preservation, especially optimized for Arabic RTL text. ## Base URL ``` http://localhost:8000 ``` ## Endpoints ### 1. Health Check **GET** `/health` Check if the service is running. **Response:** ```json { "status": "healthy", "version": "2.0.0" } ``` ### 2. Convert DOCX to PDF **POST** `/convert` Convert a single DOCX file to PDF. Supports two input methods: #### Method 1: Multipart File Upload **Form Parameters:** - `file` (required): The DOCX file to convert #### Method 2: Base64 Encoded Content **Form Parameters:** - `file_content` (required): Base64 encoded DOCX file content - `filename` (required): Original filename with .docx extension **Response:** ```json { "success": true, "pdf_url": "/download/abc123/document.pdf", "message": "Conversion successful" } ``` **Error Response:** ```json { "success": false, "error": "Error description" } ``` ### 3. Batch Convert DOCX to PDF **POST** `/convert/batch` Convert multiple DOCX files to PDF in a single request. **Request Body:** ```json { "files": [ { "file_content": "base64_encoded_content_1", "filename": "document1.docx" }, { "file_content": "base64_encoded_content_2", "filename": "document2.docx" } ] } ``` **Response:** ```json [ { "success": true, "pdf_url": "/download/abc123/document1.pdf", "message": "Conversion successful" }, { "success": false, "error": "Error description" } ] ``` ### 4. Download PDF **GET** `/download/{temp_id}/{filename}` Download a converted PDF file. **Path Parameters:** - `temp_id`: Temporary directory ID from conversion response - `filename`: PDF filename from conversion response ## Error Handling The API uses standard HTTP status codes: - `200` - Success - `400` - Bad Request (invalid input) - `404` - Not Found (file not found) - `413` - Payload Too Large (file too big) - `500` - Internal Server Error (conversion failed) ## File Size Limits - Maximum file size: 50MB - Supported file type: DOCX only ## CORS Support The API includes full CORS support for direct browser integration. ## Example Usage ### Using cURL (File Upload) ```bash curl -X POST "http://localhost:8000/convert" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "file=@document.docx" ``` ### Using cURL (Base64) ```bash curl -X POST "http://localhost:8000/convert" \ -H "accept: application/json" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "file_content=$(base64 document.docx)" \ -d "filename=document.docx" ``` ### Using JavaScript (Fetch API) ```javascript const formData = new FormData(); formData.append('file', fileInput.files[0]); fetch('http://localhost:8000/convert', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { if (data.success) { window.open('http://localhost:8000' + data.pdf_url, '_blank'); } }); ```