1. sayfa (Toplam 1 sayfa)

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

Gönderilme zamanı: 04 Oca 2014, 23:33
gönderen kuftikufti
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.

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

Gönderilme zamanı: 05 Oca 2014, 12:24
gönderen kobzeci
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.

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

Gönderilme zamanı: 07 Oca 2014, 00:31
gönderen kuftikufti
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.

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

Gönderilme zamanı: 07 Oca 2014, 23:36
gönderen sabriunal
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.

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

Gönderilme zamanı: 12 Oca 2014, 10:08
gönderen kuftikufti
@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.

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

Gönderilme zamanı: 16 Oca 2014, 21:18
gönderen sabriunal
Python demiştiniz, django ile yazılmış konuyla ilgili bir çalışma var görünüyor.

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

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

Gönderilme zamanı: 18 Oca 2014, 18:45
gönderen kuftikufti
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.