FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Caractéristiques d'un fichier PDF Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Caractéristiques d'un fichier PDF Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Caractéristiques d'un fichier PDF Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Caractéristiques d'un fichier PDF Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Caractéristiques d'un fichier PDF Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Caractéristiques d'un fichier PDF Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Caractéristiques d'un fichier PDF Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Caractéristiques d'un fichier PDF Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Caractéristiques d'un fichier PDF Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Caractéristiques d'un fichier PDF Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Caractéristiques d'un fichier PDF Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Caractéristiques d'un fichier PDF Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Caractéristiques d'un fichier PDF Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Caractéristiques d'un fichier PDF Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Caractéristiques d'un fichier PDF Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Caractéristiques d'un fichier PDF

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Caractéristiques d'un fichier PDF Empty
MessageSujet: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 16:35

Une petite (moyenne) sub, qui fait appel à KGF.dll, qui renvoie dans le clipboard les caractéristiques d'un fichier pdf: date de création, auteur, etc.
Avec un exemple d'utilisation, sur KGF.pdf...
Code:
DIM f$
f$ = "C:\PANORAMIC\KLAUS\DLLs\KGF.pdf": ' fichier pdf à examiner
WIDTH 0, 440: HEIGHT 0,180: color 0,180,255,255
MEMO 1: TOP 1,20: WIDTH 1,400: HEIGHT 1,110: FONT_NAME 1,"Lucida Console"
DLL_ON "C:\PANORAMIC\KLAUS\DLLs\KGF.dll"
PRINT f$
PdfInfo(f$)
CLIPBOARD_PASTE 1
END
' ==============================================================================
SUB PdfInfo(f$)
' Caractéristiques d'un fichier pdf -> clipboard
IF LABEL("Extra") = 0 THEN LABEL Extra
DIM_LOCAL inf$, pa$, pb$, pc$, pd$, pr%, pk%, pf%, ps1$, ps2$
IF FILE_EXISTS(f$) = 0 THEN EXIT_SUB
FILEBIN_OPEN_READ 9, f$: pa$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
pr% = DLL_CALL2("ReadBinaryFileToString",ADR(f$),ADR(pa$))
pb$ = "/CreationDate": ' séquence cherchée
GOSUB Extra
inf$ = "Date Création:"+STRING$(5," ")
inf$ = inf$ + MID$(pb$,7,2)+"/"+MID$(pb$,5,2)+"/"+LEFT$(pb$,4)+" "
inf$ = inf$ + MID$(pb$,9,2)+":"+MID$(pb$,11,2)
pb$ = "/ModDate": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+"Date Modification: "
inf$ = inf$ + MID$(pb$,7,2)+"/"+MID$(pb$,5,2)+"/"+LEFT$(pb$,4)+" "
inf$ = inf$ + MID$(pb$,9,2)+":"+MID$(pb$,11,2)
pb$ = "/Producer": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+"Producteur:"+STRING$(8," ")
inf$ = inf$ + pb$
pb$ = "/Author": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+"Auteur:"+STRING$(12," ")
inf$ = inf$ + pb$
pb$ = "/Creator": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+"Créateur:"+STRING$(10," ")
inf$ = inf$ + pb$
pb$ = "/Title": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+"Titre:"+STRING$(13," ")
inf$ = inf$ + pb$
CLIPBOARD_STRING_COPY inf$
IF 2 = 3
Extra:
    ' pb$: séquence cherchée dans pa$
    pk% = INSTR(pa$, pb$): IF pk% = 0 THEN pb$ = "?": RETURN: ' non trouvé
    FOR pr% = pk%+LEN(pb$) TO pk%+100
        pc$ = MID$(pa$, pr%, 1)
        IF pc$ = "<" OR pc$ = "(" THEN EXIT_FOR: ' début de donnée
    NEXT pr%
    ps1$ = pc$: ' balise de début ('<' ou '(') en pr%
    ps2$=">": IF ps1$ = "(" THEN ps2$=")"
    FOR pf% = pr% TO pr%+1000
        IF MID$(pa$, pf%, 1) = ps2$ THEN EXIT_FOR: ' balise de fin
    NEXT pf%
    ' extraction de la donnée entre les balises
    IF pf% = (pr%+1) THEN pb$ = "?": RETURN: ' donnée vide
    pd$ = MID$(pa$, pr%+1, pf%-pr%-1): ' séquence entre balises
    pb$ = ""
    IF ps1$ = "(": ' données en clair ascii
        pb$ = MID$(pa$, pr%+1, pf%-pr%-1)
        IF LEFT$(pb$, 2) = "D:" THEN pb$ = MID$(pb$,3,12): ' date
    ELSE
        IF LEFT$(pd$,4) = "443A": ' donnée numérique en hexa (date)
            FOR pf% = 5 TO LEN(pd$) STEP 2
                pb$ = pb$ + CHR$(HEX(MID$(pd$, pf%, 2)))
            NEXT pf%
        ELSE: ' donnée alpha en hexa, suppression des 00
            FOR pf% = 5 TO LEN(pd$) STEP 2
                pc$ = MID$(pd$, pf%, 2)
                IF pc$ <> "00" THEN pb$ = pb$ + CHR$(HEX(pc$))
            NEXT pf%
        END_IF
    END_IF
    RETURN
END_IF
END_SUB
Ce qui donne:
Caractéristiques d'un fichier PDF 0pdf
Bon, avant que vous me sautiez dessus, je veux bien reconnaître que le IF 2=3 n'est peut-être pas ce qui se fait de plus élégant...

Edit 23h25: modif, prise en compte des délimiteurs () en plus de () et des données en clair ou en hexa
... et quelques corrections de présentation, pour le test.


Dernière édition par JL35 le Ven 17 Mai 2013 - 23:45, édité 4 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 16:59

Excellent, merci JL35

J'ai très légèrement modifié l'affichage (je pense que le forum à mangé 2 des espaces dans les chaines de caractères et il y avait un petit problème de centrage de l'affichage) , j'ai adapté les chemins à ceux de mon poste de travail au boulot et j'ai remplacé le print par ce que c'est pas beau en fait le print ... mais je n'ai rien changé d'important. Une procédure à mettre de côté.

Je mets quand même ma version si ça interesse quelqu'un (puisque c'est quasiement la même)

Code:
DIM f$
f$ = "C:\TEMP\DLL\KGF.pdf": ' fichier pdf à examiner
WIDTH 0, 430: HEIGHT 0,135: color 0,180,255,255
MEMO 1: LEFT 1,10 : TOP 1,10: WIDTH 1,400: HEIGHT 1,80: FONT_NAME 1,"Lucida Console"
DLL_ON "C:\TEMP\DLL\KGF.dll"
CAPTION 0, "  Infos sur -> " + f$
PdfInfo(f$)
CLIPBOARD_PASTE 1
END
' ==============================================================================
SUB PdfInfo(f$)
' Caractéristiques d'un fichier pdf -> clipboard
IF LABEL("Extra") = 0 THEN LABEL Extra
DIM_LOCAL inf$, pa$, pb$, pc$, pd$, pr%, pk%, pf%
IF FILE_EXISTS(f$) = 0 THEN EXIT_SUB
FILEBIN_OPEN_READ 9, f$: pa$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
pr% = DLL_CALL2("ReadBinaryFileToString",ADR(f$),ADR(pa$))
pb$ = "/CreationDate <": ' séquence cherchée
pk% = INSTR(pa$, pb$): IF pk% = 0 THEN EXIT_SUB
pa$ = MID$(pa$, pk%, 1000)
GOSUB Extra
inf$ = " Date Création:    "
inf$ = inf$ + MID$(pb$,7,2)+"/"+MID$(pb$,5,2)+"/"+LEFT$(pb$,4)+" "
inf$ = inf$ + MID$(pb$,9,2)+":"+MID$(pb$,11,2)
pb$ = "/ModDate <": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+" Date Modification: "
inf$ = inf$ + MID$(pb$,7,2)+"/"+MID$(pb$,5,2)+"/"+LEFT$(pb$,4)+" "
inf$ = inf$ + MID$(pb$,9,2)+":"+MID$(pb$,11,2)
pb$ = "/Producer <": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+" Producteur:        "
inf$ = inf$ + pb$
pb$ = "/Author <": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+" Auteur:            "
inf$ = inf$ + pb$
pb$ = "/Creator <": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+" Créateur:          "
inf$ = inf$ + pb$
pb$ = "Title <": GOSUB Extra
inf$ = inf$ + CHR$(13)+CHR$(10)+" Titre:            "
inf$ = inf$ + pb$
CLIPBOARD_STRING_COPY inf$
IF 2 = 3
Extra:
    ' séquence cherchée pb$ dans pa$
    pk% = INSTR(pa$, pb$): IF pk% = 0 THEN RETURN
    FOR pr% = pk% TO 1000
        IF MID$(pa$, pr%, 1) = "<" THEN EXIT_FOR: ' début de donnée
    NEXT pr%
    ' extraction de la donnée en hexa entre les balises '<' et '>'
    FOR pf% = pr% TO 1000
        IF MID$(pa$, pf%, 1) = ">" THEN EXIT_FOR: ' fin de la donnée
    NEXT pf%
    pd$ = MID$(pa$, pr%+1, pf%-pr%-1): ' séquence
    pk% = INSTR(pd$,"2B"): IF pk%>0 THEN pd$ = lEFT$(pd$, pk%-1)
    pb$ = ""
    IF LEFT$(pd$,4) = "443A": ' donnée numérique en hexa (date)
        FOR pf% = 5 TO LEN(pd$) STEP 2
            pb$ = pb$ + CHR$(HEX(MID$(pd$, pf%, 2)))
        NEXT pf%
    ELSE: ' donnée alpha en hexa, suppression des 00
        FOR pf% = 5 TO LEN(pd$) STEP 2
            pc$ = MID$(pd$, pf%, 2)
            IF pc$ <> "00" THEN pb$ = pb$ + CHR$(HEX(pc$))
        NEXT pf%
    END_IF
    RETURN
END_IF
END_SUB
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 17:24

Tu as raison, ce qui compte c'est la sub, le reste (l'appel) n'était qu'un exemple vite fait.
Mais c'est vrai qu'on a parfois des surprises avec le forum qui intervient parfois intempestivement dans le contenu des codes en faisant sauter des caractères...

