Skip to main content

WebViewer Realtime Collaboration

A set of plug and play modules for enabling realtime collaboration in WebViewer

[object Object]

Plug and play

Drop the modules into your existing app to quickly enable realtime collaboration.

[object Object]

Use any database

Easily hook up to your existing database, or use one of our defaults

[object Object]

Everything included

Let our modules handle everything. From notifications to authentication, it's all included.

Real time collaboration in less than 50 lines of code

Server

import CollabServer from '@pdftron/collab-server'
import CollabDB from '@pdftron/collab-db-postgresql'
const db = new CollabDBPostgreSQL({
host: '127.0.0.1',
port: 5432,
dbName: 'mydb',
username: 'postgres',
password: 'pdftron',
});
db.connectDB();
const resolvers = db.getResolvers();
const server = new CollabServer({
resolvers,
});
db.setServer(server);
server.start(3000);

Client

import CollabClient from '@pdftron/collab-client'
import WebViewer from '@pdftron/webviewer'
const element = document.getElementById('viewer');
WebViewer({
path: '/lib/webviewer'
}, element).then(async instance => {
const client = new CollabClient({
url: 'http://localhost:3000',
subscriptionUrl: 'ws://localhost:3000/subscribe',
instance,
});
await client.loginAnonymously("Joe");
client.loadDocument('https://pdftron.s3.amazonaws.com/downloads/pl/webviewer-demo.pdf', {
documentId: 'abc'
})
})

All features needed for a
seamless collaboration experience

Database agnostic

Whether you are using Postgres, SQL, Firebase, or any other database,
WebViewer Collaboration will work for you

Real time annotation syncing

Sync users annotations in real time, including edits and deletions

User authentication & SSO

Authenticate and log-in users using your existing system.
Also includes support for anonymous users

Flexible user permissions

Fine tune control over what documents and annotations users are allowed to read, write, and edit

Email and browser notifications

Alert your users via email or browser notification when they recieve a new message,
or are invited to a new document

Scroll syncronization

Make sure all users are on the same page by syncronizing their position on a document

Extensive logging

Keep track of what is happening on your server with our extensive Winston logging suite.

Built-in testing suite

Run our testing suite against your integration and instantly get detailed problem reports