Passer au contenu du pied de page
.NET AIDE

streamjsonrpc c# (Comment ça fonctionne pour les développeurs)

En utilisant le protocole JSON-RPC, StreamJsonRpc en C# permet une communication efficace entre les clients et les serveurs à travers divers niveaux de transport. Avec l'aide de cette bibliothèque, les appels de procédures distantes peuvent être mis en œuvre plus facilement, permettant 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 s'ils étaient locaux. En permettant la création dynamique de PDF basée sur des données transférées via des requêtes JSON-RPC, StreamJsonRpc améliore les capacités applicatives lorsqu'il est utilisé avec IronPDF, un cadre complet .NET pour la génération et la manipulation de PDF. Pour les développeurs cherchant à simplifier le processus de création de rapports personnalisés, de factures ou de toute application centrée sur les documents devant générer des PDF à la demande, cette interface est très utile.

IronPDF offre aux développeurs la flexibilité et l'efficacité d'organiser et de livrer le contenu en supportant la conversion de HTML, ASPX et de données brutes en publications PDF de haute qualité. StreamJsonRpc et IronPDF travaillent ensemble pour permettre aux développeurs C# de créer des applications réactives et évolutives qui combinent facilement des PDF complexes avec des appels de procédures distantes.

Qu'est-ce que StreamJsonRpc ?

StreamJsonRpc est une bibliothèque multiplateforme conçue pour faciliter les appels de procédures distantes (RPC) en utilisant un protocole filaire léger et efficace. Il utilise un mécanisme de transport sous-jacent qui supporte divers canaux de communication tels que TCP/IP, les pipes nommés et HTTP. La bibliothèque exploite les événements .NET pour gérer les demandes et réponses entrantes, fournissant un mécanisme robuste pour la communication asynchrone. Les développeurs peuvent attacher des implémentations de méthodes pour gérer les demandes RPC et définir des comportements personnalisés en utilisant l'API StreamJsonRpc. StreamJsonRpc est disponible en tant que bibliothèque portable .NET, garantissant la compatibilité à travers différentes plateformes et permettant une intégration transparente dans diverses applications .NET.

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 1

Un solide support pour la communication bidirectionnelle, y compris les notifications et le rapport de progression, est une des caractéristiques clés de StreamJsonRpc. En supportant divers protocoles de transport, y compris HTTP, les pipes nommés et TCP/IP, il donne aux programmes plus d'options de communication. La sérialisation et la désérialisation des messages JSON-RPC sont gérées par StreamJsonRpc, garantissant la compatibilité sur de nombreuses plateformes et langages informatiques supportant JSON.

StreamJsonRpc a été conçu avec la performance et l'extensibilité à l'esprit. Il est compatible avec les programmes C# existants et peut être utilisé pour construire des applications client-serveur, des architectures de microservices, des systèmes distribués et d'autres applications où une communication fiable et efficace est cruciale. Lors de l'intégration d'appels de procédures distantes dans des projets C#, les développeurs ont tendance à le choisir en raison de sa fiabilité et de sa facilité d'utilisation.

Caractéristiques de StreamJsonRpc

Une vaste collection de fonctionnalités est fournie par le StreamJsonRpc de C#, qui est conçu pour faciliter et améliorer la communication des applications client-serveur basées sur le protocole JSON-RPC.

Appels de Procédures Distantes (RPC)

En considérant les opérations distantes comme s'il s'agissait d'appels de fonctions locales, StreamJsonRpc permet aux clients d'appeler des méthodes sur un serveur via des appels de procédures distantes. En masquant les complexités de la communication réseau, cette abstraction facilite la création d'applications distribuées.

Communication Bidirectionnelle

La communication client-serveur bidirectionnelle est prise en charge par la bibliothèque. La communication en temps réel et les mises à jour sont rendues possibles par la capacité des clients à envoyer des demandes aux serveurs, qui peuvent à leur tour répondre avec des notifications ou des résultats.

Agnosticisme de la couche de transport

Parce qu'il est agnostique de la couche de transport, StreamJsonRpc peut fonctionner sur une variété de protocoles de transport, y compris HTTP, les pipes nommés et TCP/IP. Grâce à cette adaptabilité, les développeurs peuvent sélectionner la meilleure méthode de transport en fonction des besoins de leurs applications et des configurations réseau.

