Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1151 İleti | kuftikufti | 04 Oca 2014, 23:33

Merhabalar,
Aslında sorun sadece Kelime İşlemci ile alakalı değil, diğer uygulamlarla ilgili ama yazacak uygun bir yer bulamadım. Bunun için yöneticilerden şimdiden özür dilerim.

Sorunum, sistem tarafından oluşturulan ODX (odt, ods, odb...) dosyalarının LibreOffice tarafından "Sürüm Uyumsuzluğu. Yanlış dosya sürümü" hatası vererek açılmaması. Öncelikle hatayı Python ile yazdığım uygulamalarda aradım ama doğrudan konsoldan "touch" komutuyla oluşturulan dosyalarda da aynı uyarı ile karşılaşıyorum. Arch 32 bit sistemde LO 4.1.4 kullanıyorum.

Bunun sebebi ve çözümü hakkında fikri olan var mı? Şimdiden teşekkürler.
kuftikufti
 
İleti: 6
Kayıt: 02 Oca 2014, 21:52
İşletim Sisteminiz: Arch Linux
LibreOffice Sürümü: 5.1.3.2

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1152 İleti | kobzeci | 05 Oca 2014, 12:24

Merhaba Hamit,

Sistemin oluşturduğu dosyaların ODF sürümleri nedir? Gerçi yeni sürüm bir LO kullanıyorsun, eski 1.0 serisini de destekliyorlar. Burada oluşturulan ODF'lerin geçerli biçimde olmamalarından şüphelenmek lazım. Örnek paylaşabileceğin bir dosya var mı?

LibreOffice ile oluşturduğun dosyalarda sorun yok değil mi?

Dosya yapısına bakmak da lazım: http://blog.bluzz.net/onemli-belgelerle ... kurtarmak/ bu yazının alt bölümünde ODF dosyasını nasıl ayrıştırıldığını anlatmıştım. Ordan bakabiliriz.
kobzeci
 
İleti: 265
Kayıt: 01 Ağu 2012, 10:07

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1153 İleti | kuftikufti | 07 Oca 2014, 00:31

Merhaba Zeki,

Yuvarlanan sürüm bir dağıtım kullandığımdan paketlerin hepsi son sürümlerde. LO paketinde bir problem yok. Kendi oluşturduğu dosyalarda sorun yok. Aslında yapmak istediğim şey, bir Python uygulamasına bir *.ods dosyası oluşturarak, bunu veritabanına işletmeye çalışmaktı. Ama sonradan XML dosyalarının daha iyi bir seçenek olduğunu gördüm. Hem LO, hem de her tip veritabanı tarafından okunabiliyorlar. O şekilde kendi problemimi hallettim ama aklımda kaldı. Çünkü iş ileride oraya varacak gene. Yazdırma ve dosya oluşturma yapmasam bile, bir *.odt dosyasından okuma yaptırmam gerekecek, her neyse...

Paylaşmama gerek olduğunu sanmıyorum. Muhtemelen hatayı kendinde tekrarlayabilirsin. Konsola touch deneme.odt yazıp, dizin altında oluşan deneme.odt dosyasını açmayı deneyebilirsin. Muhtemelen oluşan dosyanın, aslında bir OD dosyası olmamasından kaynaklanıyordur. Ama düz metin dosyası (mesela *.txt ya da *.xml) oluşturursan LO dosyayı açabiilyor. Aslında merak ettiğim de LO'nun bu tip şeyler için özel bir açma fonksiyonu (mesela atıyorum, "uyumlu kipte aç" falan gibi) var mı?

Belge kurtarma kısmını deneyeceğim. Sonucu buraya bildiririm.
kuftikufti
 
İleti: 6
Kayıt: 02 Oca 2014, 21:52
İşletim Sisteminiz: Arch Linux
LibreOffice Sürümü: 5.1.3.2

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1154 İleti | turkdefence | 07 Oca 2014, 23:36

Herhangi bir uygulama tarafından odt dosyası oluşturmak istiyorsunuz anladığım.

Dilerseniz konuya ben de PHP tarafından bakayım.

~~~~~~~

ODT dosyası aslında zip formatında bir içeriğe sahiptir.

test.odt dosyasını test.zip diye değiştirip iç yapısını görüntülerseniz

Kod: Tümünü seç
Configurations2/
META-INF/
Thumbnails/
content.xml
layout-cache
manifest.rdf
meta.xml
mimetype
settings.xml
styles.xml


Klasör ve dosyalarına sahip olduğunu görürsünüz.

İlk işlem olarak META-INF/ klasörüne bulunan manifest.xml dosyasına başvurulmaktadır.

