Obligement - L'Amiga au maximum

Dimanche 30 avril 2017 - 05:19  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


En pratique : Imprimer du PDF avec Ghostscript 8
(Article écrit par Jean-Yves Auger - avril 2004)


Avec Ghostscript 6.50, APDF décodait très mal les PDF et leur impression fonctionnait rarement. Mais cela a changé avec la version 8 de Ghostscript qui sait décoder les PDF (plus d'exception) et les imprime (c'est rapide en plus).

Attention tout de même car Ghostscript 8 vient avec son lot de surprises : il n'y a pas d'installation (tout se fait à la main), il n'y a aucune explication claire (comme d'habitude) ce qui engendrera des heures de réglages.

L'installation

Allez sur le site www.whoosh777.pwp.blueyonder.co.uk et prenez les archives du programme (gs813release020fpu.lha ou gs813release020nofpu.lha selon si vous avez ou non une FPU), les bibliothèques (gs813lib.lha), les polices de caractères (gs813fonts.lha), les ressources (gs813resource.lha) et la documentation (gs813doc.lha - facultative).

Créez ensuite un répertoire (GS813) et décompressez-y toutes les archives. Faites enfin des assignations comme suit :

assign GS813: "HD1:gs813"
assign GS8Data: "HD1:gs813/lib"
assign GS8Fonts: "HD1:gs813/fonts"
assign GS813Resource: "HD1:gs813/resource"

Note : HD1: est un exemple ici, adaptez le nom en fonction de votre configuration.

Redémarrez et c'est tout.

L'impression

Créez un fichier PDF puis tapez la ligne suivante sous un CLI :

set print 1
set window 0
stack 200000
GS813:bin/gs -sDEVICE=tp8 -g2480x3366 -r300 -dFirstPage=001 -dLastPage=999 -dBATCH -dNOPAUSE -q nom_du_fichier_PDF

Les chiffres 2480 et 3366 expriment la taille d'une page A4 en 300 DPI (bonne qualité d'impression) sur une imprimante HP Lj 5L, si vous voulez ajuster selon votre imprimante voici la base du calcul :

Largeur : 21 cm / 2,54 pouces x 300 DPI = 2480.
Longueur : 28,5 cm / 2,54 pouces x 300 DPI = 3366 (c'est un peu moins haut qu'une page A4 à cause du type d'imprimante : HP LJ 5L avec 1,6 cm de marge obligatoire en haut).

Pour augmenter la qualité, changer le 300 par 600.

Une fois la ligne de commande entrée, vous aurez, après quelques secondes, l'impression de toutes les pages.

La visualisation

La ligne de commande change :

set print 0
set window 1
stack 200000
GS813:bin/gs -sDEVICE=whoosh24 -r72 -dFirstPage=001 -dLastPage=999 -dBATCH -dNOPAUSE -q et le nom du fichier PDF

Toutes ces manipulations sont contournables par un programme avec GUI en ARexx : GS8Gui, mais il faudra tout de même Ghostscript 8.x (logique), MUI (indispendable) et RxMui (utile pour plein de raisons, surtout celle de ne plus taper une commande à la main ou presque).

Tout ceci est en ARexx, vous n'aurez pas de mal à transposer la ligne de commande pour imprimer depuis DOpus, Final Writer, PageStream ou tous les programmes ARexx en fait.

Voici un exemple RXMui (PDFPrint.rexx) pour imprimer depuis un gestionnaire de fichier (DOpus, Filemaster, etc.), il suffit de taper à la main ou via un programme : "rxs PDFPrint + nom du fichier PDF".

/********************************************/
/* $VER: PDF printer via Ghostscript 8, version 1.0
- www.Pixel-Art.fr.st */

parse arg global.source

l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
if AddLibrary("rxmui.library")~=0 then exit

call CreateApp
call HandleApp
/* never reached */
/******************************************/
HandleApp: procedure expose global.

    ctrl_c=2**12
    do forever

 call NewHandle("app","h",ctrl_c)
 if and(h.signals,ctrl_c)>0 then exit
 select
     when h.event="QUIT" then exit
     otherwise interpret h.event
 end
    end
    /* never reached */
/******************************************/
CreateApp: procedure expose global.

    app.Title="PopaslExample"
    app.Base="usb"
    app.SubWindow="win"
     win.ID="MAIN"
     win.Title="PDF Printer"
     win.Contents="MGROUP"

     mgroup.0="ctrlg"
       ctrlg.class="group"
       ctrlg.frame="group"
       ctrlg.Columns=1

     mgroup.0="popf"
  popf.class="group"
  popf.0=Button("texte","Cliquez ici pour lancer l'impression")

     res=NewObj("APPLICATION","APP")
     call set("win","open",1)

     call Notify("win","CloseRequest",1,"app","ReturnID","quit")
     call Notify("texte","pressed","0","app","return","call PDF()")

return
/******************************************/
PDF: procedure expose global.

   call set("texte","contents","En cours...")

   Open(fiche,"T:Tmp",'Write')
      WriteLN(fiche,"SET print 1")
      WriteLN(fiche,"SET window 0")
      WriteLN(fiche,"stack 200000")
      WriteLN(fiche,"GS813:bin/gs -sDEVICE=tp8 -g2480x3366 -r300
-dFirstPage=001 -dLastPage=999 -dBATCH -dNOPAUSE -q "||global.source)
   Close(fiche)

   address command 'Execute T:Tmp'

   call set("texte","contents","Impression en cours")

   exit

return

/******************************************/


[Retour en haut] / [Retour aux articles]