AIR'ye PDF içeriği eklemeAdobe AIR 1.0 ve üstü Adobe® AIR®'de çalışan uygulamalar yalnızca SWF ve HTML içeriği değil, PDF içeriği de oluşturabilir. AIR uygulamaları, HTMLLoader sınıfını, WebKit motorunu ve Adobe® Reader® tarayıcı eklentisini kullanarak PDF içeriği oluşturur. AIR uygulamasında, PDF içeriği uygulamanızın tam yükseklik ve genişliğine göre veya alternatif olarak arabiriminin bir parçası olarak uzayabilir. Adobe Reader tarayıcı eklentisi, AIR uygulamasında PDF dosyalarının görüntülenmesini kontrol eder. Okuyucu araç menüsü arabiriminde yapılan değişiklikler (konum, sabitleme ve görünürlük), hem AIR uygulamalarındaki hem de tarayıcıdaki PDF dosyalarının daha sonra görüntülenmesini devam ettirir Önemli: Kullanıcı, AIR uygulamasında PDF içeriği oluşturmak için Adobe Reader ya da Adobe® Acrobat® 8.1 veya daha yeni bir sürümü yüklemiş olmalıdır.
PDF Özelliklerini SaptamaKullanıcı Adobe Reader veya Adobe Acrobat 8.1 ya da daha yeni bir sürüme sahip değilse, PDF içeriği AIR uygulamasında görüntülenmez. Kullanıcının PDF içeriği oluşturup oluşturamayacağını saptamak için ilk önce HTMLLoader.pdfCapability özelliğini kontrol edin. Bu özellik HTMLPDFCapability sınıfının aşağıdaki sabitlerinden biri olarak ayarlanır:
Windows'ta, kullanıcının sisteminde Adobe Acrobat veya Adobe Reader 7.x ya da daha yeni bir sürüm çalışmaktaysa, PDF yüklemeyi destekleyen daha yeni bir sürüm yüklenmiş olsa bile bu sürüm kullanılır. Bu durumda, pdfCampability özelliğinin değeri HTMLPDFCapability.STATUS_OK ise, AIR uygulaması PDF içeriğini yüklemeye çalıştığında daha eski Acrobat veya Reader sürümü bir uyarı görüntüler (ve AIR uygulamasında istisna verilmez). Bu son kullanıcılarınız için olası bir durumsa, onlara uygulamanızı çalıştırdıkları sırada Acrobat'ı kapatmalarına ilişkin talimatlar vermeyi deneyebilirsiniz. PDF içeriği kabul edilebilir bir zaman diliminde yüklenmiyorsa, bu talimatları görüntülemek isteyebilirsiniz. Linux'ta, AIR kullanıcının dışa aktardığı PATH içinde (acroread komutunu içeriyorsa) ve /opt/Adobe/Reader dizininde Adobe Reader'ı arar. Aşağıdaki kod bir kullanıcının bir AIR uygulamasında PDF içeriği görüntüleyebilip görüntülemeyeceğini algılar. Kullanıcı PDF görüntüleyemezse kod, HTMLPDFCapability hata nesnesine denk gelen hata kodunu izler. if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) { trace("PDF content can be displayed"); } else { trace("PDF cannot be displayed. Error code:", HTMLLoader.pdfCapability); } PDF içeriği yüklemeBir HTMLLoader örneği oluşturarak, bu örneğin boyutlarını ayarlayarak ve PDF yolunu yükleyerek AIR uygulamasına bir PDF ekleyebilirsiniz. Aşağıdaki örnek, harici bir siteden PDF yükler. URLRequest öğesini kullanılabilir harici bir PDF'ye giden yolla değiştirin. var request:URLRequest = new URLRequest("http://www.example.com/test.pdf"); pdf = new HTMLLoader(); pdf.height = 800; pdf.width = 600; pdf.load(request); container.addChild(pdf); app ve app-storage gibi dosya URL'leri ve AIR'ye özgü URL şemalarından da içerik yükleyebilirsiniz. Örneğin, aşağıdaki kod uygulama dizininin PDF alt dizinindeki test.pdf dosyasını yükler: app:/js_api_reference.pdf AIR URL şemaları hakkında daha fazla bilgi için bkz. URI şemaları. Komut dosyası PDF içeriğiPDF içeriğini tarayıcıdaki web sayfasındaki gibi kontrol etmek için JavaScript'i kullanabilirsiniz. Acrobat'a ilişkin JavaScript geliştirmeleri aşağıdaki ek özellikleri sunar:
Adobe Acrobat'a yönelik JavaScript geliştirmelerine ilişkin tüm ayrıntılar http://www.adobe.com/devnet/acrobat/javascript.html adreslerindeki Adobe Acrobat Geliştirici Bağlantısı'nda sunulmuştur. HTML-PDF iletişim temelleriHTML sayfasındaki JavaScript, PDF içeriğini temsil eden DOM nesnesinin postMessage() yöntemini çağırarak PDF içeriğindeki JavaScript'e mesaj gönderebilir. Örneğin, aşağıdaki gömülü PDF içeriğini dikkate alın: <object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/> Mevcut HTML içeriğinde aşağıdaki JavaScript kodu, PDF dosyasındaki JavaScript'e bir mesaj gönderir: pdfObject = document.getElementById("PDFObj"); pdfObject.postMessage(["testMsg", "hello"]); PDF dosyası, bu mesajın alınması için JavaScript'i dahil edebilir. Belge, klasör, sayfa, alan düzeyi ve toplu düzey bağlamları dahil bazı bağlamlardaki PDF dosyalarına JavaScript kodu ekleyebilirsiniz. Burada yalnızca, PDF dokümanı açıldığında değerlendirilen komut dosyalarını tanımlayan belge düzeyi bağlamı tartışılır. PDF dosyası hostContainer nesnesine messageHandler özelliğini ekleyebilir. messageHandler özelliği, mesajları yanıtlamak için işleyici işlevlerini tanımlayan bir nesnedir. Örneğin aşağıdaki kod, PDF dosyası tarafından ana bilgisayar kabından (PDF dosyasını içeren HTML içeriği) alınan mesajları işlemeye yönelik işlevi tanımlar: this.hostContainer.messageHandler = {onMessage: myOnMessage}; function myOnMessage(aMessage) { if(aMessage[0] == "testMsg") { app.alert("Test message: " + aMessage[1]); } else { app.alert("Error"); } } HTML sayfasındaki JavaScript kodu, sayfada yer alan PDF nesnesinin postMessage() yöntemini çağırabilir. Bu yöntemin çağrılması, PDF dosyasındaki belge düzeyinde JavaScript'e bir mesaj ("Hello from HTML") gönderir: <html> <head> <title>PDF Test</title> <script> function init() { pdfObject = document.getElementById("PDFObj"); try { pdfObject.postMessage(["alert", "Hello from HTML"]); } catch (e) { alert( "Error: \n name = " + e.name + "\n message = " + e.message ); } } </script> </head> <body onload='init()'> <object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/> </body> </html> Daha gelişmiş bir örnek için ve bir PDF dosyasına JavaScript eklemek üzere Acrobat 8 kullanımıyla ilgili bilgi almak için bkz. Adobe AIR uygulamasında PDF içeriğinde çapraz komut dosyası oluşturma. ActionScript'ten PDF içeriği için komut dosyasıActionScript kodu (SWF içeriğindeki), PDF içeriğindeki JavaScript ile doğrudan iletişim kuramaz. Ancak, ActionScript PDF içeriğini yükleyen bir HTMLLoader nesnesinde yüklenen HTML sayfasındaki JavaScript ile iletişim kurabilir ve bu JavaScript kodu, yüklenen PDF sayfasındaki JavaScript ile iletişim kurabilir. Daha fazla bilgi için bkz. AIR uygulamasında HTML ve JavaScript programlama. AIR'de PDF içeriği için bilinen sınırlamalarAdobe AIR'deki PDF içeriği aşağıdaki sınırlamaları içerir:
|
|