docs: add detailed README for installation and API usage

This commit is contained in:
huanld
2026-05-18 15:21:36 +07:00
parent 29af996544
commit 3bbc3b00c2
+82
View File
@@ -0,0 +1,82 @@
# Hướng Dẫn Cài Đặt và Sử Dụng Excel To PDF Service
Đây là service độc lập chuyên dùng để chuyển đổi file Excel sang PDF, sử dụng Syncfusion XlsIORenderer (chạy trên .NET 8).
## 1. Cài đặt làm Windows Service (Chạy ngầm)
Để service tự động chạy cùng hệ thống và chạy ngầm (không hiện cửa sổ đen), bạn hãy làm theo các bước sau:
1. **Mở PowerShell dưới quyền Admin** (Run as Administrator)
2. Chạy lệnh sau để tạo service:
```powershell
sc.exe create "ExcelToPdfService" binPath= "C:\Users\huanld\Desktop\ExcelToPdfService-deploy\ExcelToPdfService.exe" start= auto
```
*(Lưu ý: Nếu bạn di chuyển folder `ExcelToPdfService-deploy` đi chỗ khác, hãy cập nhật lại đường dẫn `binPath` ở trên cho chính xác)*
3. Bật service:
```powershell
sc.exe start "ExcelToPdfService"
```
> **Cách xóa service (nếu muốn gỡ bỏ):**
> `sc.exe stop "ExcelToPdfService"`
> `sc.exe delete "ExcelToPdfService"`
---
## 2. API Endpoints
Mặc định Service sẽ chạy ở cổng **5200**: `http://localhost:5200`
Bạn có thể gọi API bằng Postman, Axios, HttpClient, hoặc bất cứ công cụ nào hỗ trợ REST API.
### API 1: Convert file bằng đường dẫn có sẵn trên Server (Khuyên dùng)
Dùng khi file Excel và Service nằm trên cùng một máy (hoặc cùng map chung ổ đĩa mạng).
- **URL:** `POST http://localhost:5200/api/ExcelToPdf/convert-by-path`
- **Body (JSON):**
```json
{
"FilePath": "C:\\Users\\huanld\\Desktop\\PTSC STR\\SWG-PTSC-70-PL-PLI-T01-FUR-0001.xlsx",
"PrintArea": "A1:G50", // Tuỳ chọn (để null nếu muốn in hết)
"Landscape": true // Tuỳ chọn (true = in ngang, false = in dọc)
}
```
- **Kết quả:** Trả về trực tiếp nội dung file PDF (dạng File Download - `application/pdf`).
### API 2: Convert file bằng cách Upload trực tiếp
Dùng khi bạn muốn upload file trực tiếp từ Client lên Service để lấy file PDF về. (Hỗ trợ upload tối đa 50MB).
- **URL:** `POST http://localhost:5200/api/ExcelToPdf/convert?landscape=true&printArea=A1:G50`
- **Body (Form-Data):**
- Key: `file` (Kiểu File)
- Value: Chọn file `.xlsx` hoặc `.xls`
- **Kết quả:** Trả về trực tiếp file PDF để tải xuống.
### API 3: Health Check
Dùng để kiểm tra xem Service có đang hoạt động hay không.
- **URL:** `GET http://localhost:5200/api/ExcelToPdf/health`
- **Kết quả (JSON):**
```json
{
"status": "ok",
"version": "1.0.0",
"time": "2026-05-18T08:15:30Z"
}
```
---
## 3. Cấu hình (appsettings.json)
Bạn có thể chỉnh sửa cổng mạng (port) hoặc License Key của Syncfusion bằng cách mở file `appsettings.json` trong cùng thư mục:
```json
{
"Syncfusion": {
"LicenseKey": "MjExMDkzMEAzMjMxMmUzMTJlMzMzNWd1RGM1NVFmUUMzWmZlN0dCc3NadUJyM1RUYVh1SHVSS1B2Tzdwa0NhcE09"
},
"Urls": "http://0.0.0.0:5200"
}
```
*Lưu ý: Nếu sửa file `appsettings.json`, bạn cần Restart lại Windows Service (trong `services.msc`) để thay đổi có hiệu lực.*