Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Une solution complète pour la génération dynamique de PDF au sein des applications du cadre LoopBack est fournie par l'intégration fluide d'IronPDF, une bibliothèque pour la création programmatique de documents PDF, avec LoopBack, un cadre Node.js pour la construction d'API. Avec des fonctionnalités telles que la création de modèles, la validation de sources de données, la méthode à distance et le contrôle d'accès, le cadre LoopBack facilite le développement API/web, et IronPDF l'améliore avec des capacités de production de PDF plus sophistiquées.
Les développeurs peuvent créer des PDFs à la volée avec cette intégration en extrayant des données de multiples sources, y compris des APIs externes et des bases de données. Cela permet de créer des enregistrements personnalisés ou des objets de domaine d'entreprise pour répondre aux exigences du projet, tels que des factures, certificats, rapports et plus encore. Parce que LoopBack est asynchrone, il complète les fonctionnalités d'IronPDF pour gérerPDF (EN ANGLAIS)-générer des tâches efficacement sans interférer avec la boucle d'événements, garantissant la réactivité et des performances optimales.
Pour commencer à travailler avec LoopBack et IronPDF, créez un nouveau projet en utilisant l'outil CLI de LoopBack et installez IronPDF comme dépendance en utilisant npm. L'utilisation des capacités de middleware et de méthodes à distance de LoopBack pour créer des PDFs instantanément en réponse aux demandes des clients rend l'intégration simple. Tout bien considéré, cette intégration permet aux développeurs de gérer efficacement diverses exigences de génération de documents au sein des applications LoopBack.
Un puissant framework Node.js appeléLoopBacka été créé pour faciliter le processus de création d'APIs et leur liaison à différentes sources de données. Avec LoopBack, un produit de StrongLoop, les développeurs peuvent facilement concevoir des applications évolutives et adaptables. Fondamentalement, LoopBack est construit sur un framework express et est basé sur une méthodologie de développement pilotée par modèle, qui permet aux programmeurs de créer des modèles de données symbolisant le domaine de leurs applications. Les bases de données relationnelles comme MySQL et PostgreSQL, les bases de données NoSQL comme MongoDB, ainsi que les API REST externes et les services SOAP, peuvent toutes être facilement intégrées à ces modèles.
LoopBack est unique en ce qu'il simplifie le processus de développement d'API en générant automatiquement des points d'extrémité RESTful basés sur les modèles fournis. De plus, LoopBack est doté d'une prise en charge intégrée pour la validation, les autorisations et l'authentification, permettant aux programmeurs de sécuriser leurs API et de garantir l'intégrité des données. Étant donné que l'architecture de middleware de LoopBack repose sur Express.js, elle est extensible et flexible, permettant aux développeurs de travailler avec un middleware existant ou de créer un middleware sur mesure pour répondre à des besoins uniques.
Que vous créiez une API REST simple ou une architecture de microservices sophistiquée, LoopBack dispose des capacités et des outils nécessaires pour accélérer le développement et produire des solutions fiables et évolutives. En raison de sa documentation exhaustive et de sa communauté dynamique, les développeurs le choisissent fréquemment lorsqu'ils créent des applications en ligne et mobiles à la pointe de la technologie.
Architecture modélisée : En permettant aux développeurs de définir des modèles de données grâce à une approche basée sur les schémas, LoopBack soutient le développement dirigé par modèles. Une variété de sources de données, y compris les bases de données, les API REST et les services SOAP, peuvent être représentées à l'aide de modèles.
Agnosticisme des sources de données : Bases de données relationnelles(MySQL, PostgreSQL), bases de données NoSQL(MongoDB)Les API REST externes et les services SOAP ne sont que quelques-unes des nombreuses sources de données que LoopBack prend en charge.
Génération automatisée d'API REST : LoopBack utilise des modèles prédéfinis pour créer automatiquement des points de terminaison RESTful dans API Explorer, réduisant ainsi le code standard et accélérant le développement.
Prise en charge intégrée de l'authentification et de l'autorisation : LoopBack offre une prise en charge intégrée de ces fonctionnalités, permettant aux développeurs d'incorporer un contrôle d'accès basé sur les rôles.(RBAC), l'authentification des utilisateurs et d'autres mesures de sécurité dans leurs API.
Middleware et méthodes distantes : Pour modifier le comportement des points de terminaison API, les développeurs peuvent fournir des middleware et des méthodes distantes en utilisant LoopBack. Bien que les méthodes distantes offrent une fonctionnalité personnalisée qui peut être appelée à distance via HTTP, les fonctions middleware peuvent intercepter et modifier les requêtes et les réponses.
Interface en ligne de commande(CLI)pour LoopBack** : LoopBack comprend un outil CLI robuste qui facilite les activités typiques telles que la création de modèles et de contrôleurs, la construction de nouveaux projets et la réalisation de migrations.
Intégration avec les composants LoopBack : LoopBack facilite l'utilisation de composants, qui sont des modules réutilisables offrant des capacités de livraison d'e-mails, de stockage de fichiers et d'authentification. Cela permet aux développeurs de ne pas avoir à recommencer à zéro lorsqu'ils ajoutent de nouvelles fonctionnalités à leurs applications.
LoopBack Explorer : Les développeurs peuvent examiner et tester de manière interactive les points de terminaison de l'API avec l'outil d'exploration API intégré de LoopBack. Cela facilite le dépannage et la compréhension des possibilités de l'API.
Vous pouvez utiliser les procédures suivantes pour configurer et construire une application LoopBack dans Node.js :
Installation de l'interface en ligne de commande LoopBack(CLI), qui offre des ressources pour créer et gérer des applications LoopBack, est la première étape. Utilisez npm pour l'installer globalement :
npm install -g loopback-cli
npm install -g loopback-cli
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install -g loopback-cli
Pour créer une nouvelle application LoopBack de base, utilisez le CLI. Ouvrez le répertoire dans lequel vous souhaitez construire votre application et exécutez-la là-bas :
lb4 app
lb4 app
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'lb4 app
Pour fournir des informations sur votre application, telles que son nom et son répertoire ainsi que la fonctionnalité que vous souhaitez activer, suivez simplement les instructions.
Vous serez invité à fournir les informations suivantes :
Nom du projet : Entrez le nom de votre application, par exemple, my-loopback-app.
Description du projet : Décrivez éventuellement votre application.
Répertoire racine du projet : Acceptez le répertoire par défaut ou spécifiez un répertoire différent.
Nom de la classe d'application : Acceptez la valeur par défaut Application.
Activer Prettier : Choisissez si vous souhaitez activer Prettier pour le formatage du code.
Activer TSLINT : Choisissez si vous souhaitez activer TSLint pour l'analyse du code.
Activer Mocha : Choisissez d'activer ou non Mocha pour exécuter les tests.
La CLI générera la structure du projet et installera les dépendances nécessaires.
Votre répertoire de projet aura la structure suivante :
my-loopback-app/
├── src/
│ ├── controllers/
│ ├── models/
│ ├── repositories/
│ ├── index.ts
│ ├── application.ts
│ └── ...
├── package.json
├── tsconfig.json
└── ...
my-loopback-app/
├── src/
│ ├── controllers/
│ ├── models/
│ ├── repositories/
│ ├── index.ts
│ ├── application.ts
│ └── ...
├── package.json
├── tsconfig.json
└── ...
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'my-loopback-app/ ├── src/ │ ├── controllers/ │ ├── models/ │ ├── repositories/ │ ├── index.ts │ ├── application.ts │ └──... ├── package.json ├── tsconfig.json └──...
Pour spécifier la structure de vos données, développez soit manuellement des modèles, soit utilisez le CLI LoopBack. Les modèles, qui peuvent être pris en charge par une variété de structures de données et de sources, représentent des éléments dans votre programme. Par exemple, exécutez : pour générer un nouveau modèle appelé Product.
lb4 model
lb4 model
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'lb4 model
Pour spécifier les attributs et les connexions de votre modèle, suivez les instructions.
Pour gérer les demandes de création de documents PDF, créez un nouveau contrôleur. Pour créer un nouveau contrôleur, utilisez la commande suivante dans LoopBack CLI :
lb4 controller
lb4 controller
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'lb4 controller
Pour définir le nom et le modèle associé du contrôleur, il suffit de suivre les invites. Disons que nous voulons associer le nom de propriété du contrôleur avec le modèle Report et l'appeler ReportController.
Déterminez avec quelles sources de données vos modèles vont communiquer. De nombreuses bases de données, telles que MySQL, PostgreSQL, MongoDB et d'autres, sont prises en charge par LoopBack. Pour configurer vos sources de données, mettez à jour le fichier datasources.json ou utilisez l'interface de ligne de commande LoopBack.
Utilisez l'outil intégré d'exploration de l'API, disponible à l'adresse http://localhost:3000/explorer, pour explorer les fonctionnalités de LoopBack. Vous pouvez explorer et tester vos points de terminaison API directement ici.
import {inject} from '@loopback/core';
import {
Request,
RestBindings,
get,
response,
ResponseObject,
} from '@loopback/rest';
/** * OpenAPI response for ping()
*/
const PING_RESPONSE: ResponseObject = {
description: 'Ping Response',
content: {
'application/json': {
schema: {
type: 'object',
title: 'PingResponse',
properties: {
greeting: {type: 'string'},
date: {type: 'string'},
url: {type: 'string'},
headers: {
type: 'object',
properties: {
'Content-Type': {type: 'string'},
},
additionalProperties: true,
},
},
},
},
},
};
/** * A simple controller to bounce back http requests
*/
export class PingController {
constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}
// Map to `GET /ping`
@get('/ping')
@response(200, PING_RESPONSE)
ping(): object {
// Reply with a greeting, the current time, the url, and request headers
return {
greeting: 'Hello from LoopBack',
date: new Date(),
url: this.req.url,
headers: Object.assign({}, this.req.headers),
};
}
}
import {inject} from '@loopback/core';
import {
Request,
RestBindings,
get,
response,
ResponseObject,
} from '@loopback/rest';
/** * OpenAPI response for ping()
*/
const PING_RESPONSE: ResponseObject = {
description: 'Ping Response',
content: {
'application/json': {
schema: {
type: 'object',
title: 'PingResponse',
properties: {
greeting: {type: 'string'},
date: {type: 'string'},
url: {type: 'string'},
headers: {
type: 'object',
properties: {
'Content-Type': {type: 'string'},
},
additionalProperties: true,
},
},
},
},
},
};
/** * A simple controller to bounce back http requests
*/
export class PingController {
constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}
// Map to `GET /ping`
@get('/ping')
@response(200, PING_RESPONSE)
ping(): object {
// Reply with a greeting, the current time, the url, and request headers
return {
greeting: 'Hello from LoopBack',
date: new Date(),
url: this.req.url,
headers: Object.assign({}, this.req.headers),
};
}
}
import
If True Then
inject
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'from '@loopback/core'; import { Request, RestBindings, @get, response, ResponseObject} from '@loopback/rest'; const PING_RESPONSE: ResponseObject = { description: 'Ping Response', content: { 'application/json': { schema: { type: 'object', title: 'PingResponse', properties: { greeting: {type: 'string'}, @date: {type: 'string'}, url: {type: 'string'}, headers: { type: 'object', properties: { 'Content-Type': {type: 'string'}}, additionalProperties: True}}}}}}; export class PingController { constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {} @get('/ping') @response(200, PING_RESPONSE) ping(): object { Return { greeting: 'Hello from LoopBack', @date: New @Date(), url:Me.req.url, headers: Object.assign({}, Me.req.headers)}; } }
Sortie du code ci-dessus.
Nous commencerons par créer une application exemple qui utilise LoopBack Node.js et IronPDF pour créer un document PDF avec des informations générées dynamiquement. Il s'agit d'un manuel étape par étape avec des explications détaillées.
Une bibliothèque d'application appeléeIronPDFa été développé pour faciliter la création, la modification et la maintenance des PDF. Avec cette application, les développeurs peuvent extraire du texte et des images à partir de documents HTML, appliquer des en-têtes et des filigranes, combiner de nombreux documents PDF et effectuer une variété d'autres activités. Les développeurs peuvent créer automatiquement des documents PDF de haute qualité facilement grâce à l'API conviviale d'IronPDF et à sa documentation complète. IronPDF offre toutes les fonctionnalités et capacités nécessaires pour améliorer les flux de travail des documents et offrir des expériences utilisateur de premier ordre dans une variété de scénarios, qu’ils soient utilisés pour la préparation de factures, de rapports ou de documents.
La conversion HTML en PDF est un processus simple et rapide qui peut être utilisé pour tout contenu HTML, y compris CSS et JavaScript.
Fusion de fichiers PDF : Pour simplifier la gestion des documents, combinez plusieurs documents PDF en un seul fichier PDF.
Extraction de texte et d'image : Retirez le texte et les images des fichiers PDF pour les rendre disponibles pour des analyses de données ou un traitement supplémentaires.
Filigrane : Pour des raisons de sécurité ou de branding, vous pouvez ajouter des filigranes de texte ou d'image aux pages PDF.
Inclure l'en-tête et le pied de page : Les en-têtes et les pieds de page des documents PDF vous permettent d'inclure un message personnalisé ou des numéros de page.
Pour activer la fonctionnalité d'IronPDF, installez les packages nécessaires de Node.js en utilisant le gestionnaire de paquets node.
npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install @ironsoftware/ironpdf
Implémentez la logique suivante dans le fichier de contrôleur créé.(report.controller.ts ou fichier report.controller.js)pour créer des documents PDF en utilisant IronPDF :
import {inject} from '@loopback/core';
import {
Request,
RestBindings,
get,
response,
ResponseObject,
oas,
param,
Response,
requestBody,
} from '@loopback/rest';
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
/
* A simple controller to bounce back http requests
*/
export class ReportController {
@get('/generate-pdf', {
responses: {
'200': {
description: 'PDF file',
content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}},
},
},
})
async generatePdf(): Promise<Buffer> {
// Example HTML content
const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';
const pdf = (await document.fromHtml(htmlContent));
const pdfBuffer=await pdf.saveAsBuffer();
return pdfBuffer;
}
constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}
}
import {inject} from '@loopback/core';
import {
Request,
RestBindings,
get,
response,
ResponseObject,
oas,
param,
Response,
requestBody,
} from '@loopback/rest';
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
/
* A simple controller to bounce back http requests
*/
export class ReportController {
@get('/generate-pdf', {
responses: {
'200': {
description: 'PDF file',
content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}},
},
},
})
async generatePdf(): Promise<Buffer> {
// Example HTML content
const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';
const pdf = (await document.fromHtml(htmlContent));
const pdfBuffer=await pdf.saveAsBuffer();
return pdfBuffer;
}
constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}
}
import
If True Then
inject
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'from '@loopback/core'; import { Request, RestBindings, @get, response, ResponseObject, oas, param, Response, requestBody} from '@loopback/rest'; const IronPdf = require("@ironsoftware/ironpdf"); const document=IronPdf.PdfDocument; var config=IronPdf.IronPdfGlobalConfig config.setConfig({licenseKey:''}); / * A simple controller @to bounce back http requests */ export class ReportController { @get('/generate-pdf', { responses: { '200': { description: 'PDF file', content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}}}}}) async generatePdf(): Promise<Buffer> { const htmlContent = '<html><body><h1> Hello, IronPDF!</h1></body></html>'; const pdf = (await document.fromHtml(htmlContent)); const pdfBuffer=await pdf.saveAsBuffer(); Return pdfBuffer; } constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {} }
La création d'instances de rapport et la génération de PDF sont gérées par le ReportController. Le contenu HTML est converti en un tampon PDF à l'aide d'IronPDF et retourné via la méthode generatePdf.
Pour rendre le HTML en PDF, la fonction generatePdf utilise IronPDF. Le contrôleur LoopBack gère cette intégration avec aisance. Le contenu HTML du client est ensuite reçu en définissant un endpoint get, /generate-pdf. Nous transformons les informations HTML fournies en PDF à l'intérieur du point de terminaison en utilisant la bibliothèque IronPDF.
Spécifiquement, nous utilisons pdf.saveAsBuffer()produire un tampon binaire duFichier PDFet IronPdf.fromHtml(htmlContenu)pour construire un objet PDF à partir d'un fichier JSON. Ensuite, le client reçoit ce buffer avec le type MIME approprié.(application/pdf). Les problèmes qui surviennent lors de la création de PDFs sont détectés et enregistrés par le serveur, qui écoute sur le port 3000. Le client reçoit un code de statut 500 en réponse. Cette configuration permet de créer des PDF dynamiques à partir de contenu HTML, ce qui est utile pour créer des factures, des rapports ou d'autres documents pour une application web.
Enfin, l'intégration de IronPDF avec LoopBack 4 offre une combinaison puissante pour le développement d'applications en ligne. Avec LoopBack 4, les développeurs peuvent facilement créer des API RESTful grâce à un cadre solide qui leur permet de se concentrer sur la logique métier au lieu du code standard. Cependant, IronPDF dispose de fonctionnalités fluides de génération de PDF qui permettent de créer des documents PDF dynamiques à partir de texte HTML.
De plus, le processus de développement est simplifié par la flexibilité et la facilité d'utilisation à la fois de LoopBack 4 et d'IronPDF, permettant aux développeurs de produire rapidement des applications de haute qualité. Comme LoopBack 4 gère les contrôles d'accès du backend de l'API et IronPDF s'occupe de la création de PDF, les développeurs peuvent se concentrer sur la satisfaction des besoins commerciaux et offrir des expériences utilisateur exceptionnelles.
Nous pouvons garantir des solutions logicielles haut de gamme riches en fonctionnalités pour les clients et les utilisateurs finaux en intégrant IronPDF et les produits Iron Software dans votre pile de développement. De plus, cette base solide facilitera l'optimisation des processus, des systèmes backend et des initiatives. À partir de 749 $ chacun sontIronSoftware. Ces technologies conviennent bien aux projets de développement logiciel contemporains en raison de leur documentation complète, de leur communauté en ligne dynamique de développeurs et de leurs mises à jour fréquentes.
9 produits de l'API .NET pour vos documents de bureau