Écriture de fonctions Azure avec le traitement de documents Telerik
Au cours de la dernière année, nous avons apporté la prise en charge .NET Core aux bibliothèques de traitement de documents Telerik. Nous avons récemment ajouté PdfProcessing à cette liste. Essayons-le dans Azure Function avec une procédure de démonstration rapide et puissante.
Les bibliothèques de traitement de documents Telerik sont un ensemble de composants permettant de créer, importer, modifier et exporter des fichiers Excel, Word et PDF. documents sans dépendances externes. Jusqu'à récemment, ces bibliothèques ne fonctionnaient que dans un environnement .NET Framework.
Au cours de la dernière année, nous avons beaucoup travaillé pour rendre les bibliothèques multi-plateformes en portant les API à fonctionner dans .NET Core et. Environnements mono via le support .NET Standard 2.0. Nous avons commencé avec la publication des RadSpreadStreamProcessing et RadZipLibrary . Dans la dernière version, 2019 R2, nous avons ajouté RadPdfProcessing à cette liste.
Dans cet article, je vais démontrer la possibilité d'exécuter RadPdfProcessing dans une fonction Azure pouvant créer un fichier PDF de 10 000 pages. document en 8 secondes! Commençons.
Configuration
Avant de poursuivre, vérifiez que les conditions préalables sont installées. Vous aurez besoin de:
- Visual Studio 2019 installé avec la charge de travail de développement Azure
- . Installez les outils Azure Functions .
- Un compte Azure est facultatif, mais recommandé (vous pouvez Testez les fonctions localement sans lui)
Pour commencer, ouvrez Visual Studio 2019 et créez un nouveau projet C # Azure Functions (figure 1).
Fig.1 (cliquez pour agrandir le chiffre)
Ensuite, appelez-le" DocumentProcessingFunctions "et cliquez sur le bouton Créer (Fig.2).
Fig.2
La dernière partie de l’assistant de projet consiste à configurer les paramètres de fonction. Pour que cette démonstration reste simple, choisissons HttpTrigger et définissons les droits d'accès à Anonymous (Fig.3).
Fig.3
Lorsque Visual Studio a terminé de générer le projet, créez un projet Reconstruisez pour restaurer les packages NuGet et compiler.
Il reste une dernière chose à faire avant de commencer à écrire du code. Au moment de la rédaction de cet article, le package Microsoft.NET.Sdk.Functions du projet est une version antérieure. Mettons à jour cela maintenant (Fig.4).
Fig.4
Ajout de références au traitement du fichier PDF
Maintenant, le projet est primé. , il est temps d'ajouter les références d'assemblages Telerik Document Processing.Il existe deux façons de procéder: via le paquet ou la référence d'assemblage NuGet.
Bien que les versions .NET Framework comportent des packages NuGet, les versions .NET Standard ne sont actuellement livrées via NuGet que dans le package Telerik.UI.for.Xamarin . Toutefois, l’installation de l’interface utilisateur Telerik pour le package Xamarin NuGet génère de nombreuses dépendances inutiles (par exemple, Xamarin.Forms). Par conséquent, la meilleure option consiste à référencer directement les assemblages.
Vous pouvez trouver les assemblages de traitement de document dans le dossier d'installation de Telerik UI for Xamarin. Cet emplacement de dossier dépend du système d'exploitation que vous utilisez.
– Mac : Utilisateur Documents Progress UI Telerik pour Xamarin [2019 R2 or later] Binaries Portable
– PC : C: Program Files ( x86) Progress UI Telerik pour Xamarin [2019 R2 or later] Binaries Portable (Fig.5).
Fig.5
Remarque: Si vous ne possédez pas déjà l'interface utilisateur pour Xamarin Si vous possédez une licence, téléchargez-la à partir de la page Telerik UI pour Xamarin downloads . Option 2: Si vous ne possédez pas de licence, démarrez Un essai sur la page de Telerik UI pour Xamarin téléchargera l’installateur.
Ajoutons maintenant au projet les trois références Telerik requises pour RadPdfProcessing (Fig.6).
Fig.6
Maintenant que les références sont ajoutées, nous sommes prêts à commencer à écrire la fonction.
Écriture de la fonction
Le projet est généré avec une classe générique Function1 . Nous ne souhaitons pas utiliser ceci car le nom de classe de la fonction est généralement utilisé pour le nom de la fonction, qui devient partie intégrante de l'URL du HttpTrigger. Oui, vous pouvez renommer la fonction pour qu'elle soit différente de la classe, mais nous nous en tiendrons aux valeurs par défaut pour ce tutoriel.
Supprimons Function1.cs et ajoutons une nouvelle fonction au projet. Vous pouvez le faire de la même manière que vous ajoutez une classe, sauf que vous souhaitez choisir le modèle "Fonction Azure" (Fig.7).
Fig.7
Ceci ouvrira une nouvelle fenêtre dans laquelle comme nous l'avons fait précédemment, choisissez HttpTrigger et définissez les droits d'accès à Anonymous (Fig.8).
Fig.8
Votre projet devrait maintenant ressembler à ceci (Fig.9):
Fig.9
Explications sur le fonctionnement des fonctions Azure ou instructions sur la marche à suivre utiliser RadPdfProcessing lui-même n’entre pas dans le cadre de ce didacticiel, mais je ne voulais toujours pas vous laisser échapper un gros bloc de code sans explication, j’ai donc laissé des commentaires de code pour expliquer le rôle de chaque section.
À un niveau élevé, voici les étapes:
1. La fonction est déclenchée lorsqu'un GET / POST est demandé à l'URL de la fonction. Un paramètre pageCount peut ou non être transmis dans la chaîne de requête (la valeur par défaut est 10 000 pages).
2. Un exemple de fichier BarChart.pdf est téléchargé à partir d'un blob utilisant HttpClient pour être utilisé comme source originale.
3. RadPdfProcessing entre et crée un document de travail. Une boucle for, à l'aide de pageCount, est utilisée pour insérer une page dans ce document (cette page est une copie intégrale de l'exemple de PDF).
4. Le fichier PDF final créé par RadPdfProcessing est renvoyé au client à l'aide de FileResult.
Voici le code, vous pouvez remplacer tout le contenu de votre classe GeneratePdf par:
avec
System;
avec
.
en utilisant
System.Linq;
en utilisant
System.Net.Http;
[19659000]
. utilisant
Les tâches système
utilisant
la méthode.Web.Http;
using
Microsoft.AspNetCore.Mvc;
en utilisant
Microsoft.Azure.WebJobs;
en utilisant
en utilisant
Microsoft. Azure.WebJobs.Extensions.Http;
en utilisant
Microsoft.AspNetCore.Http;
en utilisant en utilisant
en utilisant
en Microsoft.Extensions.
avec
Telerik.Windows.Documents.Fixed.For matProviders.Pdf.Export;
utilisant
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Filmage;
[1965902]. ] L'espace-noms
Les fonctions de traitement des documents
{
statique
classe
.
{
{[2019 R2 or later]
{19659087]
]
public
statique
asynchrone Tâche Exécuter [
[19659097] [HttpTrigger(AuthorizationLevelAnonymous
"get"
"post"
Route =
null
]
[19459904] [19659902]
HttpRequest req,
[19459097] Journal ILogger,
[19459097] [19459097] [19459097] [19459097] [19459097]
]
{
[19459097] {
{19659039] { {19659089] {19659089] ;
// Vérifiez si le nombre de pages préféré a été passé en tant que paramètre de requête.
chaîne
pageCountParam = req.Query [
"pageCount"
];
. Analyser le nombre de pages ou utiliser un nombre par défaut de 10 000 pages.
var pageCount =
int
.TryParse (pageCountParam,
sur
int
nombre)? count: 10000;
log.LogInformation ($
"PageCount définie: {pageCount}, début du traitement de la ... "
);
// Créez le chemin du fichier temporaire dans lequel le fichier final sera sauvegardé.
var finalFilePath = executionContext.FunctionAppDirectory +
"\ FileResultFile.pdf"
;
[19459904]
Source link