C++/CLI Programm schreiben welches eine Word Datei erstellt

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Spezifikation für Word-Dateien ist so überkomplex, dass du das ganze JETZT sofort aufgeben solltest!

Du wirst keine Word-Dateien schreiben können, auch nicht mit C++ Standard-Streams oder Dateizugriffsmethoden.

Dafür solltest du dringendst eine fertige API benutzen bzw. dir eine Drittanbieter Bibliothek besorgen.

Anstatt Word kannst du aber mit Standard C++ Funktionen und ein paar sehr einfachen Funktionen RTF oder HTML Dokumente erzeugen! Sogar eine fertig layoutete Seite als SVG-Datei kannst du über Platzhalter mit C++ Standardfunktionalitäten befüllen, und damit deine Dokumente aufbauen.

Für PDF gibt es auch noch schöne Bibliotheken, wobei PDFs später natürlich nicht mehr (ohne weiteres) bearbeitbar sind.

Aber Word-Dokumente? Ernsthaft? Ein komplizierteres Dateiformat hast du wohl nicht finden können. :)

Wenn es wirklich Word sein muss, dann guck dir mal das offizielle SDK von MS an; gibt aber auch gute Drittanbieterbibliotheken.

Ich würde für so etwas - je nach Anforderung - HTML, RTF oder SVG nehmen ... oder einfach direkt eine PDF aus dem Programm heraus aufbauen. (wobei letzteres auch Drittanbieter Bibliotheken benötigt)

Im Grunde genommen kannst du zwar alles selbst entwickeln, aber bei PDF wird das Monate und bei Word-Dokumenten Jahre dauern.

HTML, RTF und SVG sind selbst für Anfänger völlig ohne Drittanbieter-Bibliotheken in weit unter einer Stunde zu implementieren.

Naja, trotzdem viel Spaß! Wie gesagt, wenn es Word sein muss, nimm ein SDK! Sonst kommst du auf keinen grünen Zweig! :)


TheXen0  10.03.2015, 21:02

Interessant, dass wusste ich gar nicht dass die so komplex sind. Hast du mal einen Link zu einem Artikel oder ähnlichem wo das Thema behandelt wird ? Habe nichts gutes dazu gefunden!

0
TeeTier  11.03.2015, 14:41
@TheXen0

Guck dir mal diesen Wikipedia Artikel zu OOXML an.

Dort gibt es im Abschnitt "Kritik" folgendes Zitat:

Kritisiert wird dabei der Umfang der Spezifikation mit über 6000 Seiten. Kritiker gehen davon aus, dass nur Microsoft die Spezifikation in vollem Umfang umsetzen könne, während es für Softwarehersteller von Konkurrenzprodukten praktisch unmöglich sei, das Dateiformat vollständig in ihre Anwendungen zu implementieren.

Man muss dazu sagen, dass Microsoft es hier und heute selbst noch immer NICHT geschafft hat, ihren eigenen Standard umzusetzen! Mit anderen Worten: es gibt immer noch Unstimmigkeiten zwischen dem Standard und den von Word erstellten Dokumenten.

Daher wird ein Anfänger selbst die 6000 Seiten Spezifikation niemals selbstständig vollständig implementieren können!

Guck dir bitte auch mal die weiterführunden Links und Quellenangaben am Schluss des Wikipedia Artikels an!

Also mit einer Drittanbieter-Bibliothek hast du durchaus eine Chance, wenn du auf viele Funktionen verzichtest, die Word normalerweise bietet.

Als Einzelperson solltest du dich aber wirklich auf RTF, SVG, HTML oder notfalls PDF beschränken.

DOCX ohne Third-Party-Libs ist mit purem C++ reiner Irrsinn! :)

Trotzdem nochmal viel Erfolg, für welches Dateiformat du dich letzendlich auch entscheidest! :)

1
J0T4T4  10.03.2015, 22:48

Woher nimmst du die Information, dass das eine Word ( .doc(x)) Datei werden soll? Textdateien sind für mich noch immer die .txt, und die sind das Einfachste überhaupt...

0
J0T4T4  12.03.2015, 10:06
@TeeTier

Jaja, die Überschrift ;) Dann ist .txt nur noch die in meinen Augen beste Alternative...

1

Nein Filestreams sagen mir nichts, ich bin auch noch ein Anfänger... 

Aber ja es soll eine vernünftige GUI haben. :)


J0T4T4  10.03.2015, 13:59

Mit C++ bekommst du als Anfänger keine vernünftige GUI hin, dafür brauch man deutlich mehr Erfahrung. (Bzw. man versucht sich an copy & paste)

0
Orthor 
Fragesteller
 10.03.2015, 14:00
@J0T4T4

Nunja die Gui ist eigentlich schon fast fertig. wie der text am ende aussehen soll ist auch schon klar. wenn ich eine richTextBox benutze geht mein Konzept ja auch auf. nur möchte ich das es am ende eine richtige Text Datei ist die man auch Speichern kann.

0
Orthor 
Fragesteller
 10.03.2015, 14:08
@J0T4T4

Vielen Dank ich werde mir das heute Abend mal anschauen und melde mich dann nochmal :)

0

Sagen dir Filestreams etwas? Was brauchst du konkret?