Sérialisation et Désérialisation

Il gère la sérialisation et la désérialisation des messages JSON-RPC, garantissant une communication fluide sur diverses plateformes et langages informatiques capables de JSON.

Rapport de Progression

Des techniques de rapport de progression sont prises en charge par StreamJsonRpc pour les activités de longue durée. Cette fonction améliore l'expérience utilisateur et la transparence en permettant aux serveurs de mettre à jour les clients sur l'état des processus en cours.

Gestion des erreurs

Pour gérer les exceptions et les problèmes qui surgissent pendant l'invocation de méthodes distantes, la bibliothèque dispose de fonctions robustes de gestion des erreurs. Cela garantit la résilience et la fiabilité des systèmes dispersés.

Points d'Extension

StreamJsonRpc peut être étendu par les développeurs pour alterer sa fonctionnalité ou l'inclure dans des architectures d'applications existantes. Grâce à sa polyvalence, il peut être adapté pour répondre à une variété de besoins d'intégration et de scénarios d'application.

Optimisation des Performances

Grâce à une gestion efficace des messages personnalisés et de la couche de transport, StreamJsonRpc maximise le débit dans la communication client-serveur tout en garantissant un faible surcoût.

Support Asynchrone

Grâce à l'utilisation d'opérations asynchrones, il permet aux applications d'atteindre une meilleure réactivité et évolutivité. Il supporte entièrement les motifs de communication asynchrone.

Interopérabilité

Grâce à la conformité au standard JSON-RPC, StreamJsonRpc facilite l'intégration fluide dans divers contextes en favorisant l'interopérabilité entre les applications C# et les services construits dans d'autres langages qui supportent JSON.

En plus de ces principales caractéristiques, il y a quelques fonctionnalités bonus au-delà de la spécification JSON-RPC, notamment le support pour la sérialisation binaire compacte et le proxy client dynamique.

Créer et Configurer StreamJsonRpc C

Un client et un serveur doivent être configurés pour créer et configurer StreamJsonRpc dans une application C#. Les instructions détaillées pour chaque partie sont fournies ci-dessous :

Configurez votre projet

Tout d'abord, assurez-vous que votre projet .NET est prêt. Vous pouvez en créer un nouveau avec Visual Studio ou le .NET CLI.

dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
SHELL

Installer le paquet StreamJsonRpc

Pour implémenter la communication JSON-RPC, installez le paquet StreamJsonRpc depuis NuGet. Il contient les bibliothèques nécessaires.

dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
SHELL

Implémenter le serveur JSON-RPC

Faites une classe qui servira de serveur pour le JSON-RPC. Observez cet exemple simple :

using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;

public class MyService
{
    // Asynchronous method to add two integers
    public Task<int> AddAsync(int a, int b)
    {
        return Task.FromResult(a + b);
    }

    // Asynchronous method to greet a user
    public Task<string> GreetAsync(string name)
    {
        return Task.FromResult($"Hello, {name}!");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Initialize the service offering RPC methods
        var service = new MyService();

        // Create a StreamJsonRpc server listening on websockets
        var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));

        // Add service as RPC target
        jsonRpc.AddLocalRpcTarget(service);

        // Start listening for incoming JSON-RPC requests
        jsonRpc.StartListening();

        Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
        Console.WriteLine("Press any key to stop the server...");

        // Wait for user input to stop the server
        Console.ReadKey();

        // Dispose resources when done
        jsonRpc.Dispose();
    }
}
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;

public class MyService
{
    // Asynchronous method to add two integers
    public Task<int> AddAsync(int a, int b)
    {
        return Task.FromResult(a + b);
    }

    // Asynchronous method to greet a user
    public Task<string> GreetAsync(string name)
    {
        return Task.FromResult($"Hello, {name}!");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Initialize the service offering RPC methods
        var service = new MyService();

        // Create a StreamJsonRpc server listening on websockets
        var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));

        // Add service as RPC target
        jsonRpc.AddLocalRpcTarget(service);

        // Start listening for incoming JSON-RPC requests
        jsonRpc.StartListening();

        Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
        Console.WriteLine("Press any key to stop the server...");

        // Wait for user input to stop the server
        Console.ReadKey();

        // Dispose resources when done
        jsonRpc.Dispose();
    }
}
Imports Microsoft.AspNetCore.Hosting
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks

