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

Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Dernière intervention
23 janvier 2010
- 21 janv. 2010 à 11:45 - Dernière réponse :
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Dernière intervention
23 janvier 2010
- 23 janv. 2010 à 13:53
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
21 janv. 2010 à 16:32
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
21 janv. 2010 à 12:12
0
Merci
Pourquoi ne pas attendre le pdf et compter le nombre de pages du pdf, plutot ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Dernière intervention
23 janvier 2010
21 janv. 2010 à 14:39
0
Merci
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?
Commenter la réponse de YLG50
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
21 janv. 2010 à 14:43
0
Merci
j'imagine, je ne connais pas les détails de ce type de fichier.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
21 janv. 2010 à 14:47
0
Merci
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
Commenter la réponse de Renfield
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Dernière intervention
23 janvier 2010
21 janv. 2010 à 16:11
0
Merci
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
Commenter la réponse de YLG50
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
21 janv. 2010 à 16:23
0
Merci
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
Commenter la réponse de Renfield
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Dernière intervention
23 janvier 2010
23 janv. 2010 à 13:53
0
Merci
"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
Commenter la réponse de YLG50

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.