Fermer

juillet 5, 2019

Comment travailler avec des fichiers PDF dans une application Xamarin facile

XamarinT Dark_870x220


Découvrez comment manipuler des documents PDF au moyen de l’utilisation de PdfProcessing dans votre application Xamarin ou .NET Core.

Si vous connaissez bien nos suites Web et de bureau, vous avez probablement déjà entendu parler du Telerik Document Processing. les bibliothèques fournies avec les paquets. Lors de la dernière version, nous avons travaillé dur pour porter la bibliothèque vous permettant de travailler avec des documents PDF – RadPdfProcessing – à .NET Standard . Les nouveaux fichiers binaires sont expédiés pour la première fois avec UI Telerik pour Xamarin . Vous pouvez maintenant créer, modifier et exporter des fichiers PDF dans votre application Xamarin.

Au cas où vous ne rencontriez toujours pas l’API de ce composant et ne l’utilisiez pas, je vous montrerai quelques-unes des fonctionnalités de base et les plus utilisées, ainsi que leur utilisation.

À partir des bases

Pour commencer à travailler avec un document, vous devez d'abord instancier la classe RadFixedDocument. Il existe deux approches pour y parvenir, selon que vous souhaitiez créer un document ou en modifier un. Pour le premier scénario, il suffit d'instancier un document RadFixedDocument:

 Document RadFixedDocument = new RadFixedDocument (); 

Lorsque vous avez déjà un document PDF et que vous devez le traduire en document RadFixedDocument, la classe PdfFormatProvider vient vous aider à le faire:


Et si vous avez déjà les pages, vous pouvez les parcourir comme vous le feriez avec n’importe quelle collection:

Commençons par créer un éditeur. Le constructeur requiert un paramètre de type IContentRootElement, qui sera notre page RadFixedPage:

 FixedContentEditor editor = new FixedContentEditor (page); 

Je vais maintenant définir plusieurs champs pour pouvoir les utiliser dans la classe afin de faciliter le suivi de position:

 private statique en lecture seule double defaultLeftIndent = 50; 
privé statique double currentTopOffset = 120;

Nous avons maintenant tout défini pour commencer à dessiner notre contenu. Dans l'extrait de code suivant, je vais vous présenter la classe Block. Cette classe est chargée de faciliter la mise en page de base du texte. Cela peut sembler assez simple, mais dans le format de document PDF, seuls les fragments de texte sont pris en charge. En d'autres termes, si vous passez un long texte, il sera simplement coupé par les limites de la page. Lors de l'utilisation de la classe Block, elle peut mesurer le contenu et l'agencer sur différentes lignes afin que tout le contenu puisse être visible lors du rendu de la page.

 double currentXOffset = defaultLeftIndent; 
editor.Position.Translate (currentXOffset, currentTopOffset);
Block block = nouveau Block ();
block.GraphicProperties.FillColor = RgbColors.Black;
.HorizontalAlignment = HorizontalAlignment.Left;
block.TextProperties.FontSize = 14;
block.TextProperties.TrySetFont (nouvelle FontFamily ("Helvetica"), FontStyles.Italic, FontWeights.Bold);
("RadPdfProcessing");
block.TextProperties.TrySetFont (nouvelle FontFamily ("Helvetica"));
block.InsertText ("est une bibliothèque de traitement de documents qui permet à votre application d'importer et d'exporter des fichiers au format PDF. Le modèle de document est entièrement indépendant de l'interface utilisateur et vous permet de générer des documents élégants avec du texte, des images, des formes, etc. formatés différemment. ");
// Définissez une taille dans laquelle vous souhaitez adapter le contenu
double maxWidth = page.Size.Width - defaultLeftIndent * 2;
Taille contentMaxSize = nouvelle Taille (maxWidth, double.PositiveInfinity);
editor.DrawBlock (block, contentMaxSize);
currentTopOffset + = block.DesiredSize.Height;

Etes-vous curieux de savoir à quoi ressemble ce contenu? Je vais vous montrer une image du résultat actuel, mais au cas où vous voudriez le tester, à la fin de l'article, vous apprendrez comment enregistrer le fichier.

 RadPdfProcessing Content-1 "title =" RadPdfProcessing Content-1 "/></p data-recalc-dims=

Oui, nous avons du contenu dans notre document. Mais… ça a l'air un peu… disons simple, n'est-ce pas? Voici le Il est temps de vous présenter le logo de la bibliothèque et, bien entendu, l’API pour l’insertion d’images:

 editor.Position.Translate (300, 40); 
ImageSource source = new ImageSource (File.OpenRead (@ "../../pdfProcessing.jpg"));
editor.DrawImage(source);

C'est aussi simple que cela: définissez la source de l'image et tracez-la sur la page. Et le tour est joué! Nous avons maintenant une image en haut de la page, comme si vous l'insériez dans l'en-tête d'un document RTF.

 RadPdfProcessing Content-2 "title =" RadPdfProcessing Content-2 "/></p data-recalc-dims=

