سؤال

ولدي مشروع على شبكة الإنترنت حيث يجب أن أقوم باستيراد النصوص والصور من وثيقة يقدمها المستخدم، واحدة من الصيغ الممكنة هو مايكروسوفت أوفيس 2007. وهناك أيضا حاجة إلى توليد الوثائق في هذا الشكل.

والخادم يعمل سينت أو إس 5.2 ولديه PHP / بيرل / بيثون تثبيت. أنا يمكن تنفيذ ثنائيات المحلية والنصوص قذيفة إذا لا بد لي. نحن نستخدم أباتشي 2.2 ولكن سيتم تتحول الى إنجن إكس بمجرد أن يذهب مباشرة.

ما هي خياراتي؟ كان أي شخص تجربة مع هذا؟

هل كانت مفيدة؟

المحلول

وتنسيقات الملفات أوفيس 2007 مفتوحة و موثقة جيدا . تحدث تقريبا، كل من تنسيقات الملفات الجديدة التي تنتهي في "س" هي الرمز البريدي المضغوط وثائق XML. على سبيل المثال:

<اقتباس فقرة>   

لفتح ملف XML وورد 2007 إنشاء   المجلد المؤقت في لتخزين   ملف وأجزائه.

     

حفظ مستند Word 2007، التي تحتوي على   النصوص والصور، وغيرها من العناصر، كما   ملف دوكإكس.

     

وإضافة ملحق البريدي إلى نهاية   اسم الملف.

     

وانقر نقرا مزدوجا فوق الملف. فإنه سيتم فتح في   تطبيق ZIP. يمكنك ان ترا ال   الأجزاء التي تتكون من الملف.

     

واستخراج الأجزاء إلى المجلد الذي   قمت بإنشائه سابقا.

وتنسيقات الملفات الأخرى متشابهة تقريبا. أنا لا أعرف من أي المكتبات مفتوحة المصدر للتفاعل معهم حتى الآن - ولكن اعتمادا على متطلباتك بالضبط، فإنه لا يبدو من الصعب جدا قراءة وكتابة وثائق بسيطة. بالتأكيد يجب أن يكون أسهل بكثير من مع الأشكال القديمة.

إذا كنت بحاجة لقراءة الأشكال القديمة، أوبن أوفيس لديه API ويستطيعون القراءة والكتابة Office 2003 و الوثائق القديمة مع نجاح أكثر أو أقل من ذلك.

نصائح أخرى

وحدة دوكإكس الثعبان يمكن أن تولد تنسيق ملفات مكتب دوكإكس Microsoft من بيثون النقي. من خارج منطقة الجزاء، فإنه رؤوس الفقرات والجداول، والرصاص، ولكن وحدة makeelement () يمكن أن تمتد إلى قيام عناصر التعسفية مثل الصور.

from docx import *
document = newdocument()

# This location is where most document content lives 
docbody = document.xpath('/w:document/w:body',namespaces=wordnamespaces)[0]

# Append two headings
docbody.append(heading('Heading',1)  )   
docbody.append(heading('Subheading',2))
docbody.append(paragraph('Some text')

ولقد استخدمت بنجاح تنسيق OPENXML SDK في مشروع لتعديل جداول البيانات إكسل بواسطة رمز. وهذا يتطلب NET و أنا لست متأكدا من مدى انها ستعمل تحت مونو.

وربما يمكنك التحقق من رمز لل Sphider . أنها مستندات وملفات PDF، لذلك أنا متأكد من أنهم يستطيعون قراءتها. قد تقودك أيضا في الاتجاه الصحيح لتنسيقات Office الأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top