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

Scripts/Batch Discussion :

Imprime une page qui contient une expression [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 53
    Points : 133
    Points
    133
    Par défaut Imprime une page qui contient une expression
    Bonjour,

    j'ai un petit script qui me récupère sur le net un pdf. Je voudrais imprimer une page de ce pdf mais seulement celle qui contient une expression particulière.

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #date du jour au format qui va bien
    $datedujour = Get-Date -format "yyyyMMdd"
    #le nom du pdf en question
    $journal = $datedujour+"_TOU.pdf?1"
    # l'url pour le récupérer
    $url = "http://pdf.20mn.fr/2016/quotidien/$journal"
    # le fichier en sortie
    $output = "c:\tmp\20minutes_$datedujour.pdf"
    #je télécharge
    (new-object System.Net.WebClient).DownloadFile($url,$output)
    #j'imprime tout le journal sur l'imprimante par défaut
    Start-Process –FilePath "$output” –Verb Print
    Je souhaiterais imprimer seulement la page contenant le pattern "Cinéma" pour éviter de tout imprimer.

    je suis partit sur
    mais ça ne donne rien de bon

    Merci pour votre aide

    edit:
    je précise que le numéro indiqué sur la page n'est pas forcément le même que celui indiqué dans adobe reader (S'il y a deux pages de pub avant la page de garde, celle-ci est numérotée 1 mais est effectivement la troisième) on ne peut donc pas récupérer le N° indiqué en haut à gauche de la page.

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    C'est loin d'être aussi simple que ça !

    Il faut pouvoir lire le PDF et comme ce n'est pas fichier texte il va falloir utiliser un outils externe.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 53
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Bonjour à toi,

    C'est loin d'être aussi simple que ça !

    Il faut pouvoir lire le PDF et comme ce n'est pas fichier texte il va falloir utiliser un outils externe.
    En effet, je viens de constater que le pattern n'est pas trouvé par l'intermédiaire de select-string voire de grep sous linux.

    Il faut que j'ouvre le fichier, que j'envoie l'équivalent du ctrl-F, que je précise le pattern et que j'envoie l'impression de la page active et enfin que je ferme le fichier.


  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Tu peux utiliser par exemple itextsharp.

    Pour chercher dans une page :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reader = New-Object iTextSharp.text.pdf.pdfreader -ArgumentList 'C:\Temp\test.pdf'
    $strategie = New-Object iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy
    for ($page = 1; $page -lt $reader.NumberOfPages; $page++) {
    	$content = [iTextSharp.text.pdf.parser.PdfTextExtractor]::GetTextFromPage($reader, $page, $strategie)	
    	Write-Host $content
    }
    Et donc à la place de Write-Host $content tu peux faire ta regex
    Ou un simple $content.Contains(searthText)
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et pour extraire une page dans un nouveau fichier PDF par exemple :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $page = 1
    $document = New-Object iTextSharp.text.Document -ArgumentList $reader.GetPageSizeWithRotation($page)
    $fs = New-Object System.IO.FileStream -ArgumentList C:\Temp\tt.pdf, 'Create'
    $pdfcopyprov = New-Object iTextSharp.text.pdf.PdfCopy -ArgumentList $document, $fs
    $document.Open()
    $import = $pdfcopyprov.GetImportedPage($reader, $page)
    $pdfcopyprov.AddPage($import)
    $document.Close()
    $reader.Close()
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 53
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Tu peux utiliser par exemple itextsharp.
    Bonjour,

    j'ai oublié de préciser que je ne peux pas installer quoique ce soit sur mon poste, histoire de simplifier le problème.

  7. #7
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Il ne s'agit en aucun cas d'une installation.
    C'est juste une DLL à charger dans powershell quand tu veux l'utliser.

    Avec add-type
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  8. #8
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 53
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    problème non résolu mais contourné pas la récupération directe de la page sur le net et impression pdf.

    merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/08/2010, 14h02
  2. Réponses: 4
    Dernier message: 11/05/2007, 12h02
  3. Recharger une page qui contient un recordset
    Par zooffy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/05/2007, 14h35
  4. Réponses: 15
    Dernier message: 05/09/2006, 12h08
  5. comment faire une redirection vers une page qui contient des framsets
    Par zana74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/08/2006, 13h03

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