La prochaine fonctionnalité brillante I voudrais vous montrer est le dessin de tableaux. Dans le format PDF, il n'y a pas de concept pour des éléments similaires – ils sont définis comme un groupe de lignes et de fragments de texte. C'est pourquoi la génération d'un tableau à l'aide des primitives PDF n'est pas une tâche triviale. Le traitement des fichiers PDF facilite les choses, cependant. Voici à quoi ressemblerait le code si vous devez insérer un tableau avec plusieurs lignes et colonnes:

 Tableau tableau = nouveau Tableau (); 
tableau.Marge = nouveau Épaisseur (0, 20, 0, 0) ;
table.DefaultCellProperties.Padding = new Thickness (5);
Border border = new Border (1, RgbColors.Black);
table.DefaultCellProperties.Borders = new TableCellBorders (new TableCellBorders (frontière, frontière, border);
pour (int rowIndex = 0; rowIndex <10; rowIndex ++)
{
TableRow row = table.Rows.AddTableRow ();
pour (int columnIndex = 0; columnIndex <5 ; columnIndex ++)
{
Cellule Cellule = ligne.Cells.AddTableCell ();
Bloc CellBlock = cellule.Blocks.AddBlock ();
CellBlock.InsertText ($ "Ligne {rowIndex}, Cell {columnIndex} ");
}
}
editor.Position.Translate (currentXOffset, currentTopOffset);
editor.DrawTable (table);
// Gardez la position à jour
currentTopOffset + = table.DesiredSize.Heig ht;

 RadPdfProcessing Content-3 "title =" RadPdfProcessing Content-3 "/></p data-recalc-dims=

Voulez-vous être interactif?

À ce stade, nous avons examiné les éléments de base les plus récemment utilisés dans un fichier PDF. Vous êtes curieux de connaître les options plus avancées offertes par le format PDF? Les formulaires interactifs sont l’une des fonctionnalités les plus utilisées du format et sont également pris en charge par notre bibliothèque. Vous pouvez créer un document à partir de rien et utiliser les formulaires pour les utilisateurs entrent leurs données ou importent un document existant et modifient les valeurs des formulaires.Pour obtenir la liste complète des champs de formulaire pris en charge et obtenir plus de détails sur l'API, consultez notre article sur la documentation Interactive Forms Overview . Si vous souhaitez tester directement la fonctionnalité et vous plonger dans le code, nos exemples de SDK constituent un bon point de départ: Création de formulaires interactifs et Modifier les formulaires .

. Et voyons du code pour insérer un Champ Zone de texte avec une valeur initiale dans notre exemple de document:

 TextBoxField textField = document.AcroForm.FormFields.AddTextBox ("SampleTextBox");

textField.MaxLengthOfInputCharacters = 500;
textField.IsMultiline = true;
textField.IsPassword = false;
textField.IsFileSelect = false;
textField.ShouldSpellCheck = true;
textField.AllowScroll = true;
textField.Value = "Contenu de l'échantillon";

currentTopOffset + = 20;
editor.Position.Translate (currentXOffset, currentTopOffset);

editor.DrawWidget (textField, new Size (200, 25)); 

 Forme de zone de texte interactive dans un document PDF

Préservez vos données

Une fois que vous avez terminé la génération et la modification du contenu, vous besoin de le sauver. Ceci est réalisé par la classe PdfFormatProvider et ses méthodes permettant d'exporter le document dans une instance Stream ou dans un octet [].

 en utilisant (Stream stream = File.OpenWrite ("sample.pdf")) 
{
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider pdfFormatProvider = new Telerik.Windows.Documents.Fixed. FormatProviders.Pdf.PdfFormatProvider ();
// Enregistrer le document dans un flux
pdfFormatProvider.Export (document, flux);
}

C'est tout! Vous avez maintenant un document PDF utilisant les fonctionnalités les plus populaires du format.

Conclusion

Travailler avec des documents PDF est maintenant plus facile avec les fonctionnalités et l'API fournies par RadPdfProcessing. Vous pouvez rapidement générer ou modifier des documents, remplir leurs champs de formulaire ou protéger les données avec un mot de passe.

Dans ce billet, je n'ai montré que les fonctionnalités les plus utilisées. PdfProcessing, cependant, peut couvrir beaucoup plus de cas. Consultez notre documentation pour obtenir une liste complète des fonctionnalités et éléments pris en charge. Et n'oubliez pas que tout cela est compatible avec .NET Standard 2.0 afin que vous puissiez l’exécuter sur n’importe quelle plate-forme le supportant.

Si vous avez des questions pour l'équipe, n'hésitez pas à poster vos commentaires ici. Au cas où vous auriez besoin de davantage d'assistance technique, vous pouvez toujours ouvrir un ticket d'assistance ou poster dans les forums . Les mêmes personnes qui construisent les composants répondent également aux questions de nos clients. Comme toujours, nous serons plus qu'heureux d'entendre vos commentaires sur les composants.

Vous n'avez toujours pas essayé l'interface utilisateur Telerik pour Xamarin? L'essai gratuit vous attend pour vous permettre d'essayer et d'explorer tous les composants fournis dans la suite.



Source link