EPUB formatı bir dizi farklı spesifikasyonu / formatı bir araya getirir:
- kitabın içeriğinin nasıl görünmesi gerektiğini söyleyen biri (XHTML 1.1 + CSS'nin bir alt kümesi)
- biri bu içeriği oluşturan tüm dosyaları listeleyen bir "bildirim" tanımlamak için (bir XML dosyası olan OPF)
- her şeyin nasıl paketlendiğini tanımlamak için biri (OEBPS: manifestteki her şeyin bir zip dosyası ve birkaç ekstra dosya)
Spesifikasyonlar biraz ürkütücü görünüyor, ancak aslında temel bilgileri (XML'i açma, ayrıştırma) bir kez öğrendikten sonra, özellikle zor veya karmaşık değil.
EPUB'u nasıl indireceğinizi, bir yere açıp, manifest'i ayrıştırıp ardından ilgili içeriği nasıl görüntüleyeceğinizi öğrenmeniz gerekecek.
Yeni başlıyorsanız bazı ipuçları:
İçeriği görüntülemek UIWebView
için şimdilik sadece a kullanın .
İşte kodunuz için yüksek düzeyli bir adım adım:
1) ile bir görünüm oluşturun UIWebView
2) EPUB dosyasını indirin
3) yukarıda bağlantısı verilen zip kitaplığını kullanarak uygulamanızın belgeler klasöründeki bir alt dizine açın
4) XML dosyasını META-INF/container.xml
(bu dosya yoksa EPUB geçersizdir), yukarıda bağlantısı verilen TBXML kullanarak ayrıştırın
5) Bu XML'de, ortam türüne sahip ilk "kök dosyasını" bulun application/oebps-package+xml
. Bu, kitabın OPF dosyasıdır.
6) OPF dosyasını (ayrıca XML) ayrıştırın
7) şimdi kitabın ilk bölümünün ne olduğunu bilmeniz gerekiyor.
a) her <item>
içinde <manifest>
elemanının bir kimliğini ve bir href sahiptir. Bunları NSDictionary
, anahtarın id ve nesnenin href olduğu bir yerde saklayın.
b) İlk bak <itemref>
içinde <spine>
. (A) 'daki kimliklerden birine karşılık gelen bir idref niteliğine sahiptir. Bu kimliğe bakın NSDictionary
ve bir href alacaksınız.
c) bu, kullanıcıya göstermek için ilk bölümün dosyasıdır. Tam yolun ne olduğunu hesaplayın (ipucu: zip dosyasını (3) içine açtığınız yer artı (6) içindeki OPF dosyasının temel dizini)
8) bir oluşturma NSURL
kullanılarak fileURLWithPath:
yolu (7c) tam yoludur. Bu isteği UIWebView
(1) 'de oluşturduğunuz kullanarak yükleyin .
Kullanıcıların bir bölümden diğerine geçebilmesi için ileri / geri düğmelerini veya kaydırmaları veya başka bir şeyi uygulamanız gerekir. Daha sonra <spine>
hangi dosyanın <itemrefs>
gösterileceğini bulmak için kullanın - XML'deki, okuyucuya görünmesi gereken sıradadır.