IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

VB.Net et ITextSharp [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut VB.Net et ITextSharp
    Bonjour,
    Je patauge depuis une semaine avec ITextSharp et la concaténation de PDF.
    Je dois pouvoir fusionner deux PDF (attestations) et les ajouter à un gros fichier de compte-rendu que j'aurais tronçonné toutes les 4 pages.
    Le but de la manip est de pouvoir imprimer automatiquement les 2 PDF toutes les 4 pages du gros PDF et de pouvoir bénéficier de l'agrafage automatique de mon imprimante.
    Pour l'instant je n'arrive qu'a compter les pages de mon gros PDF pour pouvoir contrôler sa conformité et l'essentiel des tutos est orienté C# donc je ne m'en sors pas.
    [EDIT] J'arrive aussi à creer un PDF mais je n'arrive pas à le remplir par copie de page
    Il y a t-il une âme charitable pour m'aider ?
    Merci d'avance à tous

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    J'ai un peu du mal avec le descriptif de votre problème.

    Si je comprend bien vous avez un gros pdf que vous devez diviser en partie de 4 pages que vous devez imprimer en y joignant 2 pdf représentant des attestations ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    Exactement
    Et la manipulation est à refaire plusieurs fois par jour.
    La perte de temps est énorme et il peut y avoir des erreurs au comptage des pages issues du gros PDF.
    Je pensais pouvoir concaténer les 2 attestations dans un fichier.
    Et ensuite découper le gros PDF touts les 4 pages dans une boucle en lui ajoutant le fichier concaténé.
    La dernière étape serait l'impression des multiples PDF crées en les agrafant avec l'imprimante.
    Pour info le gros PDF peut regrouper 100 dossiers ou plus, ce qui donne un fichier de 400 pages très long a trier à la main.
    Merci d'avance !

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Le problème m’intéressant j'ai fais une petite recherche sur google et j'ai trouvé du code pour récupérer les pages d'un document pdf et les sauver dans un autre. J'ai reconvertis cela et j'ai testé cela marche. Cela vous mettra sur la piste d'une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
        Public Sub ExtractPages()
            Dim writer As iTextSharp.text.pdf.PdfWriter
            Dim reader As iTextSharp.text.pdf.PdfReader
            Dim document As New iTextSharp.text.Document()
            Dim i As Integer
            Dim rot As Integer
     
            reader = New iTextSharp.text.pdf.PdfReader("d:\\GNFB 2012 Nvx 20130103.pdf")
     
            Using memoryStream = New MemoryStream()
                writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, memoryStream)
                document.Open()
                document.AddDocListener(writer)
     
                For i = 1 To 4
                    document.SetPageSize(reader.GetPageSize(i))
                    document.NewPage()
     
                    Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent
                    Dim pageImport As iTextSharp.text.pdf.PdfImportedPage = writer.GetImportedPage(reader, i)
                    rot = reader.GetPageRotation(i)
     
                    ' Traitement de la rotation du document
                    If rot = 90 Or rot = 270 Then
                        cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height)
                    Else
                        cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0)
                    End If
                Next i
     
                reader.Close()
                document.Close()
     
                File.WriteAllBytes("d:\\Copy.pdf", memoryStream.ToArray())
            End Using
     
            reader.Close()
            document.Close()
        End Sub
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    Je récupère une erreur à la fermeture du document ligne 33.
    Du coup le document ne s'enregistre pas (il est visible mais pèse 1Ko).
    Merci pour la réponse rapide !
    [EDIT] Un jour j'apprendrai à traduire le C#,ça peut toujours servir
    [RE-EDIT] l'erreur est la suivante :
    L'exceptionDisposedException n'a pas été gérée
    -Assurez-vous que vous n'avez pas libéré une ressource avant de l'utiliser.

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    J'ai du mal à comprendre pourquoi sur la ligne 33.

    Sur la 35 j'aurais dis que le document destination est ouvert par un autre programme.

    Vous avez repris mon code ou est ce un code que vous avez déjà adapté ?

    Je viens de testé en bloquant le fichier destination, moi j'ai l'exception

    Le processus ne peut pas accéder au fichier 'd:\Copy.pdf', car il est en cours d'utilisation par un autre processus.
    Effectivement sur la ligne 35.

    Si vous avez modifié le code pouvez vous le remettre et éventuellement un des pdf sur lequel vous tester ? (en fichier attaché)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    J'ai réutilisé le code en l’état,je récupère juste le nom et le chemin du fichier via un label.
    En fait, il faut d'abord fermer le document puis le reader et tout se passe bien.

    J'abuse peut-être un peu mais il y a possibilité de l'imprimer dans la foulée ?
    Merci pour le code, j'y vois plus clair dans tous les cas

  8. #8
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Logique pour la fermeture , je me demande juste pourquoi chez moi cela fonctionne .... Ha les mystères de l'informatique.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut Aide pour parser/concatener/extraire des pages
    Bonjour a tous !
    Suite à ce fil,je vous donne un petit bout de code pour gérer les PDF avec ITextSharp.
    Le code n'est pas forcement "propre", il a été récupéré à divers endroits sur le net mais il offre une solution facile pour gérer les PDF.
    En espérant qu'il puisse dépanner certains.....
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/01/2015, 18h04
  2. [VB.net 2.0] Watermark avec iTextSharp ?
    Par mimil77210 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/07/2006, 10h38
  3. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  4. Fichier PDOXUSRS.NET
    Par yannick dans le forum Paradox
    Réponses: 5
    Dernier message: 05/04/2002, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo