Créer un plugin PolyPDF | Guide développeur
Ajoutez les symboles de votre bureau à PolyPDF. Pas de code, pas de place de marché, pas de file d'attente d'approbation.
Application actuelle : PolyPDF 1.5.2 (build 24) · Format du package : PolyPDF 1.3.1+ · L'installation et l'exécution des plugins nécessitent PolyPDF Pro dans la version 1.4.1+
Si votre équipe tamponne la même flèche nord, le même triangle de révision ou la même étiquette de pièce sur chaque feuille, vous pouvez emballer cet ensemble vous-même et le remettre à vos collègues dans un seul fichier. Il faut un éditeur de texte, un outil de dessin et Node. Construire un package est gratuit ; l'installation, l'exécution et la modification du contenu du plugin dans l'application actuelle nécessitent PolyPDF Pro.
Un plugin est une donnée, pas un programme
- Un plugin PolyPDF est un dossier signé d'illustrations et de JSON. Il n'y a pas de point d'entrée JavaScript et rien dans le package n'est jamais exécuté.
- Votre package fournit un catalogue de symboles, l'illustration SVG correspondante et un formulaire décrit en JSON. PolyPDF restitue le formulaire, exécute son propre générateur et ajoute le résultat au dessin sous forme d'annotations ordinaires en une seule étape irréversible.
- L’échange est délibéré : vous abandonnez un comportement arbitraire et, en échange, votre plugin ne peut pas divulguer les dessins d’un client, ne peut pas casser son application et ne nécessite aucun processus de révision avant que quiconque puisse l’installer en toute sécurité.
Ce que les gens construisent avec
- Flèches nord correspondant au nord géographique d'une feuille, triangles de révision, étiquettes de pièce et d'équipement, marqueurs de détail, symboles de soudure, symboles ADA et de sécurité incendie, légendes de services publics — le jeu de symboles standard d'un bureau, estampillé à la bonne taille d'impression à chaque fois.
- Les symboles sont placés selon une taille en pouces, conservent leurs proportions dessinées, pivotent et peuvent porter une légende - en dessous pour une flèche nord, à l'intérieur de la forme pour un numéro de révision ou un numéro de pièce.
- Une fois placées, ce sont des annotations normales : sélectionnables, mobiles, stylables, exportables et toujours là si le plugin est ultérieurement désactivé ou supprimé.
Ce qu'un plugin ne pourra jamais faire
- Exécutez le code. Pas de JavaScript, pas de WASM, pas de bibliothèque native.
- Accédez au réseau. Aucune demande, d'aucune sorte, jamais - les illustrations portant une référence externe sont refusées au moment de l'installation, précisément pour qu'un symbole ne puisse pas téléphoner à la maison lorsqu'une feuille est ouverte.
- Lisez vos documents. Un plugin est informé de la taille de la page, de la rotation et de l'endroit où vous avez cliqué. Ni le texte, ni les annotations, ni le nom du fichier, ni les octets du PDF.
- Touchez vos fichiers, consultez les détails de votre licence, modifiez une annotation existante ou enregistrez n'importe quoi.
- Il s’agit d’une architecture et non d’une politique que nous promettons d’appliquer : il n’existe aucune API pour tout cela.
Ce que tu écris
Un plugin est un dossier. Le manifeste décrit de quoi il s'agit et ce qu'il ajoute au menu Outils ; le catalogue répertorie vos symboles et leurs tailles d'impression ; les actifs sont de simples fichiers SVG.
my-plugin/ manifest.json identity, permissions, commands, the form data/symbols.json each symbol: id, label, artwork, size in inches assets/*.svg the artwork icons/icon.png optional, 256 x 256
Comment le construire
Un fichier, aucune dépendance, Node 18 ou plus récent. Il valide l'ensemble du package avant d'écrire quoi que ce soit (mise en page, manifeste, noms d'autorisations, votre catalogue et si votre illustration est acceptable) et nomme le fichier et le correctif pour tout problème.
curl -O https://www.polypdf.com/plugins/polypdf-plugin-pack.mjs node polypdf-plugin-pack.mjs keygen --out ~/.polypdf-keys node polypdf-plugin-pack.mjs pack my-plugin --key ~/.polypdf-keys/polypdf-plugin-key.pem
Installez-le ensuite dans PolyPDF : Plugins… ▸ Installer à partir d'un fichier.
A propos de cette signature
Vous signez avec une clé que vous générez et PolyPDF fait attention à ce que cela signifie, à la fois pour vous et pour les personnes à qui vous envoyez le fichier.
- Il confirme que le package n'a pas été modifié depuis que vous l'avez construit, et épingle votre plugin à votre clé : une mise à jour signée par quelqu'un d'autre est refusée.
- Une signature ne constitue pas une révision ou une approbation PolyPDF. Les plugins fournis dans PolyPDF sont signés par PolyPDF ; un plugin que vous signez vous-même est un niveau distinct et clairement identifié.
- Toute personne installant votre plugin voit d’abord un écran de consentement : ce qu’il peut faire en langage clair, l’empreinte digitale de votre clé et la somme de contrôle du package. Sa ligne dans le gestionnaire de plugins indique Installé à partir d'un fichier tant qu'il est installé.
- Sauvegardez votre clé privée. Étant donné que les installations y sont épinglées, une clé perdue signifie que vos utilisateurs doivent désinstaller avant de pouvoir utiliser votre prochaine version.
Le guide complet
La référence complète (chaque champ du manifeste, le format du package, les règles de création, la gestion des versions, la distribution et une section de dépannage) est livrée avec PolyPDF à l'adresse docs/plugins/PLUGIN-AUTHORING.md, ainsi qu'un exemple de plugin fonctionnel que vous pouvez créer et installer en une minute environ.
Il n'y a pas de marché. Un fichier de plugin est la distribution : mettez-le sur votre intranet, dans une release ou dans un email. Publiez sa somme de contrôle et votre empreinte digitale à côté du téléchargement et tout le monde pourra vérifier qu'il a bien reçu votre fichier et non celui de quelqu'un d'autre.
Questions
Si le runtime ne peut pas exprimer la tâche de dessin que vous avez en tête, dites-le plutôt que de la contourner : les nouveaux runtimes sont livrés avec l'application, et savoir ce dont les gens ont réellement besoin est la façon dont le prochain sera choisi.