Public Class MyService
	' Asynchronous method to add two integers
	Public Function AddAsync(ByVal a As Integer, ByVal b As Integer) As Task(Of Integer)
		Return Task.FromResult(a + b)
	End Function

	' Asynchronous method to greet a user
	Public Function GreetAsync(ByVal name As String) As Task(Of String)
		Return Task.FromResult($"Hello, {name}!")
	End Function
End Class

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize the service offering RPC methods
		Dim service = New MyService()

		' Create a StreamJsonRpc server listening on websockets
		Dim jsonRpc As New JsonRpc(New ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"))

		' Add service as RPC target
		jsonRpc.AddLocalRpcTarget(service)

		' Start listening for incoming JSON-RPC requests
		jsonRpc.StartListening()

		Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
		Console.WriteLine("Press any key to stop the server...")

		' Wait for user input to stop the server
		Console.ReadKey()

		' Dispose resources when done
		jsonRpc.Dispose()
	End Sub
End Class
$vbLabelText   $csharpLabel

Classe MyService : Spécifie les méthodes que le client peut appeler à distance, telles que AddAsync et GreetAsync.

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 2

Cela démarre une nouvelle instance JsonRpc, initialise MyService, et configure un gestionnaire de messages WebSocket pour écouter à ws://localhost:8080. Le serveur expose MyService comme une nouvelle cible RPC locale et commence à attendre que des requêtes JSON-RPC arrivent. Appuyez sur une touche pour arrêter l'écoute et libérer les ressources.

Configuration du client

Faites une classe qui fonctionnera comme le client pour le JSON-RPC. Observez cet exemple simple :

using StreamJsonRpc;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Create a JSON-RPC client connected to the WebSocket server endpoint
        var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));

        // Start listening for incoming messages from the server
        await proxy.StartListeningAsync();

        // Invoke the AddAsync method on the server
        var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
        Console.WriteLine($"AddAsync result: {resultAdd}");

        // Invoke the GreetAsync method on the server
        var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
        Console.WriteLine($"GreetAsync result: {resultGreet}");

        // Dispose the proxy when done
        proxy.Dispose();
    }
}
using StreamJsonRpc;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Create a JSON-RPC client connected to the WebSocket server endpoint
        var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));

        // Start listening for incoming messages from the server
        await proxy.StartListeningAsync();

        // Invoke the AddAsync method on the server
        var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
        Console.WriteLine($"AddAsync result: {resultAdd}");

        // Invoke the GreetAsync method on the server
        var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
        Console.WriteLine($"GreetAsync result: {resultGreet}");

        // Dispose the proxy when done
        proxy.Dispose();
    }
}
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Create a JSON-RPC client connected to the WebSocket server endpoint
		Dim proxy = New JsonRpc(New ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"))

		' Start listening for incoming messages from the server
		Await proxy.StartListeningAsync()

		' Invoke the AddAsync method on the server
		Dim resultAdd = Await proxy.InvokeAsync(Of Integer)("AddAsync", 10, 20)
		Console.WriteLine($"AddAsync result: {resultAdd}")

		' Invoke the GreetAsync method on the server
		Dim resultGreet = Await proxy.InvokeAsync(Of String)("GreetAsync", "John")
		Console.WriteLine($"GreetAsync result: {resultGreet}")

		' Dispose the proxy when done
		proxy.Dispose()
	End Function
End Class
$vbLabelText   $csharpLabel

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 qui sont définies sur le serveur (MyService) en établissant une connexion avec le serveur JSON-RPC. Enfin, il montre les résultats que le serveur a retournés et libère les ressources après que les appels RPC soient terminés.

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 3

Démarrage

Les pages PDF peuvent être générées dynamiquement dans des applications C# en intégrant StreamJsonRpc avec IronPDF et en utilisant les données échangées via les requêtes JSON-RPC. Ceci est un guide de base pour la configuration d'IronPDF et de StreamJsonRpc :

Qu'est-ce qu'IronPDF ?

IronPDF peut être utilisé par les programmes C# pour créer, lire, et éditer des documents PDF. Cet outil facilite pour les développeurs la conversion d'informations HTML, CSS et JavaScript en PDFs de haute qualité, prêts à imprimer. Parmi les tâches cruciales figurent l'ajout d'en-têtes et de pieds de page, la division et la fusion de PDF, le filigranage de documents, et la conversion de HTML en PDF. IronPDF est utile pour une variété d'applications car il prend en charge à la fois le .NET Framework et .NET Core.

Parce que les PDF sont faciles à utiliser et offrent une pléthore de contenu, les développeurs peuvent facilement les intégrer dans leurs produits. Parce qu'IronPDF peut gérer des mises en page complexes et de la mise en forme avec aisance, les PDF de sortie qu'il génère correspondent presque au texte HTML d'origine.

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 4

Caractéristiques de IronPDF

Génération de PDF à partir de HTML

Convertissez JavaScript, HTML et CSS en PDF. IronPDF supporte les requêtes média et le design réactif, deux standards web contemporains. C'est un outil utile pour décorer dynamiquement des documents PDF, rapports et factures en utilisant HTML et CSS.

Édition de PDF

Des PDF préexistants peuvent avoir du texte, des photos et d'autres contenus ajoutés à eux. Prenez le texte et les images des fichiers PDF. Les développeurs peuvent combiner de nombreux PDF en un seul fichier, ou diviser les fichiers PDF en plusieurs documents séparés. Ajoutez des filigranes, des annotations, des en-têtes et des pieds de page.

Conversion PDF

Il est possible de convertir une variété de formats de fichiers, notamment des fichiers Word, Excel et image, en PDF en utilisant IronPDF. Avec ça, vous pouvez également effectuer des conversions de PDF en image (PNG, JPEG, etc.).

Performance et Fiabilité

La haute performance et la fiabilité sont des qualités de conception souhaitées dans les environnements industriels. IronPDF gère facilement des ensembles de documents volumineux.

Installer IronPDF

Pour obtenir les outils dont vous avez besoin pour travailler avec des PDFs dans vos projets .NET, installez le package IronPDF.

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

StreamJsonRpc avec IronPDF

Créer une classe de service

Fournissez des méthodes dans la classe de service PdfService.cs qui créeront des PDF à partir des données reçues. À titre d'illustration :

using IronPdf;
using System.IO;
using System.Threading.Tasks;

public class PdfService
{
    // Asynchronously generates a PDF from HTML content
    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
{
    // Asynchronously generates a PDF from HTML content
    public async Task<byte[]> GeneratePdfAsync(string htmlContent)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        return await pdf.BinaryDataAsync();
    }
}
Imports IronPdf
Imports System.IO
Imports System.Threading.Tasks

Public Class PdfService
	' Asynchronously generates a PDF from HTML content
	Public Async Function GeneratePdfAsync(ByVal htmlContent As String) As Task(Of Byte())
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		Return Await pdf.BinaryDataAsync()
	End Function
End Class
$vbLabelText   $csharpLabel

Configurer le serveur StreamJsonRpc

Utilisez Program.cs comme interface sur le serveur pour que StreamJsonRpc offre la méthode GeneratePdfAsync sur un stream JSON-RPC :

using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Initialize PdfService which generates PDFs
        var service = new PdfService();

        // Create JSON-RPC server listening on websockets
        var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));

        // Add the PdfService as an RPC target
        jsonRpc.AddLocalRpcTarget(service);

        // Start listening for incoming JSON-RPC requests
        jsonRpc.StartListening();

        Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
        Console.WriteLine("Press any key to stop the server...");

        // Wait for user input to stop the server
        Console.ReadKey();

        // Gracefully stop listening and dispose resources when done
        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)
    {
        // Initialize PdfService which generates PDFs
        var service = new PdfService();

        // Create JSON-RPC server listening on websockets
        var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));

        // Add the PdfService as an RPC target
        jsonRpc.AddLocalRpcTarget(service);

        // Start listening for incoming JSON-RPC requests
        jsonRpc.StartListening();

        Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
        Console.WriteLine("Press any key to stop the server...");

        // Wait for user input to stop the server
        Console.ReadKey();

        // Gracefully stop listening and dispose resources when done
        await jsonRpc.StopListeningAsync();
        jsonRpc.Dispose();
    }
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Initialize PdfService which generates PDFs
		Dim service = New PdfService()

		' Create JSON-RPC server listening on websockets
		Dim jsonRpc As New JsonRpc(New WebSocketRpcServerMessageHandler(New Uri("ws://localhost:8080")))

		' Add the PdfService as an RPC target
		jsonRpc.AddLocalRpcTarget(service)

		' Start listening for incoming JSON-RPC requests
		jsonRpc.StartListening()

		Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
		Console.WriteLine("Press any key to stop the server...")

		' Wait for user input to stop the server
		Console.ReadKey()

		' Gracefully stop listening and dispose resources when done
		Await jsonRpc.StopListeningAsync()
		jsonRpc.Dispose()
	End Function
