Differenze tra le versioni di "Stampare un file con le funzioni del API di cups"
Da Gambas-it.org - Wikipedia.
Riga 9: | Riga 9: | ||
Library "libcups:2" | Library "libcups:2" | ||
+ | |||
+ | <FONT color=gray>' ''int cupsGetDests(cups_dest_t **dests)''</font> | ||
+ | '''Private''' Extern cupsGetDests(dests As Pointer) As Integer | ||
<FONT color=gray>' ''int cupsPrintFile(const char *printer, const char *filename, const char *title, int num_options, cups_option_t *options)''</font> | <FONT color=gray>' ''int cupsPrintFile(const char *printer, const char *filename, const char *title, int num_options, cups_option_t *options)''</font> | ||
Riga 16: | Riga 19: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim err As Integer | + | Dim stampante As String |
+ | Dim num_dests, err As Integer | ||
+ | |||
+ | |||
+ | num_dests = cupsGetDests(VarPtr(p)) | ||
+ | |||
+ | Print "Sono state riscontrate installate nel sistema num. "; num_dests; " stampanti.\n" | ||
+ | <FONT color=gray>' ''Dereferenziando la variabile di tipo "Puntatore" si ottiene il nome della stampante,'' | ||
+ | ' ''ovvero, qualora ve ne siano installate più di una, il nome della prima.'' | ||
+ | ' ''In particolare tale nome è uguale a quello del file .ppd afferente alla stampante,'' | ||
+ | ' ''presente nella cartella "/etc/cups/ppd" e privo della sua estensione.'' | ||
+ | ' ''Il nome della stampante andrà passato, come primo argomento, alla funzione "cupsPrintFile()".</font> | ||
+ | stampante = String@(Pointer@(p)) | ||
− | + | err = cupsPrintFile(stampante, "<FONT color=gray>''percorso/del/file/da/stampare/''</font>", "Testo qualsiasi", 0, Null) | |
− | |||
− | |||
− | err = cupsPrintFile( | ||
if err = 0 then Error.Raise("Stampa del file fallita !") | if err = 0 then Error.Raise("Stampa del file fallita !") | ||
'''End''' | '''End''' |
Versione delle 12:24, 10 nov 2013
Per stampare un file con le funzioni esterne del API di Cups, e dunque senza l'uso della Classe Printer, bisognerà richiamare l'attuale libreria esterna: libcups.so.2 .
Mostriamo di seguito un semplice e breve codice per stampare un solo file:
Public Struct Cups_option_s ' Opzioni di stampa name As Pointer ' Nome dell'opzione value As Pointer ' Valore dell'opzione End Struct Library "libcups:2" ' int cupsGetDests(cups_dest_t **dests) Private Extern cupsGetDests(dests As Pointer) As Integer ' int cupsPrintFile(const char *printer, const char *filename, const char *title, int num_options, cups_option_t *options) Private Extern cupsPrintFile(stampante As String, nomefile As String, titolo As String, num_opzioni As Integer, opzioni As Cups_option_s) As Integer Public Sub Main() Dim stampante As String Dim num_dests, err As Integer num_dests = cupsGetDests(VarPtr(p)) Print "Sono state riscontrate installate nel sistema num. "; num_dests; " stampanti.\n" ' Dereferenziando la variabile di tipo "Puntatore" si ottiene il nome della stampante, ' ovvero, qualora ve ne siano installate più di una, il nome della prima. ' In particolare tale nome è uguale a quello del file .ppd afferente alla stampante, ' presente nella cartella "/etc/cups/ppd" e privo della sua estensione. ' Il nome della stampante andrà passato, come primo argomento, alla funzione "cupsPrintFile()". stampante = String@(Pointer@(p)) err = cupsPrintFile(stampante, "percorso/del/file/da/stampare/", "Testo qualsiasi", 0, Null) if err = 0 then Error.Raise("Stampa del file fallita !") End