Condividi tramite


Nuovi attributi GPD solo a livello di radice per Windows Vista

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.

L'elenco seguente descrive gli attributi GPD nuovi a partire da Windows Vista. Per mantenere la compatibilità con le versioni precedenti di Windows Vista di Windows, è necessario racchiudere questi attributi con il codice seguente.

*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks

PrintProcDuplexOptions

L'attributo PrintProcDuplexOptions controlla varie opzioni di duplex in un processore di stampa. Questo attributo può avere uno dei valori seguenti:

1: Pagine inverse per duplex inverso

2: Eliminare la generazione di una pagina vuota aggiuntiva, se possibile

3: Entrambi i

0: Nessuno dei precedenti

Se PrintProcDuplexOptions è 1, controlla se il processore di stampa deve invertire le pagine su duplex inverso.

Si supponga di dover stampare un documento a quattro pagine con n-up = 1 e si desidera utilizzare la stampa inversa e la stampa duplex. Poiché si desidera eseguire la stampa inversa, si desidera stampare l'ultima pagina prima della prima pagina. Poiché si desidera stampare duplex, si desidera stampare due pagine su un singolo foglio di carta. Il processore di stampa può riprodurre le pagine in uno dei due formati seguenti (dove ogni coppia di numeri indica le due pagine che verranno stampate sui due lati di un singolo foglio di carta):

  • Formato 1: (4,3),(2,1)

  • Formato 2: (3,4),(1,2)

Prima di Windows Vista, un processore di stampa stampa stampava l'ordine nel formato 2 [(3,4),(1,2)]. Ma in Windows Vista e versioni successive, il formato predefinito è 1 [(4,3),(2,1)]. Questa modifica si è verificata perché molte stampanti hanno un output non corretto con formato 2; ovvero le pagine stampate non sono ordinate nell'ordine corretto.

Ma se la stampante funziona correttamente con il formato 1, non sarà necessario modificare nulla per Windows Vista e versioni successive. Tuttavia, se la stampante funziona in modo errato con il formato 1 e si desidera ripristinare il formato 2, aggiungere l'esempio di codice seguente al file GPD.

*Ifdef: WINNT_60
*PrintProcDuplexOptions: 1
*Endif: WINNT_60

Il formato 1 potrebbe funzionare meglio in alcuni orientamenti o in una combinazione di vassoi di input e output e il formato 2 potrebbe funzionare meglio in altre combinazioni. Di conseguenza, è possibile inserire l'attributo PrintProcDuplexOptions in un costrutto switch/case.

Per un driver unidrv pre-Windows Vista, se si dispone di un processore di stampa pre-Windows Vista, il formato 2 è l'impostazione predefinita e non è possibile modificare il formato; in caso contrario, se si dispone di un processore di stampa di Windows Vista, il formato 1 è l'impostazione predefinita e non è possibile modificare il formato.

Per il driver Unidrv di Windows Vista, se si dispone di un processore di stampa pre-Windows Vista, il formato 2 è il valore predefinito e l'attributo GPD verrà ignorato; in caso contrario, se si dispone di un processore di stampa di Windows Vista, il formato 1 è l'impostazione predefinita, ma è possibile modificare il formato usando l'attributo PrintProcDuplexOptions .

Se PrintProcDuplexOptions è 2, impedisce la generazione di pagine vuote in determinati scenari duplex.

Questo attributo controlla se è necessario inviare pagine vuote aggiuntive alla stampante quando si esegue la stampa duplex. Ad esempio, se il processo è di una pagina e duplex è attivo (si presuppone n-up = 1), è necessario stampare un solo lato del foglio. Attualmente, le stampanti stampano un lato e quindi generano una pagina vuota vuota sul lato inverso. Poiché il processo di stampa è stato avviato con duplex=on, la stampante si aspetta due pagine prima di espellere il foglio. Se la seconda pagina non viene stampata, alcune stampanti continuano ad attendere. Gli svantaggi della soluzione corrente sono i seguenti:

  • La pagina generata causa un conteggio di pagine impreciso nel software contabile e il contatore della pagina all'interno delle stampanti.

  • Quando la pagina si trova a metà della stampante (in alcune stampanti in stile Hejet DeskJet), l'utente potrebbe provare a tirarlo fuori mentre la stampante tenta di tirarla indietro. Questa situazione può causare problemi hardware.

È possibile evitare i problemi precedenti specificando *PrintProcDuplexOptions: 2 nel file GPD.