End Class
$vbLabelText   $csharpLabel

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 5

Créer un client IronPDF

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;
using System.IO;

class ClientProgram
{
    static async Task Main(string[] args)
    {
        // Create JSON-RPC client connected to WebSocket server endpoint
        var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));

        // Start listening for incoming messages from the server
        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 resulted PDF to a file
        File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);

        Console.WriteLine("PDF generated: GeneratedPdf.pdf");

        // Dispose the proxy when done
        proxy.Dispose();
    }
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using System.IO;

class ClientProgram
{
    static async Task Main(string[] args)
    {
        // Create JSON-RPC client connected to WebSocket server endpoint
        var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));

        // Start listening for incoming messages from the server
        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 resulted PDF to a file
        File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);

        Console.WriteLine("PDF generated: GeneratedPdf.pdf");

        // Dispose the proxy when done
        proxy.Dispose();
    }
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Text
Imports System.Threading.Tasks
Imports System.IO

Friend Class ClientProgram
	Shared Async Function Main(ByVal args() As String) As Task
		' Create JSON-RPC client connected to WebSocket server endpoint
		Dim proxy = New JsonRpc(New WebSocketRpcClientMessageHandler(New Uri("ws://localhost:8080")))

		' Start listening for incoming messages from the server
		Await proxy.StartListeningAsync()

		' Example HTML content
		Dim htmlContent As String = "<html><body><h1>Hello, IronPDF!</h1></body></html>"

		' Invoke GeneratePdfAsync method on the server
		Dim pdfBytes = Await proxy.InvokeAsync(Of Byte())("GeneratePdfAsync", htmlContent)

		' Save the resulted PDF to a file
		File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes)

		Console.WriteLine("PDF generated: GeneratedPdf.pdf")

		' Dispose the proxy when done
		proxy.Dispose()
	End Function
