Integrieren Sie den Legalesign-Dokumentbetrachter in Ihre Webseite
Sie können diese Komponente in Aktion als Quick Send in der Console sehen.
Der Legalesign-Dokumentbetrachter ist eine plattformunabhängige Webkomponente, die es Ihnen ermöglicht, Vorlagen für die Dokumentenunterzeichnung zu bearbeiten, vorzuschauen und anzupassen. Er wurde mit StencilJS entwickelt und funktioniert nahtlos mit reinem JavaScript, React, Vue, Angular oder jedem anderen Web-Framework.
Diese Plug-and-Play-Komponente ist so konzipiert, dass Sie wichtige Teile der Dokumentenerstellung in Ihre internen Systeme integrieren können, wie beispielsweise in ein CRM- oder Geschäftsanwendungssystem. Solange Ihr System HTML-Komponenten rendern und unterstützen kann, können Sie den Dokumentbetrachter verwenden. Wenn Sie zusätzliche Hilfe bei der Integration des Dokumentbetrachters in Ihr technisches Stack benötigen, wenden Sie sich bitte an unseren Support. Sie können diese größeren Widgets mit REST/GraphQL-API-Integrationen verwenden, um nahtlose Dokumentunterzeichnungsprozesse für Ihre Mitarbeiter und Kunden zu ermöglichen.
Installation
NPM Installation
npm install legalesign-document-viewer
Für React-Projekte
npm install legalesign-document-viewer-react
Basisintegration
Vanilles HTML/JavaScript
Die HTML/JavaScript-Version dieser Komponente kann mit jedem Entwicklungs-Stack verwendet werden, wie zum Beispiel PHP, ASP .Net etc. Sie können direkt von npm auf die Komponente verlinken, falls Ihre Umgebung eine Installation nicht zulässt. Eine Demo-Seite aus dem Beispiel-Repository können Sie hier ausprobieren: [https://github.com/legalesign/ls-viewer-demo].
Fügen Sie die Komponentenskripte in Ihr HTML ein:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="node_modules/legalesign-document-viewer/dist/ls-document-viewer/ls-document-viewer.css" />
<script type="module" src="node_modules/legalesign-document-viewer/dist/ls-document-viewer/ls-document-viewer.esm.js"></script>
<script nomodule src="node_modules/legalesign-document-viewer/dist/ls-document-viewer/ls-document-viewer.js"></script>
</head>
<body>
<ls-document-viewer
id="my-editor"
templateid="YOUR_TEMPLATE_ID"
token="YOUR_AUTH_TOKEN"
></ls-document-viewer>
</body>
</html>
Für YOUR_AUTH_TOKEN müssen Sie serverseitigen Code verwenden. Das Token kann ein SRP JWT oder ein kurzlebiges Komponenten-Token sein, das mit generateComponentToken erstellt wurde. Siehe Widget-Autorisierung.
React-Integration
Wir haben auch eine Version der Komponente erstellt, die direkt mit React-Frameworks integriert werden kann.
import { LsDocumentViewer } from 'legalesign-document-viewer-react';
function App() {
return (
<LsDocumentViewer
templateid="YOUR_TEMPLATE_ID"
token="YOUR_AUTH_TOKEN"
mode="compose"
/>
);
}
Erforderliche Attribute
token
Ihr Sicherheitstoken für die Authentifizierung. Dieses verifiziert Ihre Identität und den Zugriff auf die Vorlage. Verwenden Sie serverseitigen Code, um entweder ein SRP JWT oder ein kurzlebiges Komponenten-Token bereitzustellen. Siehe Widget-Autorisierung für den sicheren Token-Flow.
token="eyJraWQiOiJBTkJIeT..."
templateid
Die API-ID der Vorlage, die Sie den Benutzern präsentieren möchten. Diese finden Sie leicht, indem Sie in der URL nachsehen, während Sie die Vorlage in der Console-Anwendung bearbeiten.
templateid="dHBsYjQ5YTg5NWQtYWRhMy0xMWYwLWIxZGMtMDY5NzZlZmU0MzIx"
Widget-Modi
Editor-Modus
Voll ausgestattete Vorlagenerstellung und -bearbeitung mit allen verfügbaren Werkzeugen. Dies ist gedacht für Arbeitsabläufe, bei denen eine stark wiederverwendbare Vorlage mit Rollen hilfreich ist. Wenn Sie Ihr Dokument nur einmal verwenden möchten (vielleicht hat Ihr Dokumentengenerierungssystem bereits alle Kundendaten ausgefüllt), sollten Sie stattdessen den compose-Modus in Betracht ziehen.
<ls-document-viewer mode="editor" ...></ls-document-viewer>
Compose-Modus
Ein schlanker Modus zum schnellen Hinzufügen von Signaturfeldern zu vorab generierten Vorlagen. Ideal für integrierte Kunden, bei denen die Empfänger bereits definiert sind.
Der typische Arbeitsablauf ist:
- Ihre Anwendung erzeugt ein PDF
- Laden Sie es über die API hoch, um eine Vorlage zu erstellen:
const response = await fetch('https://graphql.uk.legalesign.com/graphql', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: `
mutation CreateTemplate {
createTemplate(input: {
groupId: "${groupId}"
title: "${documentTitle}"
})
}
`
})
});
const { data } = await response.json();
const templateId = data.createTemplate;
- Laden Sie die PDF-Datei mit der Vorlage-ID in S3 hoch
- Betten Sie den Viewer im Compose-Modus mit Empfängerdetails ein
- Ihr Benutzer fügt Signaturfelder hinzu und sendet
Weitere Informationen zu Empfängern finden Sie unter Recipients.
<ls-document-viewer
mode="compose"
recipients='[
{"email": "user@example.com", "firstname": "John", "lastname": "Doe", "signerIndex": 1},
{"email": "user2@example.com", "firstname": "Jane", "lastname": "Smith", "signerIndex": 2}
]'
...></ls-document-viewer>
Der Compose-Modus erledigt automatisch:
- Erkennt vorab generierte Empfänger
- Versteckt den Absender im Dropdown
- Versteckt Dokumentoptionen
- Zeigt erforderliche Felder standardmäßig an
- Entfernt den Absender und Absenderfelder aus dem Editor
- Ermöglicht eine schnelle Auswahl der erforderlichen Felder für jeden Empfänger
Vorschau-Modus
Eine hilfreiche Dokumentenvorschau, die das Dokument mit allen aktuellen Feldern zeigt und es dem Benutzer erlaubt, durch Seiten zu blättern.
<ls-document-viewer mode="preview" ...></ls-document-viewer>
Der Compose-Modus erledigt automatisch:
- Versteckt die Symbolleiste
- Versteckt Dokumentoptionen
- Versteckt die Werkzeugleiste
- Macht Teilnehmer und Felder schreibgeschützt
Erweiterte Konfiguration
Toolbox filtern
Beschränken Sie verfügbare Feldtypen mit durch Pipes getrennten Werten. Wenn kein Wert angegeben ist, wird angenommen, dass die Toolbox ungefiltert und alle Optionen verfügbar sind.
<ls-document-viewer
filtertoolbox="signature|initials|date|text"
...
></ls-document-viewer>
endpoint
Ihr GraphQL-API-Endpunkt, falls Ihnen ein client-spezifischer Endpunkt gegeben wurde.
endpoint="https://your-api.appsync-api.region.amazonaws.com/graphql"
Empfänger
Definieren Sie Dokumentempfänger im JSON-Format. Beachten Sie, dass die erforderlichen Elemente für einen Empfänger firstname, lastname, email und signerIndex sind; optional können Sie auch role und phonenumber für jeden Empfänger übergeben. Wird keine Rolle angegeben, wird der Empfänger als eigenständiger Unterzeichner behandelt. Um dies zu ändern, können Sie role: "WITNESS" angeben und einen speziellen signerIndex aufnehmen, der zeigt, wer der übergeordnete Unterzeichner ist. Zum Beispiel erhält ein Zeuge für Unterzeichner 2 einen signerIndex von 102.
<ls-document-viewer
recipients='[
{"email": "user@example.com", "firstname": "John", "lastname": "Doe", "signerIndex": 1},
{"email": "user2@example.com", "firstname": "Jane", "lastname": "Smith", "signerIndex": 2}
{"email": "user3@example.com", "firstname": "Joan", "lastname": "Mitchell", "signerIndex": 102, roleType: "WITNESS"}
]'
...
></ls-document-viewer>
Benutzerdefinierte Buttons mit Slots
Fügen Sie der Symbolleiste benutzerdefinierte Buttons mit Slots hinzu:
<ls-document-viewer ...>
<style>
.custom-button {
padding: 2px 12px;
border-radius: 1rem;
background-color: #9df5d4;
color: #125241;
font-weight: 500;
}
</style>
<span slot="left-button">
<button class="custom-button">Cancel</button>
</span>
<span slot="right-button">
<button class="custom-button">Send Document</button>
</span>
</ls-document-viewer>
Ereignisbehandlung
Hören Sie auf Komponentenereignisse, um Änderungen zu verfolgen:
const editor = document.querySelector('ls-document-viewer');
editor.addEventListener('update', (event) => {
console.log('Template changed:', event.detail);
});
Sie können verfolgen, ob eine Vorlage gültig oder ungültig geworden ist, mithilfe des validate-Ereignisses.
const editor = document.querySelector('ls-document-viewer');
editor.addEventListener('validate', (event) => {
console.log('Template validation changed:', event.detail.valid);
});
Beispiel für Ereignisbehandlung in React
Die Verwendung eines Ereignisses in react wird mit dem vertrauten Präfix on<EventName> versehen.
<LsDocumentViewer
onUpdate={(event) => {
console.log('Template changed:', event.detail);
}}
...
/>
Ereignistypen
update-Ereignis
Wird ausgelöst, wenn die Dokumentvorlage geändert wird, z. B. durch Hinzufügen oder Entfernen von Feldern. Liefert nicht nur das Ereignis, das es verursacht hat, sondern auch den aktualisierten Zustand des Vorlagenobjekts als JSON.
validate-Ereignis
Wird ausgelöst, wenn die Dokumentvorlage geändert wird. Die Eigenschaft valid im Detail zeigt an, ob die Vorlage gültig oder ungültig geworden ist.
selectFields-Ereignis
Wird ausgelöst, wenn ein Feld im Editor ausgewählt wird.
addParticipant-Ereignis
Wird ausgelöst, wenn eine Teilnehmerrolle zur Vorlage hinzugefügt wird.
Komplettes Beispiel
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document Editor</title>
<link rel="stylesheet" href="https://unpkg.com/legalesign-document-viewer/ls-document-viewer.css" />
<script type="module" src="https://unpkg.com/legalesign-document-viewer"></script>
</head>
<body style="padding: 0; margin: 0">
<ls-document-viewer
id="my-editor"
templateid="dHBsYjQ5YTg5NWQtYWRhMy0xMWYwLWIxZGMtMDY5NzZlZmU0MzIx"
token="YOUR_TOKEN_HERE"
mode="compose"
recipients='[
{"email": "signer@example.com", "firstname": "John", "lastname": "Doe", "signerIndex": 1}
]'
filtertoolbox="signature|initials|date"
>
<span slot="left-button">
<button onclick="handleCancel()">Cancel</button>
</span>
<span slot="right-button">
<button onclick="handleSend()">Send</button>
</span>
</ls-document-viewer>
<script>
const editor = document.querySelector('ls-document-viewer');
editor.addEventListener('update', (event) => {
// shows the change event and the template details
console.log('Document updated:', event.detail);
});
function handleCancel() {
// Implement the cancel logic, e.g. go to a home page
window.location.href = '/cancelpage';
}
function handleSend() {
// Implement send logic if required.
console.log('Sending document...');
}
</script>
</body>
</html>
Fehlerbehebung
Wenn Sie Probleme mit der Komponente haben, stellen Sie sicher, dass:
- Sie auf die Dokumentenspeicher-Domain https://s3.amazonaws.com/* zugreifen können oder diese auf der Whitelist steht
Browser-Unterstützung
Die Komponente verwendet moderne Webstandards und unterstützt:
- Chrome/Edge (aktuellste Version)
- Firefox (aktuellste Version)
- Safari (aktuellste Version)
- Mobile Browser (iOS Safari, Chrome Mobile)
Ressourcen
- GraphQL-Integrationsanleitung — wie man den Viewer mit der GraphQL-API für das Senden verbindet
- GraphQL API-Dokumentation
- NPM-Paket
- React-Paket
- Support
Hilfe erhalten
Für technischen Support oder Integrationsfragen wenden Sie sich an das Legalesign-Supportteam oder besuchen Sie die API-Dokumentation.