Si noti che anche se questo attributo è impostato, l'ottimizzazione della pagina vuota viene eseguita solo nei casi limitati seguenti:

  1. Per la stampa inversa, l'ottimizzazione della pagina vuota viene eseguita solo quando l'intero processo può essere inserito su un singolo lato del foglio(ad esempio, un processo a una pagina con n-up=1 o un processo a quattro pagine con n-up =4). Se il processo richiede più fogli, l'ottimizzazione non viene eseguita (perché le pagine della stampante verranno stampate in un ordine impreciso). Ad esempio, per un processo a tre pagine, le pagine possono essere stampate nell'ordine 3,2,1,vuoti<> anziché 4,3,2,vuoti<>.

  2. L'ottimizzazione della pagina vuota non viene eseguita se il processore di stampa deve simulare copie. Il processore di stampa simula copie se il numero di copie necessarie è maggiore del numero di copie che il processore di stampa può creare.

    La situazione seguente è un esempio di quando si verificano simulazioni e vengono generate pagine vuote (se necessario):

    • Due copie per una stampante che non possono creare copie

    Le situazioni seguenti sono esempi di quando la simulazione non si verifica ed è possibile eliminare la generazione di pagine aggiuntive:

    • Processo di copia singola per una stampante che non può creare copie
    • Processo di cinque copie per una stampante in grado di creare più copie

Utilizzo di PrintProcDuplexOptions

*Ifdef: WINNT_60
*PrintProcDuplexOptions: 2
*Endif: WINNT_60 

In alcuni casi, potresti non pensare alla stampa di pagine aggiuntive mentre in altri casi fai. Pertanto, è possibile inserire l'attributo PrintProcDuplexOptions in un costrutto switch/case.

Per un driver Unidrv pre-Windows Vista, se si dispone di un processore di stampa pre-Windows Vista, una stampante stampa una pagina vuota aggiuntiva, se ritenuta necessaria, e non è possibile modificare questo comportamento; in caso contrario, se si dispone di un processore di stampa Windows Vista, una stampante stampa una pagina vuota aggiuntiva, se ritenuta necessaria, e non è possibile modificare questo comportamento.

Per il driver Unidrv di Windows Vista, se si dispone di un processore di stampa pre-Windows Vista, una stampante stampa una pagina vuota aggiuntiva, se ritenuto necessario, e l'attributo GPD verrà ignorato; in caso contrario, se si dispone di un processore di stampa di Windows Vista e se sono presenti l'attributo GPD appropriato e le condizioni appropriate ,ovvero le condizioni descritte in precedenza per impedire la stampa di pagine vuote, una stampante non stampa pagine vuote.

PreAnalysisOptions

L'attributo PreAnalysisOptions può avere uno dei valori seguenti:

0: Disabilitare tutte le modalità di pre-analisi.

1: modalità predefinita. Abilitare l'analisi del testo in ordine z monocromatico e l'ottimizzazione della banda vuota. Questa modalità è abilitata per i dispositivi con un tipo di carattere scaricabile o un supporto del tipo di carattere del dispositivo e una risoluzione elevata (600 dpi o superiore), 24 modalità di rendering bpp.

2: Abilitare l'ottimizzazione 1 bpp per 24 funzioni di callback ImageProcessing bpp.

4: Abilitare il supporto stretchBlt del dispositivo.

8: Abilitare la modalità di pre-analisi del fornitore.

16: Abilitare la modalità di debug per 1 bpp in cui la banda viene convertita in 24 bpp prima di chiamare la funzione di callback ImageProcessing.

UsareBMPFontCompression?

L'attributo UseBMPFontCompression? controlla se Unidrv deve comprimere i dati quando i tipi di carattere vengono scaricati come bitmap. Il valore predefinito di UseBMPFontCompression? è FALSE, il che significa che Unidrv non eseguirà la compressione se questo attributo non è presente nel file GPD. Questo valore predefinito mantiene la compatibilità con le versioni precedenti di Unidrv che non disponevano della funzionalità di compressione dei caratteri bitmap. È consigliabile impostare questo attributo su TRUE solo se la stampante supporta la compressione del tipo di carattere bitmapIl tipo di carattere bitmap compresso è in formato di esecuzione compresso con ripetizione linea.

UseMode5Compression?

