Intégrer
Intégrer est un moyen simple d’inclure l’application dans votre site Web. Ajoute le code suivant à ton site web :
<iframe id="butterfly" src="https://web.butterfly.linwood.dev/embed" width="100%" height="500px" allowtransparency="true"></iframe>| Option | Type de texte | Par défaut | Libellé |
|---|---|---|---|
| enregistrer | Booléen (true, false) | true | Activer la sauvegarde. Si désactivé, seul un bouton de sortie sera affiché |
| editable | Booléen (true, false) | true | Activer l’édition. Si désactivé, le document sera en lecture seule |
| langue | Chaîne de caractères (…, système, utilisateur) | user | Langue du document. Si le système, la langue sera détectée à partir du navigateur. Si l’utilisateur, la langue sera définie à la préférence des utilisateurs |
Messaging
Section intitulée « Messaging »The embed uses browser postMessage events. Send messages to the iframe with
iframe.contentWindow.postMessage({ type, message }, origin). Butterfly sends
messages back to the parent window with the same shape:
{ type: string, message?: unknown }.
See the embedding example for a live page that sends messages to the iframe and listens for messages from it.
<iframe id="butterfly" src="https://web.butterfly.linwood.dev/embed?save=true&editable=true" width="100%" height="500"></iframe>
<script> const butterflyOrigin = 'https://web.butterfly.linwood.dev'; const butterfly = document.querySelector('#butterfly');
function sendToButterfly(type, message) { butterfly.contentWindow.postMessage({ type, message }, butterflyOrigin); }
window.addEventListener('message', (event) => { if ( event.origin !== butterflyOrigin || event.source !== butterfly.contentWindow ) { return; }
const { type, message } = event.data ?? {};
if (type === 'save') { const documentBytes = Array.from(message); console.log('Save requested by the embed', documentBytes); }
if (type === 'change') { console.log('Document changed', message); }
if (type === 'getData') { console.log('Current document bytes', message); }
if (type === 'render') { const image = new Image(); image.src = `data:image/png;base64,${message}`; document.body.append(image); } });
butterfly.addEventListener('load', () => { sendToButterfly('getData');
sendToButterfly('render', { x: 0, y: 0, width: 600, height: 400, scale: 1, renderBackground: true, }); });</script>To load document bytes into the embed, send an array of byte values:
sendToButterfly('setData', documentBytes);Évènements
Section intitulée « Évènements »Listen for events with window.addEventListener('message', ...).
enregistrer
Section intitulée « enregistrer »The
saveevent is emitted when the user clicks the save button.
Paramètres:
message(TypeList<int>): The data of the document.
The
exitevent is emitted when the user clicks the exit button.
Paramètres:
message(TypeList<int>): The data of the document.
The
changeevent is emitted when the user changes the document.
Paramètres:
message(TypeList<int>): The data of the document.
Méthodes
Section intitulée « Méthodes »Call methods with iframe.contentWindow.postMessage(...). Methods that return
data send another message back with the same type.
The
getDatamethod returns the data of the document.
Aucun paramètre.
Returns: List<int>
The
setDatamethod sets the data of the document.
Paramètres:
data(TypeList<int>): The data of the document.
The
rendermethod renders the document to a png image.
Paramètres:
x(TypeNumber): The x position of the exported area.y(TypeNumber): The y position of the exported area.width(TypeNumber): The width of the image.height(TypeNumber): The height of the image.scale(TypeNumber): The scale of the image.renderBackground(TypeBoolean): If true, the background will be rendered.
Returns: String (Base64 encoded image)
renderSVG
Section intitulée « renderSVG »The
renderSVGmethod renders the document to a svg image.
Paramètres:
x(TypeNumber): The x position of the exported area.y(TypeNumber): The y position of the exported area.width(TypeNumber): The width of the image.height(TypeNumber): The height of the image.renderBackground(TypeBoolean): If true, the background will be rendered.
Returns: String (SVG)