Boyutu, ölçeği ve yönlendirmeyi ayarlamaFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Sayfa yazdırma bölümünde, temel yazdırma işinin adımları ayrıntılı şekilde ele alınmaktadır ve burada çıktı sözcüğü, belirtilen hareketli grafiğin ekran boyutunun ve konumunun yazdırılmış eşdeğerini yansıtır. Ne var ki yazıcılar yazdırma için farklı çözünürlükler kullanır ve yazdırılan hareketli grafiğin görünümünü olumsuz yönde etkileyen ayarlara sahip olabilir. Flash çalışma zamanları bir işletim sisteminin yazdırma ayarlarını okuyabilir ancak bu özelliklerin salt okunur olduğunu ve özelliklerin değerlerini yanıtlayabilseniz de ayarlayamadığınızı unutmayın. Bu nedenle de, örneğin, yazıcının sayfa boyutu ayarlarını öğrenip içeriğinizi bu boyuta sığacak şekilde ayarlayabilirsiniz. Ayrıca yazıcının kenar boşluğu ayarlarını ve sayfa yönlendirmesini de belirleyebilirsiniz. Yazıcı ayarlarını yanıtlamak için, bir yazdırma alanı belirtin, ekran çözünürlüğü ile yazıcının nokta ölçüleri arasındaki farkı ayarlayın veya kullanıcının yazıcısının boyut ve yönlendirme ayarlarına uyacak şekilde içeriğinizi dönüştürün. Yazdırma alanı için dikdörtgenler kullanmaPrintJob.addPage() yöntemi, hareketli grafiğin yazdırılmasını istediğini bölgesini belirtmenize olanak sağlar. İkinci parametre olan printArea, bir Rectangle nesnesi şeklindedir. Bu parametre için bir değer sağlamaya yönelik üç seçeneğiniz vardır:
Nokta ve pikselleri karşılaştırmaBir dikdörtgenin genişliği ve yüksekliği piksel değerlerindedir. Bir yazıcı, yazdırma ölçüm birimi olarak puntoları kullanır. Puntolar sabit bir fiziksel boyuttadır (1/72 inç) ancak ekrandaki pikselin boyutu o ekranın çözünürlüğüne bağlıdır. Pikseller ile puntolar arasındaki dönüştürme oranı, yazıcı ayarlarına ve hareketli grafiğin ölçeklenmiş olup olmamasına bağlıdır. 72 piksel genişliğindeki ölçeklenmemiş bir hareketli grafik, ekran çözünürlüğünden bağımsız olarak, bir nokta bir piksele eşit olacak şekilde bir inç genişliğinde yazdırılır. İnç ve santimetre birimlerini twip'lere veya puntolara (bir twip, bir puntonun 1/20'sidir) dönüştürmek için aşağıdaki eşitlikleri kullanabilirsiniz:
printArea parametresini çıkarırsanız veya bu parametre yanlış şekilde iletilirse, hareketli grafiğin tüm alanı yazdırılır. ÖlçeklemeBir Sprite nesnesini yazdırmadan önce ölçeklemek istiyorsanız, PrintJob.addPage() yöntemini çağırmadan önce ölçek özelliklerini ayarlayın (bkz. Boyut ve ölçekleme nesnelerini işleme) ve yazdırma işleminden sonra bunları geri orijinal değerlerine ayarlayın. Sprite nesnesinin ölçeği ile printArea özelliği arasında herhangi bir ilişki yoktur. Başka bir deyişle, 50 piksel x 50 piksel olan bir yazdırma alanı belirtirseniz, 2500 piksel yazdırılır. Sprite nesnesini ölçeklerseniz, aynı 2500 piksellik alan yazdırılır, ancak Sprite nesnesi ölçeklenen boyutta yazdırılır. Bir örnek için, bkz. Yazdırma örneği: Ölçekleme, kırpma ve yanıtlama. Yatay ve dikey yönlendirme için yazdırmaFlash Player ve AIR uygulaması yönlendirme ayarlarını algılayabildiğinden, aşağıdaki örnekte gösterildiği gibi, yazıcı ayarlarına yanıt olarak içerik boyutunu veya dönüşü ayarlamak için ActionScript uygulamanızda mantık oluşturabilirsiniz: if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE) { mySprite.rotation = 90; } Not: Kağıtta içerik yönlendirmesine yönelik sistem ayarını okumayı planlıyorsanız, PrintJobOrientation sınıfını içe aktarmayı unutmayın. PrintJobOrientation sınıfı, sayfadaki içerik yönlendirmesini tanımlayan sabit değerler sağlar. Şu deyimi kullanarak sınıfı içe aktarırsınız:
import flash.printing.PrintJobOrientation; Sayfa yüksekliğini ve genişliğini yanıtlamaYazıcı yönlendirme ayarlarına benzer bir strateji kullanarak, sayfa yüksekliği ve genişliği ayarlarını okuyabilir ve if deyimine bir mantık gömerek bunları yanıtlayabilirsiniz. Aşağıdaki kod bir örneği gösterir: if (mySprite.height > myPrintJob.pageHeight) { mySprite.scaleY = .75; } Üstelik, aşağıdaki örnekte gösterdiği gibi, sayfa ve kağıt boyutları karşılaştırılarak sayfanın kenar boşluğu ayarları belirlenebilir: margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2; margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2; |
|