Nombre de pages d'un fichier .ps [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010
-
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010
-
Bonjour à tous,
J'ai fait un programme qui met en file d'attente des fichiers .ps (postscript) dans pdfcreator. Pour arranger mon impression recto verso, j'ai besoin de connaître le nombre de pages des fichiers.
Quel code VBA permet de connaître le nombre de pages d'un fichier .ps?

D'avance - Merci
Salutations

8 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
Je viens d'ouvrir un fichier .ps

le nombre de page est écrit en dur :


Public Function GetPsPageCount(ByRef vsFilePath As String) As Long
Dim F As Integer
Dim sContent As String
Dim nPos As Long
    F = FreeFile
    Open vsFilePath For Input As #F
        sContent = Input(LOF(F), F)
    Close #F
    nPos = InStr(1, sContent, "%%Pages:")
    If nPos Then
        GetPsPageCount = Val(Mid$(sContent, nPos + 8, 10))
    End If
End Function


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
Pourquoi ne pas attendre le pdf et compter le nombre de pages du pdf, plutot ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010

Cela vient du fait que je fusionne le document avec pdfcreator, et comme je suis en recto verso il est nécessaire que j'insére une page blanche à certains endroits en fonction du nombre de pages des documents .ps. Ceci pour avoir l'impression que je souhaite, c'est à dire certaines pages doivent être imprimées sur la même feuille et pas sur 2 feuilles différentes. Une astuce consisterait effectivement à générer les fichiers .pdf à partir des fichiers .ps, et de compter le nombres de pages du pdf avec le code présent sur ce site. Si on pouvait l'éviter ça m'arrangerait bien.
Donc est-ce possible d'avoir le nombre de pages d'un .ps?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
j'imagine, je ne connais pas les détails de ce type de fichier.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
lisible sous notepad, ton fichier ps (pas de compression particulière) ?

si oui, suffit apparement de compter le nombre de balises :

%%Page

www.postscript.org/FAQs/language/node3.html


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010

Effectivement, j'ai ouvert 3 fichiers .ps avec notepad, et il faut compter le nombre de %%page: (avec les :) dans le texte. Je vais plutôt utiliser word, car je pense que cela va être plus facile à piloter.
Merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
piloter ??

euh....
notepad, c'etait pour le test rapide.

l'idée est de le faire en VB...

tu ouvre le fichier, tu regarde le contenu, tu compte...



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010

"Le nombre de pages est écrit en dur"

Oui, mais dans les fichiers que j'ai, il y a 2 endroits "%%pages:"
-un en début de fichier --> %%pages: (atend)
-un en fin de fichier --> %%pages: 3
Le code mentionné renvoie la valeur 0 car il tombe sur le premier %%pages: qu'il a trouvé. pour résoudre ce problème je recherche à partir du 300ème caractére
nPos = InStr(300, sContent, "%%Pages:")

Ce n'est pas très puriste comme méthode, mais bon, cela m'évite une boucle de test

Merci, pour ton aide
bonne journée