L'attributo UseMode5Compression? controlla se UniDrv deve usare la compressione Mode 5. La compressione della modalità 5 (o metodo 5) è la compressione adattiva che consente l'uso combinato di più altri metodi di compressione( ad esempio Unencoded, TIFF o Delta-Row). Il valore predefinito di UseMode5Compression? è FALSE, il che significa che Unidrv non eseguirà la compressione adattiva se questo attributo non è presente nell'oggetto Criteri di gruppo. Questo valore predefinito mantiene la compatibilità con le versioni precedenti di Unidrv che non hanno la funzionalità di compressione adattiva. È consigliabile impostare questo attributo su TRUE solo se la stampante supporta la compressione adattiva.

UseHPGLPolylineEncoding?

L'attributo UseHPGLPolylineEncoding? controlla se Unidrv deve usare la codifica polilinea. HP-GL/2 supporta i comandi Pen Up/Pen Down/Draw Absolute/Draw Relative per i vettori di disegno. Il comando PE (Polyline Encoded) è un modo più efficiente per rappresentare i vettori.

Il valore predefinito per UseHPGLPolylineEncoding? è FALSE, il che significa che Unidrv non userà il comando PE se questo attributo non è presente in GPD. Questo valore predefinito mantiene la compatibilità con le versioni precedenti di Unidrv che non supportavano il comando PE. È consigliabile impostare questo valore su TRUE solo se la stampante supporta la codifica polilinea.

PrintSchemaPrivateNamespaceURI

L'attributo PrintSchemaPrivateNamespaceURI definisce l'URI dello spazio dei nomi privato che il driver principale deve usare per esporre le funzionalità o le opzioni PPD private in PrintTicket o PrintCapabilities. L'attributo deve essere visualizzato nella radice del documento GPD e contiene una rappresentazione ASCII di un URI che verrà usato per definire uno spazio dei nomi nei documenti PrintTickets e PrintCapabilities. Tale URI verrà a sua volta associato a tutte le funzionalità e le opzioni che non dispongono di un mapping esplicito nello schema pubblico o che il driver principale non riconosce.

PrintSchemaKeywordMap

L'attributo PrintSchemaKeywordMap viene visualizzato in costrutti di funzionalità e di opzione nel file GPD. Questo attributo indica il nome dello schema di stampa pubblico da usare con le funzionalità definite dalla stampante. È possibile rinominare qualsiasi opzione specificata in un file GPD, ad eccezione di Duplex e Collate, in PrintTicket usando l'attributo PrintSchemaKeywordMap .

Il parser GPD ignora questo attributo per le funzionalità riconosciute in modo esplicito, incluse le dimensioni e il colore della pagina.

Tutti i valori devono essere racchiusi tra virgolette. Verranno convertiti in Unicode usando la tabella codici specificata nel gruppo Criteri di gruppo, se presente. Definizioni duplicate di qualsiasi attributo vengono risolte nello stesso modo degli altri attributi GPD: l'ultima definizione che viene letta ha la precedenza.

Se si esegue il mapping di una funzionalità a una parola chiave Schema di stampa già usata nel file GPD, il documento PrintCapabilities corrispondente potrebbe elencare tale funzionalità più volte. Più occorrenze potrebbero generare confusione, pertanto non è consigliabile eseguire il mapping delle funzionalità alle parole chiave dello schema di stampa usate nel file GPD.

Il parser GPD genera automaticamente l'opzione FORMSOURCE per la funzionalità InputBin ed esegue il mapping alla parola chiave AutoSelect nello schema di stampa. Se il file GPD contiene un'opzione InputBin che usa l'attributo PrintSchemaKeywordMap per eseguire il mapping dell'opzione a una parola chiave Schema di stampa, la funzionalità nello schema di stampa conterrà un'opzione FORMSOURCE nello spazio dei nomi del dispositivo. La selezione automatica verrà visualizzata nel documento PrintCapabilities e fa riferimento all'opzione specificata nell'attributo PrintSchemaKeywordMap del file GPD.

L'esempio di codice seguente mostra un file GPD parziale per visualizzare il layout.

*Feature: HPSTAPLER
{
    *Name: "Staple"
    *DefaultOption: Off
    * PrintSchemaKeywordMap: "Staple"

    *Option: Off
    {
        *Name: "Off"
        * PrintSchemaKeywordMap: "Off"
    }
 
    *Option: On
    {
        *Name: "On"
        * PrintSchemaKeywordMap: "On"
    }
}

IsXPSDriver

L'attributo IsXPSDriver usa la sintassi GPD seguente.

*IsXPSDriver?: TRUE | FALSE

