Nombre de pages d'un fichier .ps

Résolu
YLG50 Messages postés 4 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010 - 21 janv. 2010 à 11:45
YLG50 Messages postés 4 Date d'inscription jeudi 21 janvier 2010 Statut Membre 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

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 janv. 2010 à 16:32
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 janv. 2010 à 12:12
Pourquoi ne pas attendre le pdf et compter le nombre de pages du pdf, plutot ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
YLG50 Messages postés 4 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010
21 janv. 2010 à 14:39
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?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 janv. 2010 à 14:43
j'imagine, je ne connais pas les détails de ce type de fichier.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 janv. 2010 à 14:47
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
0
YLG50 Messages postés 4 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010
21 janv. 2010 à 16:11
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 janv. 2010 à 16:23
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
0
YLG50 Messages postés 4 Date d'inscription jeudi 21 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010
23 janv. 2010 à 13:53
"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
0
Rejoignez-nous