End Class
$vbLabelText   $csharpLabel

La classe PdfService.cs est une partie fondamentale d'une implémentation de serveur StreamJsonRpc qui facilite la génération de documents PDF par une application C# en utilisant IronPDF. En utilisant le RenderHtmlAsPdf d'IronPDF, cette classe de service contient des méthodes pour gérer la conversion de matériel HTML en format PDF. Le contenu HTML est accepté en entrée via la méthode GeneratePdfAsync, qui est désignée comme asynchrone (async Task<byte[]> GeneratePdfAsync(string htmlContent)).

Cette méthode crée une instance de ChromePdfRenderer pour effectuer la conversion, produisant un document PDF avec RenderHtmlAsPdf(htmlContent). 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 forme de tableau d'octets byte[].

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 6

Cette méthode garantit une génération de PDF rapide et réactive, la rendant adaptée aux applications nécessitant de créer des documents rapidement. La logique de génération de PDF est contenue dans PdfService.cs, ce qui facilite aux développeurs l'intégration et l'exposition de cette fonctionnalité sur StreamJsonRpc. Cela permet aux clients distants d'invoquer de manière fluide des travaux de génération de PDF tout en préservant la modularité et la clarté de leur conception côté serveur.

streamjsonrpc c# (Comment ça marche pour les développeurs) : Figure 7

Conclusion

Pour résumer, les développeurs peuvent créer des applications .NET fiables et efficaces qui supportent les appels de procédures distantes (RPC) et utilisent de puissantes capacités de production de PDF en combinant StreamJsonRpc avec IronPDF. En utilisant JSON-RPC, un protocole léger pour les appels de procédures distantes, StreamJsonRpc permet une communication fluide entre les composants client et serveur. Les développeurs peuvent utiliser cela en conjonction avec IronPDF pour générer des PDF dynamiques basés sur les données déclenchées par les résultats de ces appels distants.