È possibile usare il modulo di configurazione Unidrv di Windows Vista (Unidrvui.dll) sia per i driver GDI Di Microsoft Win32 che per i nuovi driver XPSDrv. Per usare il modulo di configurazione Unidrv per i driver XPSDrv, il file di dati GPD del driver XPSDrv deve specificare l'attributo IsXPSDriver e impostarne il valore su TRUE.

Ad esempio, se si dispone di un driver XPS, usare il codice seguente.

*IsXPSDriver?: TRUE

Per usare il modulo di configurazione Unidrv per i driver GDI Win32, non è necessario specificare questo attributo.

UseImageForHatchBrush?

L'attributo UseImageForHatchBrush? usa la sintassi GPD seguente.

*Ifdef: WINNT_60
*UseImageForHatchBrush?: TRUE
*Endif: WINNT_60 

In Microsoft Windows Server 2003 o Windows XP, quando Unidrv stampa in modalità HP-GL/2, se viene ricevuto un pennello di tratteggio nella funzione DrvIntuneBrush , Unidrv invia un comando in modo che la stampante selezioni il pennello di tratteggio appropriato. Unidrv non controlla il rendering del pennello di tratteggio. Ad esempio, la spaziatura tra le linee è in genere controllata dalla risoluzione. In una risoluzione superiore, la spaziatura diventa piccola, mentre sulla risoluzione inferiore, la spaziatura sarebbe maggiore. Pertanto, un documento potrebbe essere stampato in modo diverso se viene utilizzata una risoluzione diversa.

In Windows Vista, se l'oggetto Criteri di gruppo specifica l'attributo UseImageForHatchBrush? , Unidrv esegue il rendering del pennello di tratteggio su una superficie bitmap e quindi invia tale bitmap al dispositivo. Unidrv, quindi, ha un certo controllo sulla modalità di rendering del pennello di tratteggio.

ReverseBandOrder?

L'attributo ReverseBandOrder? usa la sintassi GPD seguente.

*Ifdef: WINNT_60
*ReverseBandOrder?: TRUE
*Endif: WINNT_60 

Il valore di ReverseBandOrder? è TRUE o FALSE per indicare se la banda inversa è abilitata. Questo attributo fa sì che il raggruppamento avvenga in ordine inverso. Ad esempio, per una pagina verticale, la banda viene eseguita dal basso verso l'alto anziché dall'alto verso il basso.

Questo attributo è essenzialmente uguale a ReverseBandOrderForEvenPages?, ad eccezione del fatto che ReverseBandOrder? viene considerato anche se duplex non è attivo (ReverseBandOrderForEvenPages? funziona solo se duplex è ON) e funziona per tutte le pagine (ReverseBandOrderForEvenPages? funziona solo su pagine pari). Per informazioni dettagliate su come usare ReverseBandOrder? e altre informazioni correlate, vedere *ReverseBandOrderForEvenPages?. Si noti in particolare che i plug-in devono invertire le linee di analisi e i bit nella linea di analisi.

È possibile usare una combinazione di *ReverseBandOrderForEvenPages? e *ReverseBandOrder?.

Quando solo ReverseBandOrder? è impostato su TRUE, il raggruppamento verrà invertito per tutte le pagine.

Quando solo ReverseBandOrderForEvenPages? è impostato su TRUE, il raggruppamento verrà invertito anche per pagesonly se la stampante sta stampando duplex. Se duplex non è impostato, l'impostazione ReverseBandOrderForEvenPages? viene ignorata.

Quando vengono impostati reverseBandOrder ? e ReverseBandOrderForEvenPages? si verifica quanto segue:

  • Se duplex è ON, la banda inversa viene eseguita per le pagine dispari (ovvero 1, 3, 5, 7 e così via).

  • Se duplex è OFF, la banda inversa viene eseguita per tutte le pagine.

BidiQueryFile

L'attributo BidiQueryFile usa la sintassi GPD seguente.

*BidiQueryFile: <GPD or GDL file name>

Usare BidiQueryFile per specificare il nome del file GPD o GDL che contiene i dati BidiQuery o BidiResponse del driver della stampante. Il nome del file GPD o GDL non deve specificare alcun percorso. Se i dati di configurazione automatica sono contenuti all'interno del file GPD DataFile del driver, è anche possibile specificare il file GPD come valore dell'attributo BidiQueryFile .

Nell'esempio di codice seguente viene illustrato un esempio di questo attributo in un file GPD parziale.

*Ifdef: WINNT_60
*BidiQueryFile: "ACnfgUni.GDL"
*Endif: WINNT_60