Funzionalità dei driver
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Le funzionalità del driver sono funzionalità non PPD sintetizzate dal driver, ad esempio la funzionalità %OutputFormat . Per evitare conflitti di nomi con parole chiave di funzionalità PPD, tutti i nomi delle parole chiave delle funzionalità del driver sono preceduti da un carattere "%". Anche le parole chiave di funzionalità/opzione del driver fanno distinzione tra maiuscole e minuscole.
Per ottenere un elenco di tutte le parole chiave delle funzionalità del driver supportate dal driver, un plug-in può chiamare EnumFeatures, che restituirà l'elenco di parole chiave della funzionalità contenente sia le funzionalità del driver che le funzionalità PPD. Il plug-in può quindi cercare nomi di parole chiave di funzionalità che iniziano con il prefisso "%" per ottenere l'elenco delle funzionalità del driver.
Nella tabella seguente sono elencate le funzionalità del driver attualmente supportate. Ogni riga della tabella elenca una parola chiave della funzionalità del driver, mostra le opzioni supportate, indica se le opzioni della funzionalità possono essere enumerate in una chiamata a EnumOptions e fornisce una breve descrizione.
Funzionalità driver | Opzioni supportate | Opzioni di enumerazione | Descrizione e commenti |
---|---|---|---|
%AddEuro | "True" "False" |
Sì | Aggiungere il simbolo Euro ai tipi di carattere del dispositivo. Questa funzionalità è supportata solo per le stampanti di livello 2 e successive. Per le stampanti di livello 1, SetOptions ignora questa funzionalità e GetOptions restituisce sempre "False". |
%CTRLDAfter | "True" "False" |
Sì | Invia CTRL+D dopo ogni processo. Stampante-sticky |
%CTRLDBefore | "True" "False" |
Sì | Invia CTRL+D prima di ogni processo. Stampante-sticky |
%CustomPageSize | Per altre informazioni, vedere la nota 1 di seguito. | No | Specificare i parametri delle dimensioni della pagina personalizzata PostScript. Document-sticky |
%GraphicsTrueGray | "True" "False" |
Sì | Convertire la grafica grigia in grigio PostScript. Stampante-sticky |
%JobTimeout | Stringa ANSI con terminazione NULL contenente caratteri di cifra decimale che rappresenta il numero intero senza segno di secondi per il timeout, compreso nell'intervallo compreso tra 0 e 2.147.483.647. Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. |
No | Specificare il valore di timeout del processo. Stampante-sticky |
%MaxFontSizeAsBitmap | Stringa ANSI con terminazione NULL contenente caratteri di cifra decimale che rappresenta il numero intero senza segno di pixel, compreso nell'intervallo compreso tra 0 e 32.767. Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. |
No | Specificare la dimensione massima del carattere da scaricare come bitmap. Stampante-sticky |
%MetafileSpooling | "True" "False" |
Sì | Abilitare/disabilitare le funzionalità di stampa avanzate. Document-sticky Per altre informazioni, vedere la nota 2 seguente. |
%MinFontSizeAsOutline | Stringa ANSI con terminazione NULL contenente caratteri di cifra decimale che rappresenta il numero intero senza segno di pixel, compreso nell'intervallo compreso tra 0 e 32.767. Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. |
No | Specificare la dimensione minima del carattere da scaricare come struttura. Stampante-sticky |
%Mirroring | "True" "False" |
Sì | Eseguire il mirroring dell'output invertendo le coordinate orizzontali. Document-sticky |
%Negativo | "True" "False" |
Sì | Produrre un output negativo ripristinando i valori per bianco e nero. Questa funzionalità è supportata solo per le stampanti bianche e nere. Per le stampanti a colori, SetOptions ignora questa funzionalità e GetOptions restituisce sempre "False". Document-sticky |
%Orientation | "Portrait", "Landscape", "RotatedLandscape" | Sì | Specificare l'orientamento dell'output. Document-sticky |
%OutputFormat | "Speed", "Portability", "EPS", "Archive" | Sì | Specificare il formato di output PostScript. Document-sticky Per altre informazioni, vedere la nota 5 di seguito. |
%OutputProtocol | "ASCII", "BCP", "TBCP", "Binary" | Sì | Specificare il protocollo che verrà utilizzato dalla stampante per i processi di stampa. Si presuppone che le stampanti PostScript supportino "ASCII" e "Binary", quindi queste opzioni sono sempre disponibili. Le opzioni "BCP" e "TBCP" sono disponibili solo se sono supportate. Per determinare questo problema, controllare l'attributo globale "Protocolli". Stampante-sticky |
%OutputPSLevel | "1", "2", "3" | No | Specificare il livello di linguaggio PostScript da usare per il processo di stampa. L'impostazione non sarà mai maggiore del valore specificato nell'attributo globale "LanguageLevel". Document-sticky |
%PageOrder | "FrontToBack" "BackToFront" |
Sì | Specificare l'ordine in cui verranno stampate le pagine. Document-sticky Per altre informazioni, vedere la nota 3 seguente. |
%PagePerSheet | "1", "2", "4", "6", "9", "16", "Opuscolo" |
Sì | Specificare il numero di pagine logiche per foglio fisico. Questa funzionalità è nota anche come stampa "N-up". Document-sticky Per altre informazioni, vedere la nota 4 seguente. |
%PSErrorHandler | "True" "False" |
Sì | Gestore degli errori PostScript di invio. Document-sticky |
%PSMemory | Stringa ANSI con terminazione NULL contenente caratteri di cifra decimale che rappresenta il numero intero senza segno di kilobyte di memoria PostScript, compreso nell'intervallo compreso tra 0 e 2.147.483.647. Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. |
No | Specificare la quantità di memoria virtuale PostScript disponibile. Il driver principale richiede una certa quantità di memoria virtuale PostScript disponibile per l'elaborazione. Se %PSMemory è impostato al di sotto di questo minimo, il valore minimo viene usato come nuovo valore. Attualmente il valore minimo è 172 KB per le stampanti di livello 1 e 249 KB per le stampanti di livello 2+. Stampante-sticky |
%TextTrueGray | "True" "False" |
Sì | Convertire il testo grigio in grigio PostScript. Stampante-sticky |
%TTDownloadFormat | "Automatic", "Outline", "Bitmap", "NativeTrueType" | Sì | Specificare il formato di download del tipo di carattere TrueType. "NativeTrueType" è supportato solo quando l'attributo globale "TTRasterizer" indica il supporto per "Type42". Document-sticky |
%WaitTimeout | Stringa ANSI con terminazione NULL contenente caratteri di cifra decimale che rappresenta il numero intero senza segno di secondi per il timeout, compreso nell'intervallo compreso tra 0 e 2.147.483.647. Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. |
No | Specificare il valore di timeout di attesa. Stampante-sticky |
Note sulle parole chiave delle funzionalità dei driver
La funzionalità driver %CustomPageSize include cinque valori di opzione: x, y, WidthOffset, HeightOffset e FeedDirection. Per una spiegazione dettagliata di questi parametri, vedere la sezione 5.16 della specifica del formato del file di descrizione della stampante PostScript, versione 4.3.
Una voce %CustomPageSize contiene la parola chiave %CustomPageSize , insieme ai valori per le opzioni x, y, WidthOffset, HeightOffset e FeedDirection. Il primo elemento è la parola chiave %CustomPageSize, seguita da un carattere NULL. I valori per x, y, WidthOffset e HeightOffset seguono questa parola chiave e vengono visualizzati come sottostringhe di cifre decimali senza segno, ognuna che rappresenta il numero di punti PostScript per il valore di opzione corrispondente. Ognuno di questi valori numerici è seguito da uno o più spazi o tabulazioni. L'elemento finale nella stringa è il valore di FeedDirection, che viene terminato da un carattere NULL. Le opzioni per FeedDirection sono "LongEdge", "ShortEdge" (corrispondenti agli orientamenti 0 e 1) e "LongEdgeFlip", "ShortEdgeFlip" (corrispondenti agli orientamenti 2 e 3). Controllare la parola chiave della funzionalità *LeadingEdge PPD per indicazioni sui feed supportate.
Per GetOptions, il buffer di output a cui punta pmszFeatureOptionBuf è come descritto nel paragrafo precedente. Nell'esempio seguente il valore per x è 612, il valore per y è 792, i valori per WidthOffset e HeightOffset sono entrambi 0 e il valore per FeedDirection è "ShortEdge".
"%CustomPageSize\0612 792 0 0 ShortEdge\0"
Per SetOptions, tabulazione o spazi aggiuntivi prima o dopo che sono consentite le cifre decimali, ma non è consentito un simbolo di segno. In caso contrario, il buffer di input a cui punta pmszFeatureOptionBuf deve essere costruito come descritto in precedenza.
La funzionalità driver %CustomPageSize è supportata solo se vengono soddisfatte tutte e tre le condizioni seguenti:
Il file PPD contiene la funzionalità *CustomPageSize .
La parola chiave *PPD-Adobe ha un valore maggiore o uguale a 4.3 oppure *UseHWMargin: False è specificato per indicare un dispositivo di roll-fed.
L'opzione *PageSize PPD attualmente selezionata è CustomPageSize.
Questa funzionalità è supportata solo quando lo spooling EMF dello spooling è abilitato.
Se supportata, l'impostazione dell'opzione di questa funzionalità su "False" comporta modifiche alle funzionalità correlate a EMF seguenti:
Se %PagePerSheet è "Opuscolo", viene modificato in "1".
Se Collate è impostato su "True" (che può essere impostato direttamente nella parte pubblica della struttura DEVMODEW o chiamando SetOptions nella funzionalità *Collate PPD), ma la funzionalità Collate non è attualmente disponibile, Collate verrà impostata su "False".
Se %PageOrder è l'opposto dell'impostazione corrente dell'ordine di output della stampante, %PageOrder viene invertito al valore della stampante.
Questa funzionalità è supportata solo quando lo spooling EMF dello spooling è abilitato.
Quando è supportata, l'impostazione di questa funzionalità può causare il verificarsi di quanto segue:
Se il file PPD della stampante include la parola chiave della funzionalità *OutputOrder , la selezione dell'opzione viene modificata in modo che corrisponda all'ordine di output della nuova impostazione per la funzionalità %PageOrder . Questa operazione viene eseguita per impedire allo spooler di eseguire una simulazione dell'ordine di pagina non necessaria.
Se il file PPD della stampante non include la funzionalità *OutputOrder e la nuova impostazione per la funzionalità driver %PageOrder è opposta all'impostazione corrente dell'ordine di output della stampante e la funzionalità driver %MetafileSpooling è "False", %MetafileSpooling viene reimpostato su "True".
L'opzione "Opuscolo" è supportata solo quando è abilitato lo spooling EMF dello spooler e la funzionalità Duplex è disponibile.
Quando l'opzione "Opuscolo" è supportata, l'impostazione della funzionalità driver %PagePerSheet su "Opuscolo" può causare le modifiche seguenti:
Se la funzionalità del driver %MetafileSpooling è "False", viene reimpostata su "True".
Se la funzionalità *DUPLEX PPD è impostata su Nessuno, la funzionalità *Duplex viene reimpostata sulla prima opzione non Simplex definita nel file PPD.
Ad eccezione di "EPS" (PostScript incapsulato), i formati specificati nella funzionalità driver %OutputFormat vengono classificati in base alle due caratteristiche seguenti:
Il codice PostScript di output è indipendente dall'ordine di pagina?
Il codice PostScript di output contiene comandi di controllo del dispositivo (che in genere usano l'operatore setpagedevice )?
Categoria Ordine pagina indipendente setpagedevice Archiviazione Sì No Portabilità Sì Sì Velocità No Sì
Quando GetOptions viene chiamato sulle parole chiave della funzionalità del driver, se una parola chiave della funzionalità richiesta non viene riconosciuta o se la parola chiave della funzionalità viene riconosciuta ma non supportata nella modalità corrente di blocco del documento o della stampante (vedere Sostituzione delle pagine della finestra delle proprietà fornite dal driver), la funzionalità verrà semplicemente ignorata e il buffer di output non conterrà la relativa coppia di parole chiave feature/option.
Si supponga, ad esempio, che venga chiamato il metodo GetOptions e che il buffer di input pmszFeaturesRequested contenga la stringa seguente (in MULTI_SZ formato):
"Resolution\0%CustomPageSize\0Unknown_Name\0%Orientation\0\0"
Al termine della restituzione di GetOption , il buffer di output pmszFeatureOptionBuf potrebbe contenere questa stringa (anche in formato MULTI_SZ):
"Resolution\0300dpi\0%CustomPageSize\0612 792 0 0 ShortEdge\0%Orientation\0RotatedLandscape\0\0"
Si noti che la funzionalità Unknown_Name (che non esiste) elencata nella prima stringa non viene visualizzata nella seconda stringa, perché non è stata riconosciuta dal driver Pscript. Le altre funzionalità, Resolution, %CustomPageSize e %Orientation, vengono visualizzate nella stringa di output, insieme alle relative opzioni correnti, che sono rispettivamente "300dpi", "612 792 0 0 ShortEdge" e "RotatedLandscape". Per una spiegazione delle opzioni %CustomPageSize , vedere Funzionalità del driver.
Quando SetOptions viene chiamato sulle parole chiave della funzionalità del driver, se una parola chiave della funzionalità richiesta o la relativa parola chiave di opzione nel buffer di input a cui punta pmszFeatureOptionBuf non viene riconosciuta o la funzionalità viene riconosciuta ma non supportata nella modalità di blocco del documento o della stampante corrente (vedere Sostituzione delle pagine della finestra delle proprietà fornite dal driver) o sia la parola chiave feature che la relativa parola chiave option vengono riconosciute, ma la parola chiave option non è valida per tale funzionalità (ad esempio, il tentativo di impostare %TTDownloadFormat su "NativeTrueType" in una stampante che non supporta Type42 TTRasterizer), la coppia di funzionalità/opzione verrà ignorata e l'opzione corrente per tale funzionalità continuerà a essere attiva.
L'ordine delle coppie di parole chiave feature/option nel buffer a cui punta pmszFeatureOptionBuf può influire sul risultato della chiamata SetOptions . Ad esempio, i due ordini diversi seguenti hanno risultati diversi.
pmszFeatureOptionBuf | %PagePerSheet | %MetafileSpooling |
---|---|---|
"%MetafileSpooling\0False\0%PagePerSheet\0Booklet\0\0" | "Opuscolo" | "True" |
"%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0" | "1" | "False" |
Per una spiegazione del motivo per cui si verificano questi risultati, vedere la nota 3 in %MetafileSpooling precedente.