Lors de la préparation de rapports, factures ou de tout autre document devant représenter les données les plus récentes disponibles, cette intégration est très utile en permettant la récupération de données en temps réel et la sortie PDF. L'intégration de ces technologies optimise le processus de développement, améliore les performances et renforce la capacité de l'application à satisfaire efficacement des besoins commerciaux complexes.

Avec IronPDF et les outils de développement Iron Software, les développeurs peuvent créer plus d'applications web et de fonctionnalités plus rapidement, le tout pour un prix de départ de €liteLicense. Il accomplit cela en fusionnant ses concepts de base avec la boîte à outils immensément flexible d'Iron Software.

Les développeurs trouveront plus facile de choisir le modèle optimal si toutes les options de licence pertinentes au projet sont clairement décrites. Les avantages répertoriés ci-dessus facilitent aux développeurs la création de solutions pour une gamme de problèmes de manière rapide, coordonnée et efficace.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'une bibliothèque PDF pour convertir des chaînes HTML en PDF. De plus, la conversion de fichiers HTML en PDF peut être réalisée en utilisant la méthode RenderHtmlFileAsPdf.

Qu'est-ce que StreamJsonRpc et comment cela fonctionne-t-il en C# ?

StreamJsonRpc est une bibliothèque C# qui facilite les appels de procédure à distance en utilisant le protocole JSON-RPC. Elle permet une communication bidirectionnelle entre les clients et les serveurs via divers protocoles de transport tels que TCP/IP, les pipes nommés et HTTP.

Comment StreamJsonRpc améliore-t-il les capacités de génération de PDF ?

StreamJsonRpc améliore les capacités de génération de PDF en permettant aux clients distants d'invoquer des tâches de création de PDF via JSON-RPC, en utilisant une bibliothèque PDF pour convertir dynamiquement le contenu HTML en PDF.

Pourquoi StreamJsonRpc est-il bénéfique pour les systèmes distribués ?

StreamJsonRpc est bénéfique pour les systèmes distribués car il permet des appels de méthodes à distance sans couture, supporte les opérations asynchrones et offre une gestion robuste des erreurs, ce qui améliore la fiabilité et l'efficacité du système.

Quelles étapes sont impliquées dans la mise en place de StreamJsonRpc dans un projet C# ?

Pour configurer StreamJsonRpc dans un projet C#, vous devez créer un projet .NET, installer le package StreamJsonRpc via NuGet, et implémenter à la fois un serveur JSON-RPC et un client configuré pour la communication via un protocole de transport choisi.

StreamJsonRpc peut-il être utilisé pour générer des rapports ou des factures dans une application .NET ?

Oui, en intégrant StreamJsonRpc avec une bibliothèque de génération de PDF, vous pouvez créer dynamiquement des PDF pour des rapports ou des factures en réponse à des requêtes JSON-RPC, ce qui le rend idéal pour les applications centrées sur les documents.

Quels protocoles de transport StreamJsonRpc supporte-t-il ?

StreamJsonRpc est indépendant de la couche de transport et supporte une variété de protocoles de transport, y compris HTTP, les pipes nommés, et TCP/IP, permettant aux développeurs de choisir en fonction des besoins spécifiques de leur application.

Comment une bibliothèque PDF facilite-t-elle la manipulation de documents en C# ?

Une bibliothèque PDF en C# facilite la manipulation de documents en vous permettant de créer, lire et éditer des PDF. Elle supporte la conversion de HTML, CSS, et JavaScript en PDF, ainsi que l'ajout d'en-têtes, de pieds de page, et l'exécution d'opérations telles que la division et la fusion.

Quels sont les avantages d'utiliser des opérations asynchrones dans StreamJsonRpc ?

Les opérations asynchrones dans StreamJsonRpc améliorent la réactivité et l'évolutivité des applications en utilisant les événements .NET pour gérer les requêtes et réponses entrantes efficacement dans les systèmes distribués.

Comment StreamJsonRpc assure-t-il une gestion fiable des erreurs ?

StreamJsonRpc assure une gestion fiable des erreurs en fournissant des fonctionnalités complètes pour gérer les exceptions et les problèmes lors de l'invocation de méthodes à distance, maintenant ainsi la résilience du système distribué.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite