Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Modern yazdırma platformu, Windows'un yazıcılarla iletişim kurmak için tercih ettiği araçlardır. Yazıcı cihazı geliştirme için Windows 10 ve 11'deki yazdırma deneyimini özelleştirmek için Yazdırma Desteği Uygulamaları (PSA) ile birlikte Microsoft'un IPP gelen kutusu sınıf sürücüsünü kullanmanızı öneririz.
Daha fazla bilgi için bkz. Yazdırma Desteği Uygulaması v1 ve v2 tasarım kılavuzu.
GPD dili, bazı yazıcı özniteliklerinin yazıcı yapılandırmasında sahip olabileceği bağımlılıkları açıklamanıza olanak sağlayan C benzeri koşullu deyimler sağlar. Örneğin, bir sayfanın kenar boşlukları ve imleç kaynağı sayfanın yönlendirmesine bağlı olabilir. *Switch ve *Case deyimleri, bu tür bağımlılıkları ifade etmenizi sağlar. Bu deyimlerin biçimi aşağıdaki gibidir:
*FeatureName { *Case Option1_Name { } *Case Option2_Name { } vb. değiştirin. *Case OptionN_Name { } *Default { } }
FeatureName, GPD dosyasında *Feature girişiyle belirtilen özelliğin adı olmalıdır. Kullanılan seçenek adları, belirtilen özellikle ilişkili seçenekler olmalıdır.
Sayfa kenar boşluklarının ve imleç kaynağının sayfanın yönlendirmesine bağımlı olduğu durumu ifade etmek için aşağıdaki girdiler kullanılabilir:
*Feature: Orientation
{
*DefaultOption: Portrait
*Option: Portrait
{
*Name: "Portrait"
*rcIconID: =RC_ICON_PORTRAIT
}
*Option: LANDSCAPE_CC90
{
*Name: "Landscape"
*rcIconID: =RC_ICON_LANDSCAPE
}
}
*Feature: PaperSize
{
*DefaultOption: Letter
*Option: Letter
{
*Name: "Letter 8.5 x 11 inch"
*switch: Orientation
{
*case: Portrait
{
*PrintableArea: PAIR(4800, 6324)
*PrintableOrigin: PAIR(150, 150)
*CursorOrigin: PAIR(150,100)
}
*case: LANDSCAPE_CC90
{
*PrintableArea: PAIR(4860, 6360)
*PrintableOrigin: PAIR(120, 120)
*CursorOrigin: PAIR(100,6480)
}
}
}
}
Bu örnekte, yazıcının PaperSize özelliğine yönelik seçenekler, yazıcının Yönlendirme özelliği için seçilen seçeneğe bağlıdır.
Bir özelliğin tüm seçeneklerini *Case ifadesinin bağımsız değişkenleri olarak listeleyemezseniz, C dilinde olduğu gibi bir *Varsayılan ifadesi ekleyebilirsiniz. Tüm seçenekleri dahil etmediyseniz ve bir *Varsayılan deyimi içermiyorsanız, *Switch deyiminden önce, GPD dosyasının başka bir yerindeki ilgili öznitelikleri (*PrintableArea, *PrintableOriginve *CursorOrigin) değerlendirmeniz gerekir.
Birden Çok Bağımlılık Belirtme
*Switch deyimlerini *Case ve *Default deyimlerinin içine ekleyebilirsiniz. Bu, aşağıdaki gibi birden çok bağımlılık belirtmenize olanak tanır:
*Feature: feature1 {*Option: optionA {...} *Option: optionB {...}}
*Feature: feature2 {*Option: optionC {...} *Option: optionD {...}}
*Feature: feature3
{*Option: optionE
{*Switch: feature1
{*Case: optionA
{*Switch: feature2
{*Case: optionD
{AttributeX: ValueX}
*Default
{AttributeX: ValueY}
}
}
*Default
{AttributeX: ValueZ}
}
}
*Option: optionF {...}
}
Bu örnekte, feature3'ün optionE'sine ait olan AttributeX, hem özellik1 hem de özellik2'ye bağlıdır.
Kullanıcı özellik1 için A, özellik2 için optionD ve feature3 için optionE seçeneğini belirlediyse attributeX değeri ValueX olarak ayarlanır.
Kullanıcı özellik1 için A seçeneğini, özellik2 için optionC'yi ve feature3 için optionE'yi seçtiyse attributeX değeri ValueY olarak ayarlanır.
Kullanıcı özellik1 içinB ve feature3 için optionE seçeneğini belirlediyse, attributeX değeri ValueZ olarak ayarlanır. Feature2 ayarı önemsizdir.
Birden çok bağımlılık belirtilirken aşağıdaki kurallar geçerlidir:
Tek bir *Switch girişi kapsamında birden çok bağımlılık belirtilmelidir. Örneğin, *Switch girişini kullanarak feature3'ün feature1'e bağımlı olduğunu belirtemezsiniz ve sonrasında iç içe olmayan bir *Switch deyiminde feature3'ün feature2'ye bağımlı olduğunu belirtemezsiniz.
Aynı özelliği iç içe * değiştir girdisi içinde birden çok kez belirtemezsiniz.
Switch Deyiminin Yerleştirileceği Yer
GpD dosyasında aşağıdaki konumlara *Switch deyimi yerleştirebilirsiniz:
*Option deyiminin içinde
*Feature ifadesinin içinde
Bir *Case deyiminin içinde
*Varsayılan deyiminin içinde
Dosyanın en üst düzeyinde (yani küme ayraçlarının içinde değil)
Switch, Case ve Default ifadelerinin içine ne yerleştirilir?
*Anahtar girdisi içinde yalnızca *Servis Talebi ve *Varsayılan girdilerini yerleştirebilirsiniz.
GPD dosya girdilerinden *Case veya *Default girdileri içine yerleştirilebilenler, yeniden konumlandırılabilir girdiler olarak adlandırılır. Aşağıdaki GPD girdisi türleri yeniden konumlandırılabilir:
kök düzeyindeki öznitelikler dışında yazıcı özniteliklerinin çoğu. (*Anahtarı girdisi küme ayraçları içinde değil kök düzeyinde olmadığı sürece Genel özniteliklerin önünde EXTERN_GLOBAL olmalıdır.)
İç içe *Birden çok bağımlılık belirtmenize olanak tanıyan girişlerini değiştirin.
*Komut girdileri.
*TTFSEnabled?, yazı tipi değişimini etkinleştirir.
Aşağıdaki GPD girdisi türleri yeniden konumlandırılamaz:
Yalnızca kök düzeyinde öznitelikler.
*Değiştirilen yazı tipini belirtmek için TTFS girdileri.
*Constraints, *InvalidCombination, *InvalidInstallableCombination, *NotInstalledConstraints seçeneklerin geçersiz kombinasyonlarını Seçenek Kısıtlamalarıolarak tanımlayan girdilerdir.
*Özellik ve *Seçenek girişleri (özellik öznitelikleri ve seçenek öznitelikleri yeniden konumlandırılabilir).
*Case deyimlerinin içine girdilerin doğru yerleştirilip yerleştirilmediğini belirlemenin bir yöntemi, *Switch ve *Case deyimlerinin tümünü kaldırmaktır. *Case deyimlerinin içindeki girdiler doğruysa, *Switch ve *Case deyimleri kaldırıldıktan sonra da doğru olur.
Sınıf sürücüsünden türetilen V4 yazdırma sürücüsünde switch deyimlerinin sıralanması
Türetilmiş v4 yazıcı sürücüsünün GPD dosyasının temel sınıf sürücüsüyle aynı sırayı izlemesi gerekir.
Aşağıdaki senaryoyu göz önünde bulundurun. *-manifest.ini dosyasındaki sınıf sürücüsüne RequiredClass ayarlayarak v4 sınıf sürücüsünden türetilen bir v4 yazıcı sürücüye sahipsiniz.
Sınıf sürücüsünün GPD dosyasında aşağıdaki anahtar ağacı vardır:
* Option: A4
1. Switch: Resolution
* Option: Letter
1. Switch: Resolution
2. Switch: InputBin
Türetilmiş v4 yazıcı sürücüsü MarginSetting anahtarını eklemek istediği için, GPD dosyasında aşağıdaki anahtar ağacı olacaktır.
* Option: A4
1. Switch: Resolution
2. Switch: InputBin
3. Switch: MarginSetting
* Option: Letter
1. Switch: Resolution
2. Switch: InputBin
3. Switch: MarginSetting
türetilmiş GPD'de ÇözünürlükInputBin ve her ikisinden sonra MarginSetting ayarlandığını unutmayın. Türetilmiş v4 yazıcı sürücüsünün GPD dosyası, temel sınıf sürücüsüyle aynı sırayı izler, ardından MarginSetting ekleyip devam eder.
Örneğin, yanlış türetilmiş bir GPD dosyası aşağıdaki gibi görünebilir:
* Option: A4
1. Switch: MarginSetting
2. Switch: InputBin
3. Switch: Resolution
* Option: Letter
1. Switch: MarginSetting
2. Switch: InputBin
3. Switch: Resolution