3010MIT

Voltar

Papyrus PDF SDK

Avatar do Carlos Miguel

Carlos Miguel

sábado, 20 de dezembro de 2025

Papyrus PDF SDK

SDK open source de PDF/EPUB/TXT para leitores web e mobile, com engines plugaveis e UI pronta.
3010MIT

Linguagens

  • TypeScript: 47.93%
  • HTML: 37.81%
  • Java: 3.15%
  • C++: 2.31%
  • Kotlin: 2.1%
  • Objective-C: 2.1%
  • JavaScript: 2%
  • PowerShell: 1.34%
  • CSS: 0.98%
  • Shell: 0.16%
  • Ruby: 0.06%
  • CMake: 0.05%

Tópicos

  • annotations
  • document-reader
  • document-viewer
  • epub
  • epub-reader
  • open-source
  • pdf
  • pdf-sdk
  • pdf-viewer
  • pdfjs
  • react
  • react-native
  • sdk
  • search
  • typescript
  • vite
  • pdf-editor
  • pdf-viewer-react

SDK open source de PDF/EPUB/TXT para leitores web e mobile.

Engine: PDF.js UI: React UI: React Native
npm npm npm

Leia em: English | Portugues (Brasil)

Papyrus e um SDK open source de PDF/EPUB/TXT feito para produtos com documentos pesados. Ele combina uma camada central de estado, engines plugaveis (PDF.js na web, nativo no mobile) e kits de UI para React e React Native.

Suporta PDF, EPUB e TXT. No mobile, EPUB/TXT renderizam via WebView enquanto PDF fica nativo.

Exemplos

  • Demo web: examples/web
  • React Native: examples/mobile

Documentacao

Funcionalidades

  • Event hooks para pagina, zoom, selecao e anotacoes
  • Tipos de documento: PDF, EPUB, TXT
  • Busca textual em background com preview
  • UI com temas: claro, escuro, sepia, alto contraste
  • Arquitetura desacoplada: core, engines e pacotes de UI

Pacotes

PacoteResponsabilidade
@papyrus-sdk/typesTipos e contratos compartilhados
@papyrus-sdk/coreStore (Zustand), event bus, search service
@papyrus-sdk/engine-pdfjsAdaptador PDF.js para web
@papyrus-sdk/engine-epubAdaptador EPUB para web
@papyrus-sdk/engine-textAdaptador TXT para web
@papyrus-sdk/engine-nativeEngine nativa (iOS/Android)
@papyrus-sdk/ui-reactComponentes de UI em React
@papyrus-sdk/ui-react-nativeComponentes de UI em React Native
@papyrus-sdk/expo-pluginPlugin Expo para builds nativos

Inicio rapido (web)

npm install
npm run dev

Abra a URL exibida pelo Vite.

Uso minimo (web)

import { useViewerStore, papyrusEvents } from '@papyrus-sdk/core';
import { PDFJSEngine } from '@papyrus-sdk/engine-pdfjs';
import { PapyrusConfig, PapyrusEventType } from '@papyrus-sdk/types';
import { Viewer, Topbar, SidebarLeft, SidebarRight } from '@papyrus-sdk/ui-react';

const engine = new PDFJSEngine();

const config: PapyrusConfig = {
  initialUITheme: 'dark',
  initialPage: 1,
  sidebarLeftOpen: true
};

useViewerStore.getState().initializeStore(config);

const bootstrap = async () => {
  await engine.load('/sample.pdf');

  const store = useViewerStore.getState();
  store.setDocumentState({
    isLoaded: true,
    pageCount: engine.getPageCount(),
    outline: await engine.getOutline()
  });
};

bootstrap();

papyrusEvents.on(PapyrusEventType.DOCUMENT_LOADED, ({ pageCount }) => {
  console.log('Loaded pages:', pageCount);
});

// Na sua arvore React:
// <Topbar engine={engine} />
// <SidebarLeft engine={engine} />
// <Viewer engine={engine} />
// <SidebarRight engine={engine} />

Contribuicao

Veja CONTRIBUTING.md.

Licenca

MIT. Veja LICENSE.