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
» Gestion d'un système client-serveur.
Caractéristiques d'un fichier PDF Emptypar Klaus Aujourd'hui à 1:15

» item_index(résolu)
Caractéristiques d'un fichier PDF Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Caractéristiques d'un fichier PDF Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Caractéristiques d'un fichier PDF Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Caractéristiques d'un fichier PDF Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Caractéristiques d'un fichier PDF Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Caractéristiques d'un fichier PDF Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Caractéristiques d'un fichier PDF Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Caractéristiques d'un fichier PDF Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Caractéristiques d'un fichier PDF Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Caractéristiques d'un fichier PDF Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Caractéristiques d'un fichier PDF Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Caractéristiques d'un fichier PDF Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Caractéristiques d'un fichier PDF Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Caractéristiques d'un fichier PDF Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 Caractéristiques d'un fichier PDF

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
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 : 51
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 : 7095
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 : 51
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 : 12298
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 : 7095
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 : 51
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 : 7095
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 : 51
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 : 7095
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
» Un visualiseur de fichier
» Convertir un fichier BAS panoramic en fichier EXE
» Please,Please un fichier ini
» Fichier <-> Datas

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: