Page 1 sur 1

[5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 02/sept./2015 23:07
par falsam
Pour cette nouvelle démo vous devez avoir une imprimante PDF afin de limiter le gaspillage de papier et d'encre.

Si vous avez Windows 10 vous avez déja une imprimante PDF. Si vous avez une version antérieure de Windows, alors installer une imprimante PDF si ce n'est pas encore fait.

Le code vous permet de choisir une imprimante puis imprime 150 ligne sur 3 pages.
Pour chaque page, il y a aura l'impression d'un entête et d'un pied de page contenant un compteur de page.

Code : Tout sélectionner

; PB 5.40 - DEMO PrinterVectorOutput()

Declare PrintHeader()
Declare PrintFooter()

Global CountLines, CountPage, Top = 20, y

LoadFont(0, "Courier New", 10)

;Choix de l'imprimante
If PrintRequester()
  
  ;Initialise l'imprimante et démarre l'impression 
  ;On donne un nom qui apparaîtra dans la file d'attente d'impression
  If StartPrinting("PureBasic Test")
    
    ;Initialisation dessin vectoriel sur la sortie imprimante
    If StartVectorDrawing(PrinterVectorOutput())      
      ;Impression des lignes détail
      For Line = 1 To 150
        If CountLines = 48 Or Line = 1
          CountLines = 0
          If Line <> 1
            NewVectorPage()
          EndIf 
          PrintHeader()
          PrintFooter()
        EndIf
        
        CountLines + 1
        
        y = Top + (CountLines * 15)
        
        MovePathCursor(50, y)   : DrawVectorText("Item col1 line " + Str(Line))
        MovePathCursor(450, y)  : DrawVectorText("Item col2 line " + RSet(Str(Line), 3, " "))
        
      Next      
            
      StopVectorDrawing()
    EndIf
    
    StopPrinting()
  EndIf
EndIf 

Procedure PrintHeader()
  VectorFont(FontID(0), 15)
  VectorSourceColor(RGBA(0, 0, 0, 200)) 
  MovePathCursor(10, 10)
  DrawVectorText("DEMO PrinterVectorOutput()")
  
  ;Affichage du slogan PureBasic
  VectorFont(FontID(0), 20)
  VectorSourceColor(RGBA(255, 0, 0, 128))
  RotateCoordinates(30, 50, 90) 
  MovePathCursor(30, 50)
  DrawVectorText("Make with Pure Basic : What else !")   
  
  ;Retour à la normal pour les ligne détails
  RotateCoordinates(30, 50, -90)   
  VectorFont(FontID(0), 10)
  VectorSourceColor(RGBA(0, 0, 0, 255))
EndProcedure

Procedure PrintFooter()
  VectorFont(FontID(0), 10)
  VectorSourceColor(RGBA(0, 0, 0, 255))
  MovePathCursor(10, VectorOutputHeight() - 50)
  DrawVectorText("Imprimé avec PureBasic 5.40 LTS Beta1")
  
  CountPage + 1 
  MovePathCursor(VectorOutputWidth() - 60, VectorOutputHeight() - 50)
  DrawVectorText("Page " + Str(CountPage)) 
EndProcedure
J'ai pu faire des tests dans un fichier PDF mais aussi sur deux imprimantes Hp jet d'encre. J'aimerais quelques retour de tests sur d'autres imprimantes.

Merci d'avance.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 02/sept./2015 23:55
par falsam
Si vous êtes sous linux ou osx et que vous souhaitez imprimer directement en pdf, vous pouvez utilisez PdfVectorOutput() à la place de PrinterVectorOutput()

J’espère que cette option fonctionnera aussi sous Windows.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : jeu. 03/sept./2015 0:42
par Ollivier
Euh... En relisant cette coïncidence thématique, je crois qu'en tout cas, chez Fred, ils y sont allés droit au but!

Quelqu'un peut poster un screenshoot? Je ne serai pas exigent sur les dimensions...

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : jeu. 03/sept./2015 10:59
par Mesa
J'ai pu utiliser 2 imprimantes laser du travail : pour la canon mf8540 couleur = tout est ok mais la canon laser N&B mf4010 n'imprime que la première page puis les feuilles manquantes s'impriment plusieurs minutes après la première ! ! ! Très étrange. Pourtant, il n'y a aucune indication comme quoi l'impression est en attente ou quoi que ce soit, ni sur windows ni sur l'imprimante.

Les 2 imprimantes sont en usb sur le même pc.
Windows XP 32b

M.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 9:46
par falsam
Bonjour Mesa. Je viens de m'apercevoir d'une erreur dans mon code. Te serait il possible de remplacer la ligne

Code : Tout sélectionner

NewPrinterPage()
par

Code : Tout sélectionner

NewVectorPage()
et de refaire tes test d'impression sur imprimantes laser.

J'aimerais aussi d'autres retours. Merci d'avance.

Le code du premier message est modifié.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 9:55
par falsam
Ollivier a écrit :Quelqu'un peut poster un screenshoot? Je ne serai pas exigent sur les dimensions...
Pas de screenshoot mais un fichier PDF montrant le résultat.
:arrow: http://s242132022.onlinehome.fr/Downloa ... Output.pdf

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 10:07
par Mesa
C'est bon ça marche.

M.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 10:18
par falsam
Merci Mesa. C'est une bonne nouvelle.

Pour les autres, pouvez vous comparer ce que vous imprimez avec le pdf que j'ai posté (et que je vais remettre ici) et me dire si c'est conforme en citant le constructeur de l'imprimante.

:arrow: http://s242132022.onlinehome.fr/Downloa ... Output.pdf

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 11:58
par Micoute
Bonjour falsam, voici le résultat : impeccable avec une PANTUM P 2000

C'est une imprimante laser monochrome, noir.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 11:59
par falsam
Merci beaucoup pour ton test Micoute.

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 13:31
par nico
Test Canon MG5250:
Il semble que je n'ai pas la transparence de "Demo Print..." et de "Make With..."
Après modification des paramètres, tout mis à alpha 255 et réimpression, il y a bien une différence et donc j'ai bien un traitement de l'alpha mais celui ci semble moins marqué (moins fondu) que le résultat que tu as mis en ligne.

Test PDF CREATOR:
Le pdf créé est bon, cela dit "Demo Print..." semble plus gris sur le fichier PDF que ma sortie papier précédente.

Mise en page conforme.

[Edit] Super la démo. :D

Re: [5.40] Vecteurs et impression avec PrinterVectorOutput()

Publié : mer. 09/sept./2015 13:38
par falsam
J'ai aussi cette légère différence qui peut provenir de la qualité des encres ou de la poudre des toners. En tout cas merci pour ton test.

Donc apparemment ça fonctionne avec les imprimantes jet d'encre Canon et HP ainsi que sur des lasers. Je sens que cette nouvelle librairie va me plaire.