Le code postscript d'acrobate distiller version3 / version5 - Divers - Programmation
Marsh Posté le 25-04-2003 à 15:25:47
ca n'emballe pas les foules
Marsh Posté le 30-04-2003 à 11:31:43
pour ceux que ca aurait pu interesser http://www.planetpdf.com/
un site avec un forum de developpeur assez sympa sur pdf
Marsh Posté le 24-04-2003 à 16:55:04
Salut
J'ai un logiciel en vb qui crée des fichiers Pdf en concaténant diverses sources d'informations sous forme de fichiers Excel, PowerPoint et Word. Le traitement nécessite de faire différents retouches sur les pages concernées (ajout de la pagination, de traits et de libellé). Pour cela, je passe par le code postscript d'acrobat Distiller.
Note : la version actuelle de mon logiciel fonctionne sous la version 3 d'acrobat.
La méthode est la suivante :
Chaque fichier est imprimé sur l'imprimante distiller pour obtenir un fichier Ps (postscript).
Chaque fichier Ps est retouché pour les besoins.
Un fichier global Ps permet de faire le lien entre les multiples fichiers Ps (en rajoutant avec la syntaxe de PdfMark des favoris) qui est ensuite compilé en fichier Pdf de résultat.
Dans le fichier Ps, j'insère mes codes Ps pour un trait d'en-tête, un libellé de pied de page, un petit trait de numérotation et le numéro de page.
Voici le bout du fichier Ps sans ces codes :
%%Page: 1 1
NTPSOct95 /PageSV save put
90 rotate 0 -595.273 translate
1 594.273 translate 72 600 div dup neg scale
0 0 transform .25 add round .25 sub exch .25 add round .25 sub exch itransform translate
%%IncludeFont: Helvetica
[83 0 0 -83 0 0]/Helvetica MF
Voici le bout du fichier Ps avec ces codes :
%%Page: 1 1
NTPSOct95 /PageSV save put
90 rotate 0 -595.273 translate
1 594.273 translate 72 600 div dup neg scale
0 0 transform .25 add round .25 sub exch .25 add round .25 sub exch itransform translate
[0 65 65 0 0 0]/Helvetica-Bold MF
(3) 210 4660 MS //pagination
1 j //debut pour le petit trait
11 sl //
n //
250 4610 M //
0 4610 L //
CM [1 0 0 1 -8 -8] concat //
S //
SM //
0 g //fin pour le petit trait
0.6 0.2 0 r //couleur rouge
[0 116 116 0 0 0]/Helvetica-Bold MF //
(CHEUVREUX) 190 3840 MS //libellé
0 g //couleur noir
1 j //debut du grand trait
14 sl //
0.6 0.2 0 r //
n //
6730 280 M //
6730 4670 L //
CM [1 0 0 1 -8 -8] concat //
S //
SM //
0 g //fin du grand trait
%%IncludeFont: Helvetica
[83 0 0 -83 0 0]/Helvetica MF
C'est les mots sub exch itransform translate qui me permettent de savoir où positionner mes codes. Selon l'orientation de la page, un algorithme me permet de changer ce code selon les spécificités des axes du document.
Mes problèmes avec le Postscript sont les suivants :
1. Comme fichier source, j'ai rajouté la possibilité de prendre des fichiers Pdf. Via OLE, j'arrive à imprimer le fichier Pdf sur l'imprimante distiller et donc obtenir un fichier Ps. Malheureusement, le fichier Ps obtenu ne présente pas tout à fait la même structure qu'un fichier Ps provenant d'un fichier Word par exemple.
De ce fait, les mots sub exch itransform translate n'existent pas dans ce fichier Ps. D'où un soucis pour savoir où positionner mes codes Ps (J'ai essayé à différents endroits du fichier sans résultat concluant)?
Pourriez-vous m'indiquer à quel endroit du fichier, je pourrais positionner mes codes ? Ou, comment obtenir un fichier Ps avec une structure équivalente sur laquelle je puisse baser mes développements actuels ?
2. Par ailleurs, pourriez-vous m'indiquer comment connaître l'orientation des pages dans le fichier Ps provenant d'un fichier Pdf ? En effet, selon l'orientation d'une page, les traits, pagination et libellé ne seront pas positionnés aux mêmes endroits.
3. Actuellement, je tente de faire migrer notre logiciel vers une version compatible Acrobat 3 / Acrobat 5.
Le passage à Acrobat 5 me pose de nombreux problèmes. En effet, il semble que le
Postscript sous Acrobat 5 n'est pas le même que sous Acrobat 3.
Ainsi, tous les codes Ps que l'on insère au niveau du fichier Ps semblent totalement erronés.
Actuellement, seul la pagination a été possible en remplaçant ce code Ps (3) 210 4660 MS par celui-ci :
X Y moveto %set current point
( NbPage ) show
Mais, je ne sais pas encore pour le reste des codes Ps (couleur, trait et sélection de police).
Pourriez-vous m'indiquer la correspondance de ces codes Ps version 3 en version 5 ?
4. Selon l'orientation, la syntaxe pour la police n'est pas tout à fait la même :
[0 65 65 0 0 0]/Helvetica-Bold MF ou [65 0 0 -65 0 0]/Helvetica-Bold MF
Pourriez-vous m'indiquer en postscript version 5 comme obtenir cela ?
bref c la galére, pouvez m'aider un peu ?
Mouff
Note : le post fait un peu trop sérieux, car c une copie d'un mail à un consultant Mais comme j'ai toujours pas de réponse et que c un peu la galère, j'aimerais bien un peu d'aide
---------------
Il suffit de me dire de me taire...