En fait, en ayant eu besoin, j'avais téléchargé un freeware: pdfinfo.exe, qui rendait le même résultat, en moins clair, et je me suis rendu compte qu'on pouvait faire aussi bien en panoramic avec la dll de Klaus, en farfouillant un peu dans la structure du pdf.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 17:55

Perso, je suis preneur de toutes ces procédures (celles ci permet d'ailleurs facilement de compléter ton explorateur de fichier ...)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 18:08

Super ! Merci pour cette belle application d'une de mes fonctions !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 22:40

Après quelques essais, je remarque que les données ne sont pas toujours stockées de la même façon dans le pdf, parfois en clair, parfois en hexa... avec des délimiteurs différents.
Désolé, du coup je regarde à faire quelque chose d'un peu plus universel...
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 22:51

OK, moi les fichiers testés avaient bien fonctionnés.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptyVen 17 Mai 2013 - 23:28

Bon, c'est corrigé sans trop de mal, je n'ai pas trouvé d'autres cas avec mes pdf.
En fait certains ont les données en clair entre parenthèses (), et d'autres les données en hexadécimal entre <>...
et dans des ordres différents, évidemment, ce serait trop simple sinon !
Jusqu'ici, après pas mal de pdfs, je n'ai vu (et traité) que ces deux cas.

Il faut dire que je n'ai pas étudié les spécifications pdf, mais cherché plutôt dans les fichiers eux-mêmes ce que je pouvais y trouver, alors ma méthode est un peu empirique.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptySam 18 Mai 2013 - 15:34

Mis à jour - Testé OK (mais bon sur mes fichiers, ça marchait déjà de toute façon et ça marche toujours Wink )
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF EmptySam 18 Mai 2013 - 18:39

Dans les renseignements fournis, je rajoute la taille (facile), je voulais ajouter le nombre de pages (utile), mais là je me casse les dents, c'est n'importe où et sous des formes diverses dans le fichier, je ne vois pas de caractéristique bien définie...

PS j'ai bien fait quelque chose pour le nombre de pages, mais il y a encore des cas ambigus et récalcitrants, en plus des données parfois volontairement codées et illisibles, alors je vais en rester là pour le moment.
Revenir en haut Aller en bas
Contenu sponsorisé





Caractéristiques d'un fichier PDF Empty
MessageSujet: Re: Caractéristiques d'un fichier PDF   Caractéristiques d'un fichier PDF Empty

Revenir en haut Aller en bas
 
Caractéristiques d'un fichier PDF
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment reconvertir un fichier exe Panoramic en fichier BAS
» le processus ne peut pas accéder au fichier car ce fichier..
» Convertir un fichier BAS panoramic en fichier EXE
» fichier avi
» Un visualiseur de fichier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: