Inicio rápido
Requisito previo: Instalación. Los ejemplos coinciden con los paquetes @dragon708/* de este playground (línea docmind-pdf ^2.2.x, shared ^1.2.x, resto según package.json).
Opciones (tipos)
- Navegador —
BrowserAnalyzeOptions:{ signal?: AbortSignal; ocr?: { langs?: string; signal?: AbortSignal } }. - Node —
NodeAnalyzeOptions:{ signal?: AbortSignal; pdf?: PdfAnalyzeOptions; ocr?: OcrOptions }, dondepdf.ocresoff|auto|forceypdf.ocrLangs/ocr.langsindican idioma para Tesseract / PDF.
No hay campos públicos output, runtime ni language de primer nivel en el SDK (eran documentación antigua). Usa ocr.langs (y pdf.ocrLangs en Node) para el idioma.
Navegador — analyzeFile
import { analyzeFile } from "@dragon708/docmind-browser";
import "@dragon708/docmind-docx";
async function analizarSubida(file: File) {
return analyzeFile(file, {
signal: undefined,
ocr: { langs: "eng" },
});
}Navegador — extractText / convertToHtml / runOcr
import { extractText, convertToHtml, runOcr } from "@dragon708/docmind-browser";
import "@dragon708/docmind-docx";
async function facetas(file: File) {
const opts = { ocr: { langs: "eng" } };
const text = await extractText(file, opts);
const html = await convertToHtml(file, opts);
const ocr = await runOcr(file, opts);
return { text, html, ocr };
}Navegador — detectFileKind
import { detectFileKind } from "@dragon708/docmind-browser";
const kind = detectFileKind(file);Node — bytes + analyzeFile
import { analyzeFile } from "@dragon708/docmind-node";
import type { DetectFileKindInput } from "@dragon708/docmind-shared";
async function analizarBytes(
data: Uint8Array,
name?: string,
mimeType?: string,
) {
const input = { data, name, mimeType } as DetectFileKindInput;
return analyzeFile(input, {
pdf: { ocr: "auto", ocrLangs: "eng" },
ocr: { langs: "eng" },
});
}Node — ruta como string
import { analyzeFile } from "@dragon708/docmind-node";
async function analizarRuta(p: string) {
return analyzeFile(p, {
pdf: { ocr: "auto" },
});
}Node — readFileToInput + extractText
import { extractText, readFileToInput } from "@dragon708/docmind-node";
async function textoDesdeDisco(path: string) {
const input = await readFileToInput(path);
return extractText(input, { pdf: { ocr: "off" } });
}En PDF escaneados (sin capa de texto), usa pdf: { ocr: "auto" } (o force) en lugar de off; si no, extractText puede devolver texto vacío con needsOCR: true. La acción extract-text del playground mapea ocrMode a pdf.ocr.
Navegador — getCapabilities / explainAnalysisPlan
import { getCapabilities, explainAnalysisPlan } from "@dragon708/docmind-browser";
import "@dragon708/docmind-docx";
async function introspeccion(file: File) {
const capabilities = await getCapabilities(file);
const plan = await explainAnalysisPlan(file, {
intent: "analyzeFile",
ocr: { mode: "auto", langs: "eng" },
});
return { capabilities, plan };
}Node — getCapabilities / explainAnalysisPlan
import { getCapabilities, explainAnalysisPlan } from "@dragon708/docmind-node";
import type { DetectFileKindInput } from "@dragon708/docmind-shared";
async function introspeccionBytes(input: DetectFileKindInput) {
const capabilities = await getCapabilities(input);
const plan = await explainAnalysisPlan(input, {
intent: "extractText",
pdf: { ocr: "auto", ocrLangs: "eng" },
ocr: { langs: "eng" },
});
return { capabilities, plan };
}Node — ruta con OCR fuerte
Usa runOcr: el paquete aplica política PDF forzada donde corresponde; las imágenes van por Tesseract.
import { runOcr, readFileToInput } from "@dragon708/docmind-node";
async function ocrDesdeDisco(path: string) {
const input = await readFileToInput(path);
return runOcr(input, {
pdf: { ocr: "force", ocrLangs: "eng" },
ocr: { langs: "eng" },
});
}Forma del resultado
Las llamadas devuelven AnalysisResult (o variantes como TextAnalysisResult para texto plano). Comprueba status, fileKind, analyzer y warnings antes de leer text, html o metadata.