Dosyanın içeriği şöyle

Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">
 <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.text"/>
 <manifest:file-entry manifest:full-path="Thumbnails/thumbnail.png" manifest:media-type="image/png"/>
 <manifest:file-entry manifest:full-path="layout-cache" manifest:media-type="application/binary"/>
 <manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
 <manifest:file-entry manifest:full-path="settings.xml" manifest:media-type="text/xml"/>
 <manifest:file-entry manifest:full-path="meta.xml" manifest:media-type="text/xml"/>
 <manifest:file-entry manifest:full-path="styles.xml" manifest:media-type="text/xml"/>
 <manifest:file-entry manifest:full-path="manifest.rdf" manifest:media-type="application/rdf+xml"/>
 <manifest:file-entry manifest:full-path="Configurations2/accelerator/current.xml" manifest:media-type=""/>
 <manifest:file-entry manifest:full-path="Configurations2/" manifest:media-type="application/vnd.sun.xml.ui.configuration"/>
</manifest:manifest>


mimetype uzantısız dosyası dosya tipini tutmaktadır.

Kod: Tümünü seç
application/vnd.oasis.opendocument.text


Bu dosyanın opendocument.text /odt olduğu buradan anlaşılmaktadır.

meta.xml dosyasında inkar edemeyeceğiniz imzalar bulunmaktadır. Temel olarak birilerine gönderdiğinizde dökümanın sizi ele veren kısmıdır :)

Content.xml ise asıl içeriğimizi taşımaktadır.

bu bağlamda touch test.odt şeklinde oluşturulmuş bir basit dosyanın neden açılmayacağını anlamıştırsınız umarım.

~~~~~~~~~~~~~~~~~

Tersine bir işlem olarak, bu klasör yapısına ve gerekli dosya uyumluluklarına sahip bir dosya çıktısı zipleyip basabiliyorsanız, openoffice/libreoffice ile açılmaması için bir sebep görünmemekte.

php ile odt basmak değil ama, bir ara php ile EPUB dosyası export itmek için uğraşmıştım. Öylece kala kaldı.

Şimdi ise WebODT projesi ile uğraşıyor, kimi özgür yazılım sevenler.
Kullanıcı avatarı
turkdefence
 
İleti: 299
Kayıt: 31 Tem 2012, 23:26

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1158 İleti | kuftikufti | 12 Oca 2014, 10:08

@kobzeci, @yakusha; her ikinize de çok teşekkür ederim.

*.odt kurtarma kısmı tam olarak aradığım şey olmasa da, pek çok ışık yaktı doğrusu. Dosya içeriği ilgili açıklamalarınız çok işime yaradı. @yakusha'nın açıklamaları da ne yapmam gerektiği konusunda yol gösterici oldu. XML nelere kadir. :)

LO ile boş bir *.odt dosyası oluşturup, onun içeriğinin birebir kopyasını Python'a oluşturtup paketledikten sonra, dosya ismini değiştirip, sonradan üzerine yazım yapılabilir sanırım. Bir yol göründü ama nereye çıkacak bakalım??! :D

Yapabilirsem sonucu ve kodu burada paylaşırım. Tekrar teşekkürler her ikinize de.
kuftikufti
 
İleti: 6
Kayıt: 02 Oca 2014, 21:52
İşletim Sisteminiz: Arch Linux
LibreOffice Sürümü: 5.1.3.2

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1161 İleti | turkdefence | 16 Oca 2014, 21:18

Python demiştiniz, django ile yazılmış konuyla ilgili bir çalışma var görünüyor.

https://github.com/NetAngels/django-webodt
Kullanıcı avatarı
turkdefence
 
İleti: 299
Kayıt: 31 Tem 2012, 23:26

Re: Sistem Tarafından Oluşturulan OD(X) Dosyalarında Sürüm Uyumsuzluğu

#1162 İleti | kuftikufti | 18 Oca 2014, 18:45

yakusha yazdı:Python demiştiniz, django ile yazılmış konuyla ilgili bir çalışma var görünüyor.

https://github.com/NetAngels/django-webodt


Güzel bir çalışma yapılmış. Daha önceki mesajınızdan WebODT ile ilgili biraz araştırma yaptım. İleride işime yarayacak bir proje. Ancak bunu kullanacak duruma gelebilmek için bir hayli yol gideceğim daha. Yine de ileride DOC ve ODT dosyalarından veri okutabilmek için ihtiyacım olacaktır. WebODT ile ilgili siteleri sık kullanılanlara ekledim. Teşekkürler.
kuftikufti
 
İleti: 6
Kayıt: 02 Oca 2014, 21:52
İşletim Sisteminiz: Arch Linux
LibreOffice Sürümü: 5.1.3.2


Writer - Kelime İşlemcisi

Kimler çevrimiçi

Kayıtlı kullanıcılar: MSNbot Media

cron