Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Utilisation du protocole JSON-RPC,StreamJsonRpc en C# permet une communication efficace entre les clients et les serveurs à travers différents niveaux de transport. Grâce à cette bibliothèque, les appels de procédure à distance peuvent être mis en œuvre plus facilement, ce qui permet aux développeurs de créer des systèmes distribués fiables dans lesquels les programmes peuvent appeler des méthodes sur des serveurs distants comme ils le feraient localement. En permettant la création dynamique de PDF sur la base des données transférées par l'intermédiaire deJSON-RPC streamJsonRpc améliore les capacités des applications lorsqu'il est utilisé avec IronPDF, un Framework .NET complet pour la génération et la manipulation de fichiers PDF. Pour les développeurs qui cherchent à rationaliser le processus de création de rapports personnalisés, de factures ou de toute autre application centrée sur les documents qui doit générer des PDF à la demande, cette interface est très utile.
IronPDF offre aux développeurs souplesse et efficacité dans l'organisation et la diffusion de contenu en prenant en charge la conversion de HTML, ASPX et de données brutes en publications PDF de haute qualité. StreamJsonRpc et IronPDF fonctionnent ensemble pour permettre aux développeurs C# de construire des applications réactives et évolutives qui combinent facilement des PDF complexes avec des appels de procédure à distance.
StreamJsonRpc est une bibliothèque multiplateforme conçue pour faciliter les appels de procédure à distance(RPC) à l'aide d'un protocole léger et efficace. Elle utilise un mécanisme de transport sous-jacent qui prend en charge divers canaux de communication tels que TCP/IP, named pipes et HTTP. La bibliothèque s'appuie sur les événements .NET pour gérer les demandes et les réponses entrantes, fournissant ainsi un mécanisme robuste pour la communication asynchrone. Les développeurs peuvent attacher des implémentations de méthodes pour gérer les requêtes RPC et définir des comportements personnalisés en utilisant l'API StreamJsonRpc. StreamJsonRpc est disponible en tant que bibliothèque portable .NET, ce qui garantit la compatibilité entre les différentes plateformes et permet une intégration transparente dans diverses applications .NET.
L'une des principales caractéristiques de StreamJsonRpc est sa capacité à prendre en charge la communication bidirectionnelle, y compris les notifications et les rapports d'avancement. En prenant en charge divers protocoles de transport, notamment HTTP, Named Pipes et TCP/IP, il offre aux programmes davantage d'options de communication. La sérialisation et la désérialisation des messages JSON-RPC sont gérées par StreamJsonRpc, ce qui garantit la compatibilité avec de nombreuses plateformes et langages informatiques supportant JSON.
StreamJsonRpc a été conçu dans un souci de performance et d'extensibilité. Il est compatible avec les programmes C# existants et peut être utilisé pour construire des applications client-serveur, des architectures microservices, des systèmes distribués et d'autres applications où une communication fiable et efficace est cruciale. Lorsqu'ils intègrent des appels de procédure à distance dans des projets C#, les développeurs ont tendance à les choisir en raison de leur fiabilité et de leur facilité d'utilisation.
Une collection complète de fonctionnalités est fournie par StreamJsonRpc de C#, qui a pour but de faciliter et d'améliorer la communication des applications client-serveur basées sur le protocole JSON-RPC.
En considérant les opérations à distance comme s'il s'agissait d'appels de fonctions locales, StreamJsonRpc permet aux clients d'appeler des méthodes sur un serveur par le biais d'appels de procédures à distance. En masquant les complexités de la communication réseau, cette abstraction facilite la création d'applications distribuées.
La communication bidirectionnelle client-serveur est prise en charge par la bibliothèque. La communication et les mises à jour en temps réel sont rendues possibles par la capacité des clients à soumettre des demandes aux serveurs, qui peuvent à leur tour répondre par des notifications ou des résultats.
Parce qu'il est indépendant de la couche de transport, StreamJsonRpc peut fonctionner sur une variété de protocoles de transport, y compris HTTP, Named Pipes, et TCP/IP. Grâce à cette adaptabilité, les développeurs peuvent choisir la meilleure méthode de transport en fonction des besoins de leurs applications et des paramètres du réseau.
Il gère la sérialisation et la désérialisation des messages JSON-RPC, garantissant une communication fluide entre diverses plateformes et langages informatiques compatibles avec JSON.
Les techniques de rapport d'avancement sont prises en charge par StreamJsonRpc pour les activités de longue durée. Cette fonction améliore l'expérience de l'utilisateur et la transparence en permettant aux serveurs d'informer les clients de l'état des processus en cours.
Pour gérer les exceptions et les problèmes qui surviennent lors de l'invocation de méthodes à distance, la bibliothèque dispose de fonctionnalités étendues de gestion des erreurs. Cela garantit la résilience et la fiabilité des systèmes dispersés.
StreamJsonRpc peut être étendu par les développeurs pour modifier ses fonctionnalités ou l'inclure dans des architectures d'application déjà existantes. Grâce à sa polyvalence, il peut être adapté pour répondre à une grande variété de besoins d'intégration et de scénarios d'application.
Grâce à une gestion efficace des messages personnalisés et de la couche de transport, StreamJsonRpc maximise le débit des communications client-serveur tout en garantissant une faible surcharge.
Grâce à l'utilisation d'opérations asynchrones, il permet aux applications d'améliorer leur réactivité et leur évolutivité. Il prend entièrement en charge les modèles de communication asynchrones.
Grâce à sa conformité à la norme JSON-RPC, StreamJsonRpc facilite l'intégration dans divers contextes en favorisant l'interopérabilité entre les applications C# et les services conçus dans d'autres langages qui prennent en charge JSON.
En plus de ces caractéristiques principales, la spécification JSON-RPC comporte des caractéristiques supplémentaires telles que la prise en charge de la sérialisation binaire compacte et du proxy client dynamique.
Un client et un serveur doivent être mis en place afin de créer et de configurer StreamJsonRpc dans une application C#. Les instructions détaillées pour chaque pièce sont fournies ci-dessous :
Tout d'abord, assurez-vous que votre projet .NET est prêt. Vous pouvez en créer un nouveau avec Visual Studio ou l'interface de programmation .NET.
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
IRON VB CONVERTER ERROR developers@ironsoftware.com
Pour mettre en œuvre la communication JSON-RPC, installez le paquet StreamJsonRpc de NuGet. Il contient les bibliothèques nécessaires.
dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
IRON VB CONVERTER ERROR developers@ironsoftware.com
Créez une classe qui servira de serveur pour JSON-RPC. Observez cet exemple simple :
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
var service = new MyService();
//initializes a new instance
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
jsonRpc.Dispose();
}
}
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
var service = new MyService();
//initializes a new instance
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
jsonRpc.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Classe MyService : Spécifie les méthodes que le client peut appeler à distance, telles que AddAsync et GreetAsync.
Ceci démarre une nouvelle instance JsonRpc, initialise MyService, et configure un gestionnaire de messages WebSocket pour écouter à ws://localhost:8080. Le serveur expose MyService en tant que nouvelle cible RPC locale et commence à attendre l'arrivée des requêtes JSON-RPC. Il appuie sur une touche pour arrêter l'écoute et se débarrasse des ressources.
Créez une classe qui servira de client pour JSON-RPC. Observez cet exemple simple :
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// client proxy
await proxy.StartListeningAsync();
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// client proxy
await proxy.StartListeningAsync();
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
proxy.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Cet exemple établit une connexion à ws://localhost:8080 pour démarrer une instance JsonRpc avec un gestionnaire de messages WebSocket. Il active ensuite les méthodes AddAsync et GreetAsync définies sur le serveur(Mon service) en établissant une connexion avec le serveur JSON-RPC. Enfin, il montre les résultats que le serveur a renvoyés et libère les ressources une fois les appels RPC terminés.
Les pages PDF peuvent être générées dynamiquement dans les applications C# en intégrant StreamJsonRpc à IronPDF et en utilisant les données échangées via les requêtes JSON-RPC. Il s'agit d'un guide de base pour la configuration d'IronPDF et de StreamJsonRpc :
IronPDF peut être utilisé par les programmes C# pour créer, lire et modifier des documents PDF. Cet outil permet aux développeurs de convertir facilement les informations HTML, CSS et JavaScript en PDF de haute qualité prêts à imprimer. Parmi les tâches essentielles, citons l'ajout d'en-têtes et de pieds de page, la division et la fusion de PDF, la création de filigranes et la conversion de HTML en PDF. IronPDF est utile pour une variété d'applications car il prend en charge à la fois .NET Framework et .NET Core.
Les PDF étant faciles à utiliser et offrant une multitude de contenus, les développeurs peuvent facilement les intégrer dans leurs produits. Parce qu'IronPDF peut gérer facilement des mises en page et des formatages complexes, les PDF qu'il génère en sortie correspondent pratiquement au texte HTML d'origine.
**Génération de PDF à partir de HTML
Convertissez JavaScript, HTML et CSS en PDF. IronPDF prend en charge les media queries et le responsive design, deux normes web contemporaines. Il s'agit d'un outil utile pour décorer dynamiquement des documents PDF, des rapports et des factures à l'aide de HTML et de CSS.
Édition PDF
Des textes, des photos et d'autres contenus peuvent être ajoutés à des PDF préexistants. Extraire le texte et les images des fichiers PDF. Les développeurs peuvent combiner plusieurs PDF en un seul fichier ou diviser les fichiers PDF en plusieurs documents distincts. Inclure des filigranes, des annotations, des en-têtes et des pieds de page.
Conversion PDF
Il est possible de convertir au format PDF un grand nombre de formats de fichiers, notamment Word, Excel et des fichiers images, à l'aide d'IronPDF. Il vous permet également d'effectuer la conversion de PDF en images(PNG, JPEG, etc.).
Performance et fiabilité
Les performances élevées et la fiabilité sont des qualités recherchées dans les environnements industriels. IronPDF gère facilement des ensembles de documents volumineux.
Pour obtenir les outils dont vous avez besoin pour travailler avec des PDF dans des projets .NET, installez le paquet IronPDF.
dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
Fournir des méthodes dans la classe de service PdfService.cs qui créeront des PDF à partir des données reçues. A titre d'exemple :
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Utilisez Program.cs comme interface sur le serveur pour StreamJsonRpc afin d'offrir la méthode GeneratePdfAsync sur un flux JSON-RPC :
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var service = new PdfService();
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var service = new PdfService();
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Pour se connecter au serveur et demander la création d'un PDF, implémentez le client StreamJsonRpc(ClientProgram.cs):
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
class ClientProgram
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
class ClientProgram
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
proxy.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
La classe PdfService.cs est un élément fondamental de la mise en œuvre d'un serveur StreamJsonRpc qui permet à une application C# de générer plus facilement des documents PDF à l'aide d'IronPDF. En utilisant la fonction RenderHtmlAsPdf d'IronPDF, cette classe de service contient des méthodes pour gérer la conversion du matériel HTML au format PDF. Le contenu HTML est accepté en entrée via la méthode GeneratePdfAsync, qui est désignée comme asynchrone(tâche asynchrone GeneratePdfAsync(string htmlContent)).
Cette méthode crée une instance de HtmlToPdf pour effectuer la conversion et produire un document PDF avec RenderHtmlAsPdf(htmlContenu). Les données binaires du PDF créé sont ensuite récupérées de manière asynchrone par la méthode(pdf.BinaryDataAsync())qui renvoie ensuite les données sous la forme d'un octet[] de la gamme.
Cette méthode garantit une génération de PDF rapide et réactive, ce qui la rend appropriée pour les applications qui doivent créer des documents rapidement. La logique de génération de PDF est contenue dans PdfService.cs, ce qui permet aux développeurs d'intégrer et d'exposer facilement cette fonctionnalité via StreamJsonRpc. Cela permet aux clients distants d'invoquer en douceur des tâches de génération de PDF tout en préservant la modularité et la clarté de leur conception côté serveur.
En résumé, les développeurs peuvent créer des applications .NET fiables et efficaces qui prennent en charge les appels de procédure à distance(RPC) et de tirer parti de solides capacités de production de PDF en combinant StreamJsonRpc avec IronPDF. En utilisant JSON-RPC, un protocole léger pour les appels de procédure à distance, StreamJsonRpc permet une communication fluide entre les composants du client et du serveur. Les développeurs peuvent l'utiliser en conjonction avec IronPDF pour générer des PDF dynamiques, basés sur des données, qui dépendent des résultats de ces appels à distance.
Lors de la préparation de rapports, de factures ou de tout autre document devant contenir les données les plus récentes, cette intégration est très utile car elle permet de récupérer les données en temps réel et de produire des documents PDF. L'intégration de ces technologies optimise le processus de développement, augmente les performances et renforce la capacité de l'application à satisfaire efficacement les besoins complexes des entreprises.
Grâce à IronPDF et à l'équipe deOutils de développement de logiciels IronSoftwareles développeurs peuvent créer plus d'applications web et de fonctionnalités plus rapidement, le tout pour un prix de départ de 749 $. Il y parvient en fusionnant ses concepts de base avec la boîte à outils extrêmement flexible d'Iron Software.
Les développeurs choisiront plus facilement le modèle optimal si toutes les options de licence pertinentes pour le projet sont clairement décrites. Les avantages énumérés ci-dessus permettent aux développeurs de trouver plus facilement des solutions à toute une série de problèmes de manière opportune, coordonnée et efficace.
9 produits de l'API .NET pour vos documents de bureau