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

YLG50 4 Messages postés jeudi 21 janvier 2010Date d'inscription 23 janvier 2010 Dernière intervention - 21 janv. 2010 à 11:45 - Dernière réponse : YLG50 4 Messages postés jeudi 21 janvier 2010Date d'inscription 23 janvier 2010 Dernière intervention
- 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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 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é 100 internautes ce mois-ci

Commenter la réponse de Renfield
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 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
YLG50 4 Messages postés jeudi 21 janvier 2010Date d'inscription 23 janvier 2010 Dernière intervention - 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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 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
YLG50 4 Messages postés jeudi 21 janvier 2010Date d'inscription 23 janvier 2010 Dernière intervention - 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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 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
YLG50 4 Messages postés jeudi 21 janvier 2010Date d'inscription 23 janvier 2010 Dernière intervention - 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.