Eğer senin Delphi Uygulamanın çeşitli dosya türlerinde çalışması gerekir; uygulamanız için sahip olabileceğiniz görevlerden biri, uygulama kullanıcısının dosya türü ne olursa olsun bir dosya yazdırmasına izin vermektir.
MS Word, MS Excel veya Adobe gibi belge yönelimli uygulamaların çoğu, bu programda oluşturulan belgeleri kolayca yazdırabilir. Örneğin, Microsoft, Word, yazdığınız metni DOC uzantılı belgelere kaydeder. Word bir .DOC dosyasının "ham" içeriğini belirlediğinden .DOC dosyalarının nasıl yazdırılacağını bilir. Aynısı, bazı yazdırılabilir bilgileri içeren "bilinen" dosya türleri için de geçerlidir.
Uygulamanızdan çeşitli belge / dosya yazdırmanız gerekiyorsa ne olur? Düzgün yazdırılması için dosyayı yazıcıya nasıl göndereceğinizi biliyor musunuz?
Delphi'den Yazdır
Windows'a hangi uygulamanın (örneğin bir PDF dosyası) yazdırabileceğini sorabiliriz. Ya da daha iyisi, Windows'a söyleyebiliriz, işte bir PDF dosyası, PDF dosyalarını yazdırmakla ilişkili / sorumlu uygulamaya gönderin.
Bunu yapmak için Windows Gezgini'ni açın, yazdırılabilir bazı dosyalar içeren bir dizine gidin. Sisteminizdeki dosya türlerinin çoğu için, Windows Gezgini'nde bir dosyayı sağ tıklattığınızda "Yazdır" komutunu bulacaksınız. Yazdırma kabuğu komutunun yürütülmesi, dosyanın varsayılan yazıcıya gönderilmesine neden olur. İstediğimiz tam olarak budur: bir dosya türü için, dosyayı yazdırılmak üzere ilgili uygulamaya gönderecek bir yöntemi çağırın. Sonra geldiğimiz işlev ShellExecute API işlevidir.
ShellExecute: Yazdır / Yazdır
Ancak, ShellExecute çok daha fazlasını yapabilir. ShellExecute aşağıdakiler için kullanılabilir bir uygulama başlat, Windows Gezgini'ni açın, belirtilen dizinden başlayarak bir arama başlatın ve - bizim için en önemli olanı - belirtilen dosyayı yazdırın.
Yazıcıyı Belirtin
Yukarıdaki çağrıyı kullanarak, C sürücüsünün kökünde bulunan bir "document.doc" belgesi Windows varsayılan yazıcısına gönderilir. ShellExecute, "yazdırma" eylemi için her zaman varsayılan yazıcıyı kullanır. Farklı bir yazıcıya yazdırmanız gerekirse, kullanıcının yazıcıyı değiştirmesine izin vermek isterseniz ne olur?
PrintTo Kabuk Komutu
Kopyalama ve yapıştırmadan önce: Tüm Delphi programlarında bulunan Yazıcı genel değişkeni (TPrinter türü), bir uygulama tarafından gerçekleştirilen herhangi bir baskıyı yönetmek için kullanılabilir. Yazıcı "yazıcılar" biriminde, ShellExecute "shellapi" biriminde tanımlanır.
- Bir forma TComboBox bırakın. "CboPrinter" olarak adlandırın. Stili csDropDownLidt olarak ayarla
- Sonraki iki satırı formun OnCreate çift işleyicisine yerleştirin:
// birleşik giriş kutusunda kullanılabilir yazıcılar varcboPrinter. Öğeler. Ata (yazıcı. Yazıcılar);// varsayılan / etkin yazıcıyı önceden seçincboPrinter. ItemIndex: = yazıcı. PrinterIndex;
belirtilen bir yazıcıya herhangi bir belge türü yazdırmak için kullanın
Not: bazı belge türlerinde yazdırma ile ilişkili bir uygulama yoktur. Bazılarında "printto" eylemi belirtilmemiş.