Étiquette : .NET

[.NET] ITextSharp : document protégé

[.NET] ITextSharp : document protégé

Nous avons vu il y a déjà quelques mois comment appliquer un filigrane sur toutes les pages d’un fichier PDF (voir liens suivants) :

J’avais utilisé cette astuce provenant d’un utilisateur des forums PC SOFT, afin de pouvoir réimprimer des factures avec un joli « DUPLICATA » affiché en oblique. Mais ce que je n’avais pas pris en compte, ce sont les fichiers auxquels j’avais mis un mot de passe pour bloquer la modification. Ces documents pouvaient être ouverts, imprimés mais leur contenu était verrouillé…

Poursuivre la lecture « [.NET] ITextSharp : document protégé »

[.NET] ITextSharp : lire les métadonnées d’un PDF

[.NET] ITextSharp : lire les métadonnées d’un PDF

En C# .NET, à l’aide de la librairie ITextSharp, on peut facilement lire les métadonnées d’un document. Pour rappel il s’agit d’une DLL qui permet de manipuler des documents PDF : parsing, ajout de filigranes, etc. Vous pouvez l’obtenir sur Sourceforge.

PdfReader p = new PdfReader(
	System.IO.File.ReadAllBytes("file.pdf") 
); 

string s = p.Info["CreationDate"];

A l’aide de Windev, on peut aussi effectuer un appel à ces fonctions .NET. Chargez l’assemblage dans votre projet, ensuite utilisez le code suivant. Attention : les tableaux d’objets ne sont pas pris en charge, il faudra donc utiliser une petite variante.

pclRead est un PdfReader dynamique <- allouer un PdfReader(File.ReadAllBytes(sInFile))
clInf est un Hashtable <- pclRead.Info
sTest = clInf.get_Item("CreationDate")

Et le tour est joué ! Dans notre exemple nous avons récupéré la date de création. Il est retourné sous cette forme : « D:AAAAMMJJ » suivi de l’heure. Bon développement !

[.NET] ITextSharp : IOException à l’ouverture

[.NET] ITextSharp : IOException à l’ouverture

Si vous obtenez une exception d’E/S en tenant d’ouvrir un PDF, cela peut être dû à un problème de permissions, soit au niveau de la DLL de l’assemblage, soit au niveau du fichier que l’on souhaite charger.

Poursuivre la lecture « [.NET] ITextSharp : IOException à l’ouverture »

[.NET] Accès à DB2 UDB iSeries + DataGridView

[.NET] Accès à DB2 UDB iSeries + DataGridView

On retrouve dans .NET les mêmes possibilités qu’en Java afin de se connecter à une base de données DB2 UDB sur un AS/400. En effet, lorsqu’on installe IBM i Access sur le PC, un kit de développement est inclus. Dedans on retrouve les assemblages nécessaires pour développer en .NET. Dans le menu démarrer vous devriez retrouver, dans le dossier IBM i, l’aide « Boite à outils de programmation« .

Poursuivre la lecture « [.NET] Accès à DB2 UDB iSeries + DataGridView »

[WD20] Récupérer l’e-mail dans l’AD avec .NET

[WD20] Récupérer l’e-mail dans l’AD avec .NET

Si vous avez besoin, pour une raison une autre, de récupérer des informations depuis l’Active Directory pour l’utilisateur déjà connecté sans utiliser les fonctions de la famille LDAP*, alors vous pouvez utiliser l’assemblage « System.DirectoryServices » de .NET. Dans l’explorateur de projets, effectuez un clic droit sur « Assemblages .NET » puis choisissez l’option « Utiliser un assemblage » du menu contextuel.

Poursuivre la lecture « [WD20] Récupérer l’e-mail dans l’AD avec .NET »

[WD19] Filigrane sur un PDF déjà généré

[WD19] Filigrane sur un PDF déjà généré

Ayant des fichiers PDF déjà générés, je cherchais une solution pour rajouter un filigrane du style « Duplicata » pour une réimpression. Travaillant en Windev, je suis tombé sur la solution de Jurassic Pork sur les forums de PC SOFT, où il conseille d’utiliser ITextSharp, un assemblage .NET qui permet de générer des PDF ou de les manipuler (séparer en plusieurs documents, fusionner, ajouter un filigrane ou un tampon, remplir des formulaires, etc).

Poursuivre la lecture « [WD19] Filigrane sur un PDF déjà généré »

[WD19] Utiliser l’API Exchange Web Services (III)

[WD19] Utiliser l’API Exchange Web Services (III)

Avec EWS Managed API 2.0, il est possible de réaliser des choses vraiment intéressantes. Il serait clairement plus simple de travailler directement en .NET mais nous allons voir ensemble ce qu’il est possible de faire dans Windev. Dans ce nouvel exemple nous allons récupérer la liste de dossiers à partir d’un dossier source.

Poursuivre la lecture « [WD19] Utiliser l’API Exchange Web Services (III) »

[WD19] Utiliser l’API Exchange Web Services (II)

[WD19] Utiliser l’API Exchange Web Services (II)

Il y a quelques mois nous avions vu comment utiliser l’API Exchange Web Services 2.0 depuis Windev. Grâce aux bibliothèques .NET fournies il est possible d’interroger un serveur Exchange et de récupérer les e-mails d’un utilisateur.

Poursuivre la lecture « [WD19] Utiliser l’API Exchange Web Services (II) »

[WD19] Utiliser l’API Exchange Web Services (I)

[WD19] Utiliser l’API Exchange Web Services (I)

Plutôt que d’utiliser les fonctions natives pour l’accès à Exchange, nous avons essayé d’accéder à un compte e-mail par l’intermédiaire de l’API “Exchange Web Services” version 2.0. Les bibliothèques sont proposées par Microsoft et peuvent être téléchargées sur le site web.

Dans cet article, nous verrons comment nous connecter à Exchange, comment récupérer dix éléments de la boite de réception, et comment enregistrer une pièce jointe sur le disque dur, dans un répertoire temporaire.

Poursuivre la lecture « [WD19] Utiliser l’API Exchange Web Services (I) »

[WD17] Le délai d’attente de la requête a expiré

[WD17] Le délai d’attente de la requête a expiré

Lorsque vous tentez d’exécuter une requête sur un serveur distant SQL Server, vous pouvez obtenir l’erreur suivante : “Erreur 80040e31, le délai d’attente de la requête a expiré”. En fait, le serveur n’a pas répondu assez vite à la commande envoyée.

En effet, il faut bien distinguer le temps d’exécution maximum d’une requête distante (qu’on définit dans les paramètres de SQL Server) et le temps accordé avant qu’une commande envoyée n’expire. C’est pour cela qu’on ne doit pas modifier directement de paramètre sur le serveur mais bien dans la chaine de connexion à la base de données.

Poursuivre la lecture « [WD17] Le délai d’attente de la requête a expiré »