Fermer

juin 10, 2019

É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)

 Création d'un nouveau projet Azure Functions "title =" Création d'un nouveau projet Azure Functions "data-openoriginalimageonclick =" true "data-method =" ResizeFitToAreaArguments " data-customsizemethodproperties = "{" MaxWidth ":" 600 "," MaxHeight ":" "," ScaleUp ": false," Qualité ":" Elevé "} /> </a data-recalc-dims=

Ensuite, appelez-le" DocumentProcessingFunctions "et cliquez sur le bouton Créer (Fig.2).

Fig.2

 Définir le nom du projet" title = "Définir le nom du projet" data-openoriginalimageonclick = "true "/> </a data-recalc-dims=

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

 Paramètres de fonction "title =" Paramètres des fonctions "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

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

 Mise à jour des packages NuGet "title =" Mise à jour des packages NuGet "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

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

 Dossier Assemblies "title =" Dossier Assemblies "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

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

 Références du projet Telerik "title =" Références du projet Telerik "/></p data-recalc-dims=

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

 Ajouter une nouvelle classe de fonctions "title =" Ajouter une nouvelle classe de fonctions "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

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

 Paramètres de fonction "title =" Paramètres de fonction "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

Votre projet devrait maintenant ressembler à ceci (Fig.9):

Fig.9

 Fonction GeneratePdf Start "title =" Fonction GeneratePdf Start "data-openoriginalimageonclick =" true "/> </a data-recalc-dims=

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

{

 public </code data-recalc-dims= 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