Bỏ qua, tới nội dung
Tài liệu APIv1

O3O DocBuilder và chuyển đổi

Ma trận định dạng

Định dạng vào và ra của chuyển đổi, dựng tài liệu, điền mẫu và trích xuất; GET /v1/formats trả cùng ma trận này dưới dạng JSON.

Trong trang này

DocBuilder chia định dạng thành ba họ: văn bản (text), bảng tính (sheet) và trình chiếu (slide). Chuyển đổi chỉ diễn ra trong cùng một họ. Endpoint dưới đây trả ma trận hiện hành để chương trình của bạn kiểm tra trước khi gửi việc.

GET/v1/formats

Ma trận định dạng vào và ra của chuyển đổi, dựng tài liệu và điền mẫu.

Xác thực: BearerCộng đồngDoanh nghiệp

Tham số

  • Authorizationheaderbắt buộc
    Bearer <khoá API hoặc JWT>.
Đọc ma trận định dạng
curl -sS http://localhost:8080/v1/formats \
  -H "Authorization: Bearer O3O_DEMO_KEY"
const BASE_URL = "http://localhost:8080";
const HEADERS = { Authorization: "Bearer O3O_DEMO_KEY" };

const res = await fetch(`${BASE_URL}/v1/formats`, { headers: HEADERS });
if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
console.log(await res.json());
import requests

BASE_URL = "http://localhost:8080"
HEADERS = {"Authorization": "Bearer O3O_DEMO_KEY"}

r = requests.get(f"{BASE_URL}/v1/formats", headers=HEADERS, timeout=30)
if not r.ok:
    raise RuntimeError(f"{r.status_code}: {r.text}")
print(r.json())
<?php
$ch = curl_init("http://localhost:8080/v1/formats");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ["Authorization: Bearer O3O_DEMO_KEY"],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 30,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($body === false || $status >= 400) {
    throw new RuntimeException("HTTP $status: " . ($body === false ? curl_error($ch) : $body));
}
print_r(json_decode($body, true));
using System.Net.Http.Headers;

using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "O3O_DEMO_KEY");

using var res = await http.GetAsync("http://localhost:8080/v1/formats");
if (!res.IsSuccessStatusCode)
    throw new HttpRequestException($"{(int)res.StatusCode}: {await res.Content.ReadAsStringAsync()}");
Console.WriteLine(await res.Content.ReadAsStringAsync());
200families cho chuyển đổi, build theo type của kịch bản, template cho điền mẫu.
{
  "families": {
    "text": {
      "inputs": [
        "docx",
        "doc",
        "odt",
        "rtf",
        "txt",
        "html"
      ],
      "outputs": [
        "docx",
        "odt",
        "rtf",
        "txt",
        "html",
        "pdf",
        "png",
        "jpg"
      ]
    },
    "sheet": {
      "inputs": [
        "xlsx",
        "xls",
        "ods",
        "csv"
      ],
      "outputs": [
        "xlsx",
        "ods",
        "csv",
        "html",
        "pdf",
        "png",
        "jpg"
      ]
    },
    "slide": {
      "inputs": [
        "pptx",
        "ppt",
        "odp"
      ],
      "outputs": [
        "pptx",
        "odp",
        "pdf",
        "png",
        "jpg"
      ]
    }
  },
  "build": {
    "text": [
      "docx",
      "odt",
      "pdf"
    ],
    "sheet": [
      "xlsx",
      "ods",
      "pdf"
    ],
    "slides": [
      "pptx",
      "odp",
      "pdf"
    ]
  },
  "template": {
    "inputs": [
      "docx",
      "odt"
    ],
    "outputs": [
      "docx",
      "odt",
      "pdf"
    ]
  }
}

Yêu cầu GET không bị tính vào hạn mức và dùng được ở cả hai gói. Lỗi thường gặp: 401 unauthorized.

Chuyển đổi: nguồn và đích#

Hàng là định dạng nguồn, cột là định dạng đích của POST /v1/convert. Ô có dấu ✓ là cặp được hỗ trợ; cặp đánh dấu — trả 415 unsupported_format.

Nguồndocxodtrtftxthtmlpdfxlsxodscsvpptxodppngjpg
docx
doc
odt
rtf
txt
html
xlsx
xls
ods
csv
pptx
ppt
odp
HọNguồnĐích
textdocx, doc, odt, rtf, txt, htmldocx, odt, rtf, txt, html, pdf, png, jpg
sheetxlsx, xls, ods, csvxlsx, ods, csv, html, pdf, png, jpg
slidepptx, ppt, odppptx, odp, pdf, png, jpg

Dựng tài liệu#

type của kịch bảnĐịnh dạng lưu được
textdocx, odt, pdf
sheetxlsx, ods, pdf
slidespptx, odp, pdf

Điền mẫu#

Mẫu vàoĐích
docx, odtdocx, odt, pdf; mặc định là định dạng của chính mẫu

Trích xuất#

Ba endpoint /v1/extract/text, /v1/extract/meta/v1/extract/thumbnail nhận mọi định dạng nguồn trong bảng trên. Trích văn bản và ảnh thu nhỏ đi qua PDF trung gian, nên chọn được trang bất kỳ ở cả ba họ.

Cách nhận biết định dạng nguồn#

DocBuilder lấy định dạng nguồn từ tham số from; nếu không có thì từ đuôi của filename hoặc của tên tệp tải lên.

Font có sẵn#

Image DocBuilder v1 cài các font: Liberation Sans, Liberation Serif, Liberation Mono, Carlito, Caladea, DejaVu Sans, Noto Sans, Noto Serif. Carlito và Caladea có số đo chữ tương thích với Calibri và Cambria; Liberation Sans và Liberation Serif tương thích với Arial và Times New Roman, nên bố cục tài liệu Office thường giữ được. Tiếng Việt hiển thị đủ dấu với các font này.