Differenze tra le versioni di "Verifica ed eliminazione dei processi di stampa mediante le funzioni del API di CUPS"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Le funzioni del API di ''CUPS'' (''Common Unix Printing System'') consentono fra l'altro di verificare quanti siano i processi di stampa in atto, pendenti o in coda, nonché q...')
 
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:
  
 
Consentono inoltre di eliminare il processo di stampa in atto, o anche tutti i processi di stampa indipendentemente dal loro stato.
 
Consentono inoltre di eliminare il processo di stampa in atto, o anche tutti i processi di stampa indipendentemente dal loro stato.
 
  
 
Per utilizzare le risors di ''CUPS'' bisognerà richiamare l'attuale libreria esterna: ''libcups.so.2''
 
Per utilizzare le risors di ''CUPS'' bisognerà richiamare l'attuale libreria esterna: ''libcups.so.2''
Riga 28: Riga 27:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim p As Pointer
 
   Dim p As Pointer
Riga 34: Riga 33:
 
   Dim stp As Integer
 
   Dim stp As Integer
 
    
 
    
  <FONT Color=gray>' ''Per individuare il nome di una stampante installata nel sistema, si rinvia a [Stampare_un_file_con_le_funzioni_del_API_di_cups questa paina della Wiki].''</font>
+
  <FONT Color=gray>' ''Per individuare il nome di una stampante installata nel sistema, si rinvia a [[Stampare_un_file_con_le_funzioni_del_API_di_cups|questa pagina della Wiki]].''</font>
 
   stampante = "''stampante utilizzata''"
 
   stampante = "''stampante utilizzata''"
 
   
 
   
Riga 50: Riga 49:
 
   Print "I processi di stampa arrestati, cancellati, rifiutati o completati sono: "; stp
 
   Print "I processi di stampa arrestati, cancellati, rifiutati o completati sono: "; stp
 
    
 
    
  '''End'''
+
  End
 
 
  
  
  
 
=Riferimenti=
 
=Riferimenti=
* [http://www.cups.org/documentation.php/api-cups.html API di cups]
+
* https://www.cups.org/documentation.html
 +
* https://refspecs.linuxfoundation.org/LSB_3.2.0/LSB-Printing/LSB-Printing/book1.html
 +
* http://fossies.org/dox/cups-2.0.0-source/index.html

Versione attuale delle 02:39, 15 set 2023

Le funzioni del API di CUPS (Common Unix Printing System) consentono fra l'altro di verificare quanti siano i processi di stampa in atto, pendenti o in coda, nonché quelli arrestati, cancellati, rifiutati o completati.

Consentono inoltre di eliminare il processo di stampa in atto, o anche tutti i processi di stampa indipendentemente dal loro stato.

Per utilizzare le risors di CUPS bisognerà richiamare l'attuale libreria esterna: libcups.so.2


Mostriamo un semplice esempio:

Library "libcups:2"

' CUPS_WHICHJOBS_ALL returns all jobs regardless of state;
' CUPS_WHICHJOBS_ACTIVE returns jobs that are pending, processing, or held;
' CUPS_WHICHJOBS_COMPLETED returns jobs that are stopped, canceled, aborted, or completed:
Private Enum CUPS_WHICHJOBS_ALL = -1, CUPS_WHICHJOBS_ACTIVE, CUPS_WHICHJOBS_COMPLETED
' CUPS_JOBID_ALL to cancel all jobs or CUPS_JOBID_CURRENT to cancel the current job on the named destination:
Private Enum CUPS_JOBID_ALL = -1, CUPS_JOBID_CURRENT

Private Const CUPS_HTTP_DEFAULT As Integer = 0

' int cupsGetJobs (cups_job_t **jobs, const char *name, int myjobs, int whichjobs)
' Get the jobs from the default server.
Private Extern cupsGetJobs(jobs As Pointer, name As String, myjobs As Integer, whichjobs As Integer) As Integer

' int cupsCancelJob (const char *name, int job_id)
' Cancel a print job on the default server.
Private Extern cupsCancelJob(name As String, job_id As Integer) As Integer


Public Sub Main()
  
 Dim p As Pointer
 Dim stampante As String
 Dim stp As Integer
 
' Per individuare il nome di una stampante installata nel sistema, si rinvia a questa pagina della Wiki.
  stampante = "stampante utilizzata"

' Verifica quanti sono i processi di stampa in atto, pendenti o in coda:
  stp = cupsGetJobs(VarPtr(p), Null, 1, CUPS_WHICHJOBS_ACTIVE)
  Print "I processi di stampa in atto, pendenti o in coda sono: "; stp
 
' Elimina i processi di stampa. Inserire la costante:
' - CUPS_JOBID_ALL per eliminare tutti i processi di stampa indipendentemente dal loro stato;
' - CUPS_JOBID_CURRENT per eliminare soltanto il processo di stampa corente:
  cupsCancelJob(stampante, CUPS_JOBID_ALL)

' Dopo l'eliminazione dei processi, verifica quanti sono i processi di stampa completati o bloccati:
  stp = cupsGetJobs(VarPtr(p), Null, 1, CUPS_WHICHJOBS_COMPLETED)
  Print "I processi di stampa arrestati, cancellati, rifiutati o completati sono: "; stp
  
End


Riferimenti