Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
L'interface utilisateur de l'application multiplateforme .NET(.NET MAUI) est un framework multiplateforme permettant de créer des applications mobiles et de bureau natives avec C# et XAML. Vous pouvez utiliser .NET MAUI pour fonctionner sur Android, iOS, MacOS et Windows en utilisant une seule base de code. .NET MAUI est open-source et constitue une amélioration par rapport à Xamarin Forms. Les contrôles de l'interface utilisateur ont été réécrits de A à Z pour des raisons de performance et d'extensibilité. En outre, il s'est étendu de la plateforme mobile à des cas d'utilisation sur ordinateur. Si vous avez déjà utilisé Xamarin Forms pour créer des interfaces utilisateur multiplateformes, vous constaterez que le framework .NET MAUI a de nombreux points communs avec lui.
Il existe toutefois quelques différences. Vous pouvez construire des applications multiplateformes avec le Framework .NET MAUI en utilisant un seul projet, mais vous pouvez ajouter du code et des ressources spécifiques à la plateforme si nécessaire. L'un des principaux objectifs de .NET MAUI est de vous permettre d'écrire la plus grande partie possible de la logique de votre application et de la présentation de l'interface utilisateur dans une seule base de code. .NET MAUI sera disponible pour toutes les plateformes et prendra en charge les modèles MVVM et XAML existants.
.NET MAUI permet aux développeurs de travailler sur différentes plateformes telles que le développement mobile et les plateformes Windows.
IronPDF est un puissant convertisseur PDF capable de réaliser presque toutes les tâches qu'un navigateur peut prendre en charge. La bibliothèque .NET pour les développeurs facilite la création, la lecture et la manipulation des fichiers PDF. IronPDF utilise le moteur de Google Chrome pour convertir les fichiers HTML en fichiers PDF. Entre autres technologies web, IronPDF prend en charge HTML, ASPX,Convertir des pages Razor en PDF avec IronPDFet MVC View. IronPDF prend en charge les applications Microsoft .NET(à la fois les applications Web ASP.NET et les applications Windows traditionnelles). IronPDF peut également être utilisé pour créer des documents PDF attrayants.
IronPDF peutcréer des fichiers PDF à partir de fichiers HTML avec JavaScript et CSS contenant des fichiers JavaScript, CSS et des images.
Non seulement lesconvertir des fichiers HTML en PDF avec IronPDFvous pouvez égalementconvertir des fichiers images en PDF.
IronPDF permet de créer des documents PDF interactifs,remplir et envoyer des formulaires interactifs avec IronPDF, fusionner et diviser des documents PDF, extraire du texte et des images des PDF à partir de documents PDF, rechercher du texte dans des documents PDF, convertir des pages PDF en images, convertir des PDF en HTML, etimprimer des documents PDF à l'aide d'IronPrint.
IronPDF peut générer un document à partir d'une URL. Pour le login derrière HTMLutilisation d'IronPDF pour les formulaires de connexionil permet également l'utilisation d'identifiants de connexion au réseau, d'agents utilisateurs, de proxies, de cookies, d'en-têtes HTTP et de variables de formulaire personnalisés.
IronPDF est une bibliothèque qui peut lire et remplir des documents PDF et qui est capable d'extraire des images des documents. Il nous permet deajouter des en-têtes et des pieds de page aux fichiers PDFtexte, photos,des signets pour faciliter la navigation, des filigranes et bien d'autres choses encore. Il permet également de joindre et de séparer des pages dans un document nouveau ou existant. IronPDF est capable de convertir des documents en objets PDF sans utiliser de visionneuse Acrobat. Il est également possible de convertir un fichier CSS en document PDF et les fichiers CSS de type média peuvent être convertis en documents.
ChromePdfRenderer.RenderHtmlAsPdf
pour générer un fichier PDFTout d'abord, créez un projet en utilisant à la fois Visual Studio Code et Visual Studio. Lorsque vous utilisez Visual Studio Code, il est nécessaire d'utiliser l'outil de ligne de commande pour installer le modèle de type de projet.
Ouvrez le logiciel Microsoft Visual Studio et allez dans le menu Fichier. Sélectionnez "nouveau projet" et, dans la fenêtre du nouveau projet, sélectionnez ".NET MAUI App" Cet article utilisera une application .NET MAUI pour générer des documents PDF et les enregistrer à un emplacement approprié.
Créer un nouveau projet dans Visual Studio
Saisissez le nom du projet et sélectionnez le chemin d'accès au fichier dans la zone de texte appropriée. Cliquez ensuite sur le bouton Créer, comme dans la capture d'écran ci-dessous.
Configurer le projet
Le projet Visual Studio va maintenant générer la structure de l'application sélectionnée en suivant la plateforme .NET MAUI App. Il va maintenant ouvrir le fichier MainPage.cs
pour ajouter du code et construire/exécuter l'application.
Ajouter du code dans le fichier MainPage.cs
Ensuite, installez la bibliothèque pour tester le code.
La bibliothèque IronPDF peut être téléchargée et installée de quatre façons.
Il s'agit de
Le logiciel Visual Studio propose l'option NuGet Package Manager pour installer le paquet directement dans la solution. La capture d'écran ci-dessous montre comment ouvrir le gestionnaire de paquets NuGet.
Naviguer vers l'interface utilisateur du gestionnaire de paquets NuGet
Il s'agit d'une boîte de recherche permettant d'afficher la liste des paquets du site Web de NuGet. Dans le gestionnaire de paquets NuGet, recherchez le mot-clé "IronPDF", comme dans la capture d'écran ci-dessous.
Paquet IronPDF depuis l'interface utilisateur du gestionnaire de paquets NuGet
Dans l'image ci-dessus, les éléments de recherche associés sont listés, sélectionnez la première option pour installer le paquet dans la solution. Il sera installé sur toutes les plateformes d'application .NET MAUI telles que les plateformes Android, iOS et Windows.
Dans Visual Studio, allez dans Tools > NuGet Package Manager > Package Manager Console
Saisissez la ligne suivante dans l'onglet Console du gestionnaire de paquets :
Install-Package IronPdf
Désormais, le paquet sera téléchargé/installé sur toutes les plateformes .NET MAUI du projet en cours et sera prêt à être utilisé.
Installer le paquet dans la console du gestionnaire de paquets
La troisième méthode consiste à télécharger le paquet NuGet directement à partir de leur site web en accédant à l'adresse suivantepage du dépôt NuGet d'IronPDF.
Télécharger ledernier paquet ZIP d'IronPDF directement à partir de leur site web. Une fois téléchargé, suivez les étapes ci-dessous pour ajouter le paquet à votre projet.
Cliquez sur OK pour ajouter la référence.
Vous devrez également ajouter des références à toutes les plates-formes prises en charge par .NET MAUI.
Lorsqu'un projet est créé, un fichier appelé MainPage.xaml
est généré automatiquement. C'est ici que se trouve l'interface utilisateur de l'application .NET MAUI.
Suivez le code ci-dessous.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUI_PDF.MainPage"
>
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Image
Source="dotnet_bot.png"
SemanticProperties.Description="Cute .NET bot waving hi to you!"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
Text="Welcome to IronPDF!"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Button
x:Name="PdfBtn"
Text="Click me to generate PDF"
SemanticProperties.Hint="Click button to generate PDF"
Clicked="GeneratePDF"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Une fois le code ci-dessus ajouté au fichier MainPage.xaml
, ouvrez le fichier MainPage.xaml.cs
et incluez la méthode suivante à l'intérieur de la classe MainPage :
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
//Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
//Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
Private Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
Dim renderer As New ChromePdfRenderer()
Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>")
'Saves the memory stream as file.
Dim saveService As New SaveService()
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream)
End Sub
La méthode GeneratePDF
génère un nouveau document PDF contenant le texte "Hello, IronPDF"!..." et l'enregistre sur l'ordinateur de l'utilisateur à un emplacement spécifié.
Dans la méthode ci-dessus, un nouveauChromePdfRenderer
est créé et invoque la fonctionRenderHtmlAsPdf
(RenduHtmlAsPdf) pour produire un nouveau document PDF contenant les mots "Hello IronPDF"! ..." à partir d'une chaîne de balises HTML. Ensuite, l'enregistrement du fichier sur l'appareil de l'utilisateur sera délégué à une classe distincte, appelée SaveService. Cette classe sera créée à l'étape suivante.
Le fichier complet MainPage.xaml.cs
est donné ci-dessous. Assurez-vous que le contenu du fichier correspond à ce qui est indiqué ci-dessous avant de passer à l'étape suivante :
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF;
// This namespace is required to make use of IronPDF functionality
using IronPdf;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
//Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
}
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF;
// This namespace is required to make use of IronPDF functionality
using IronPdf;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
//Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
}
Imports IronPdf
' Change the namespace as desired, but make sure that all source files use this same namespace,
' or there will be errors!
Namespace MAUI_IronPDF
' This namespace is required to make use of IronPDF functionality
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
InitializeComponent()
End Sub
Private Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
Dim renderer As New ChromePdfRenderer()
Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>")
'Saves the memory stream as file.
Dim saveService As New SaveService()
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream)
End Sub
End Class
End Namespace
Maintenant, créez un nouveau fichier de classe appelé SaveService.cs
à la racine du projet et ajoutez le code source suivant :
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF
{
// SaveService partial class declaration ... this allows a layer of abstraction
// as we implement the save file details specially for each platform on which this app will
// operate!
public partial class SaveService
{
public void SaveAndView(string filename, string contentType, MemoryStream stream)
{
SaveFile(filename, contentType, stream);
}
// Additional partial files will provide implementations for this method specifically.
partial void SaveFile(string filename, string contentType, MemoryStream stream);
}
}
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF
{
// SaveService partial class declaration ... this allows a layer of abstraction
// as we implement the save file details specially for each platform on which this app will
// operate!
public partial class SaveService
{
public void SaveAndView(string filename, string contentType, MemoryStream stream)
{
SaveFile(filename, contentType, stream);
}
// Additional partial files will provide implementations for this method specifically.
partial void SaveFile(string filename, string contentType, MemoryStream stream);
}
}
' Change the namespace as desired, but make sure that all source files use this same namespace,
' or there will be errors!
Namespace MAUI_IronPDF
' SaveService partial class declaration ... this allows a layer of abstraction
' as we implement the save file details specially for each platform on which this app will
' operate!
Partial Public Class SaveService
Public Sub SaveAndView(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
SaveFile(filename, contentType, stream)
End Sub
' Additional partial files will provide implementations for this method specifically.
Partial Private Sub SaveFile(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
End Sub
End Class
End Namespace
Étant donné que les détails de la mise en œuvre de l'enregistrement du contenu sur les appareils des utilisateurs varient d'une plateforme à l'autre(Windows, Android, MacOS, etc)il est nécessaire d'écrire un code spécifique à la plate-forme pour chaque type d'appareil pris en charge par l'application. Pour rendre cela possible, nous définissons SaveService
comme une classe partielle(à des fins d'abstraction) contenant une méthode partielle, appelée SaveAndView
. Ensuite, l'implémentation de cette méthode sera définie dans une classe partielle SaveService.cs
séparée pour un ou plusieurs dossiers imbriqués dans le dossier Platforms de l'Explorateur de Solutions(voir l'image ci-dessous):
La structure des dossiers à mettre en œuvre pour les plates-formes croisées
Par souci de simplicité, ce tutoriel définira le fichier partiel susmentionné pour la plate-forme Windows uniquement. Créez un nouveau fichier SaveService.cs
dans le dossier de la plate-forme Windows contenant le code ci-dessous :
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronPDF;
public partial class SaveService
{
async partial void SaveFile(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
//Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
//Creates file save picker to save a file.
FileSavePicker savePicker = new();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
//Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
//Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
//Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
//Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
//Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
//Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronPDF;
public partial class SaveService
{
async partial void SaveFile(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
//Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
//Creates file save picker to save a file.
FileSavePicker savePicker = new();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
//Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
//Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
//Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
//Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
//Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
//Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
Imports Windows.Storage
Imports Windows.Storage.Pickers
Imports Windows.Storage.Streams
Imports Windows.UI.Popups
Namespace MAUI_IronPDF
Partial Public Class SaveService
Private Async Sub SaveFile(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
Dim stFile As StorageFile
Dim extension As String = Path.GetExtension(filename)
'Gets process windows handle to open the dialog in application process.
Dim windowHandle As IntPtr = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle
If Not Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons") Then
'Creates file save picker to save a file.
Dim savePicker As New FileSavePicker()
savePicker.DefaultFileExtension = ".pdf"
savePicker.SuggestedFileName = filename
'Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", New List(Of String)() From {".pdf"})
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle)
stFile = Await savePicker.PickSaveFileAsync()
Else
Dim local As StorageFolder = ApplicationData.Current.LocalFolder
stFile = Await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting)
End If
If stFile IsNot Nothing Then
Using zipStream As IRandomAccessStream = Await stFile.OpenAsync(FileAccessMode.ReadWrite)
'Writes compressed data from memory to file.
Using outstream As Stream = zipStream.AsStreamForWrite()
outstream.SetLength(0)
'Saves the stream as file.
Dim buffer() As Byte = stream.ToArray()
outstream.Write(buffer, 0, buffer.Length)
outstream.Flush()
End Using
End Using
'Create message dialog box.
Dim msgDialog As New MessageDialog("Do you want to view the document?", "File has been created successfully")
Dim yesCmd As New UICommand("Yes")
msgDialog.Commands.Add(yesCmd)
Dim noCmd As New UICommand("No")
msgDialog.Commands.Add(noCmd)
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle)
'Showing a dialog box.
Dim cmd As IUICommand = Await msgDialog.ShowAsync()
If cmd.Label = yesCmd.Label Then
'Launch the saved file.
Await Windows.System.Launcher.LaunchFileAsync(stFile)
End If
End If
End Sub
End Class
End Namespace
Créez et exécutez l'application MAUI. Une fenêtre contenant l'interface illustrée ci-dessous apparaît :
L'interface utilisateur de l'application MAUI
Cliquez sur le bouton "Générer un PDF". Après quelques instants, une fenêtre contextuelle s'affiche pour vous permettre de choisir l'emplacement du fichier PDF généré.
Sélectionner un emplacement pour enregistrer le fichier PDF
IronPDF est l'une des bibliothèques de conversion PDF les plus utilisées qui vous permet de générer, de lire, d'éditer et de formater des PDF. La bibliothèque IronPDF offre de nombreux avantages et fonctionnalités, notamment un moteur de navigation qui permet de convertir une URL donnée en fichier PDF, d'ajouter des feuilles de style CSS à des chaînes HTML et de les convertir en fichiers PDF, ainsi que de remplir des formulaires PDF. Toutes les fonctionnalités d'IronPDF sont incluses dans une bibliothèque.
IronPDF propose différentes structures de prix. Le prix de base d'IronPDF est de $749. L'assistance et les mises à jour du produit sont également disponibles moyennant une redevance d'un an. La couverture de la redistribution libre de droits peut également être achetée en tant qu'option supplémentaire.
En résumé, IronPDF est recommandé car il offre d'excellentes performances et un grand nombre de fonctionnalités pour les développeurs travaillant avec des PDF. Il prend en charge les plates-formes universelles telles que .NET MAUI. Il est également accompagné d'une assistance et d'une documentation excellentes, vous permettant d'utiliser pleinement le large éventail de la bibliothèque IronPDF et ses nombreuses fonctionnalités.
9 produits de l'API .NET pour vos documents de bureau