Archivos Documentos de Word
Documentos de Word
@rebodocs/core y @rebodocs/viewer instalados, un .docx se lee con su motor y se muestra en el visor de Rebodocs. Sin él, el drive muestra un .docx como cualquier otro archivo.En esta página
Dale Rebodocs
import { FileDrive } from '@rebofiles/react';
import { pictureOfDocx, previewDocx, textOfDocx, thumbDocx, viewDocx } from '@rebofiles/react/rebodocs'; // needs @rebodocs/core and @rebodocs/viewer
<FileDrive
base="/api/files"
previewDocument={previewDocx} // the details: its first paragraphs
viewDocument={viewDocx} // the viewer: its pages, with Rebodocs' zoom
thumbDocument={thumbDocx} // the grid, until a picture of it is made
pictureDocument={pictureOfDocx} // that picture, of its first page, made at upload
textDocument={textOfDocx} // what is written in it, to find it by
onOpenDocument={(file, url) => router.push(`/documents/${file.id}`)}
/>Ábrelo, y guárdalo de vuelta
“Abrir en Rebodocs” llama a onOpenDocument con una dirección desde la que leer el archivo; guardarlo de vuelta es subir una nueva versión.
import { DocsEditor } from '@rebodocs/react';
import { useActions } from '@rebofiles/react';
const { upload } = useActions();
<DocsEditor docx={bytes} onSave={(docx) => upload(new File([docx], file.name), { file: file.id })} />El playground lo hace, en apps/playground/src/Editor.tsx: ⌘S guarda, y el drive muestra el documento como su siguiente versión.
Crear un documento
import { newDocx } from '@rebofiles/react/rebodocs';
// "New document" in the Upload menu: an empty .docx,
// named by the person, in the folder they are in, and opened with onOpenDocument.
<FileDrive base="/api/files" newDocument={newDocx} viewDocument={viewDocx} onOpenDocument={open} />newDocument es lo que hace uno vacío: newDocx de Rebodocs, o una plantilla tuya. Sin onOpenDocument, el documento nuevo se abre en el visor.
Como PDF
El visor de un documento de Word tiene PDF junto a Imprimir: lo hace Rebodocs en la página, a partir de las páginas que se ven, y se descarga (pdf() de lo que da viewDocx). El editor también lo hace, con editor.exportPdf().
Varias personas a la vez
Con el servidor de colaboración de Rebodocs, cada documento del drive es una sala: quien lo abre escribe con los demás a la vez, cada uno con su cursor, y quien solo puede leerlo mira.
import { createCollabServer } from '@rebodocs/collab/server';
// A room for each document of the drive, named by its id: opened from the file,
// kept as a new version of it once everybody has left (apps/documents/server/collab.ts).
const collab = createCollabServer({ storage: roomsOverTheDrive });
app.use('/collab', collab.handle);
<DocsEditor collab={{ url: location.origin, room: file.id, ticket }} onSave={saveAsVersion} />La demo de documentos (npm run documents, apps/documents) lo hace completo: las salas sobre el drive, un ticket firmado para cada persona según lo que puede hacer con el archivo, y una versión guardada cuando todos se van.
Comparar dos versiones
Lo que cambió en un documento de Word entre una versión y la actual, sobre sus páginas: tachado en rojo lo que se quitó, subrayado en verde lo que se puso, un cambio tras otro.
import { compareDocx } from '@rebofiles/react/rebodocs';
// "Compare" on each version of a Word document but the current, in its history.
<FileDrive base="/api/files" viewDocument={viewDocx} compareDocument={compareDocx} />Para un asistente
Con Rebodocs instalado junto a @rebofiles/mcp, Claude lee y edita los documentos de Word del drive con las propias herramientas de Rebodocs, cada cambio guardado como una versión: Asistentes de IA.