Seite 1 von 3
Text aus Powerpoint auslesen
Verfasst: 20.11.2008 14:17
von saimen
ich brauche eine Funktion mit der ich den Text einer Powerpoint Datei auslesen kann um ihn dann als txt abzuspeichern und weiter bearbeiten zu können.
Gibts da vielleicht eine Lib oder hat sich schonmal jemand mit dem Thema beschäftigt?
Es gibt schon Programme die von ppt nach txt konvertieren. Ich würde meinem Kunden diese Funktion aber gerne selber anbieten können.
Ich arbeite mit PB 3.94
Re: Text aus Powerpoint auslesen
Verfasst: 20.11.2008 14:20
von Kiffi
saimen hat geschrieben:ich brauche eine Funktion mit der ich den Text einer Powerpoint Datei auslesen kann um ihn dann als txt abzuspeichern und weiter bearbeiten zu können.
sollte mit
COMate kein Problem sein.
Hast Du evtl. ein VB-Schnippselchen, das sowas kann? Dann könnte man es
u.U. relativ einfach nach PB übersetzen.
saimen hat geschrieben:Ich arbeite mit PB 3.94
oh, schlechte Karten! Allerdings kannst Du mit der aktuellen Version (4.2)
eine DLL erstellen, in der Du dann die Funktionalitäten Deinem 3.94er -
Code zu Verfügung stellen kannst.
Grüße ... Kiffi
Verfasst: 21.11.2008 08:52
von saimen
kannst du mir vielleicht noch erklären was COMate ist? Sorry, aber ich hab leider nicht so viel zeit in die Tiefe einzusteigen, würde mich freuen wenn du mich da jetzt noch mehr Unterstützen würdest

Also VB benutze ich nicht, hab also auch keinen schnippsel.
Hab Comate jetzt runtergeladen. Aber wie kann ich das ins 4.2 einbauen und funktionen für powerpointdateien nutzen?
Simon
Verfasst: 21.11.2008 09:36
von saimen
hier hab ich was gefunden um in VB eine pdf in txt auszulesen:
http://www.wbrnet.info/db/1351.html
Verfasst: 21.11.2008 10:53
von Kiffi
saimen hat geschrieben:hier hab ich was gefunden um in VB eine pdf in txt auszulesen:
... und hier die (in der Funktionalität leicht abgeänderte) PB-Version:
Code: Alles auswählen
IncludePath #PB_Compiler_Home + "comate"
XIncludeFile "comate.pbi"
EnableExplicit
Procedure.s PPT2TXT(PPTFile.s)
Protected oApp.COMateObject ; Application
Protected oPres.COMateObject ; Presentation
Protected oSlides.COMateEnumObject ; Slides
Protected oShapes.COMateEnumObject ; Shapes
Protected oSld.COMateObject ; Slide Object
Protected oShp.COMateObject ; Shape Object
Protected ReturnString.s
oApp = COMate_CreateObject("PowerPoint.Application")
If oApp
PPTFile = ReplaceString(PPTFile, "'", "$0027")
oPres = oApp\GetObjectProperty("Presentations\Open('" + PPTFile + "', #Optional, #Optional, #False)")
If oPres
oSlides = oPres\CreateEnumeration("Slides")
If oSlides
oSld = oSlides\GetNextObject()
While oSld
oShapes = oSld\CreateEnumeration("Shapes")
If oShapes
oShp = oShapes\GetNextObject()
While oShp
If oShp\GetIntegerProperty("HasTextFrame")
If oShp\GetIntegerProperty("TextFrame\HasText")
ReturnString + oShp\GetStringProperty("TextFrame\TEXTRANGE")
EndIf
EndIf
oShp\Release()
oShp = oShapes\GetNextObject()
Wend
oShapes\Release()
oSld\Release()
oSld = oSlides\GetNextObject()
EndIf
oSlides\Release()
Wend
EndIf
oPres\Invoke("Close")
oPres\Release()
Else ; !oPres
Debug "!oPres"
Debug COMate_GetLastErrorDescription()
EndIf ; oPres
oApp\Invoke("Quit")
oApp\Release()
Else ; !oApp
Debug "!oApp"
Debug COMate_GetLastErrorDescription()
EndIf ; oApp
ProcedureReturn ReturnString
EndProcedure
Debug PPT2TXT("C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\winui\Shell\AppPlatform\SearchFolder\TractatosUrbanitas.ppt")
Grüße ... Kiffi
Verfasst: 21.11.2008 18:24
von saimen
folgende Meldung bekam ich im Debugger:
!oApp
Invalid progID/CLSID. Check your spelling of the programmatic identifier. Also check that the component / ActiveX control has been registered.
Verfasst: 21.11.2008 19:12
von Kiffi
saimen hat geschrieben:folgende Meldung bekam ich im Debugger:
Du hast aber schon PowerPoint installiert, oder?
Grüße ... Kiffi
Verfasst: 21.11.2008 19:29
von saimen
nein. Ok, dann is klar...
Verfasst: 21.11.2008 19:56
von Kiffi
saimen hat geschrieben:nein.
das ist dann insofern schlecht, als das Du den Code nicht an Deine
Bedürfnisse anpassen und testen kannst.
Bei Deinen Kunden wird der Code (eine PP-Installation vorausgesetzt)
laufen.
Ich kenne das PPT-Format nicht sonderlich gut, aber ich nehme an, dass
es genauso gut bzw. schlecht dokumentiert ist, wie die anderen Formate
aus dem Microsoft-Office-Paket (MDB, XLS, DOC, etc.).
PPT ohne COM auszulesen artet dann meist in Bit-Popeleien aus. Auf
http://www.wotsit.org findest Du zumindest die (IMO schlechte) Doku zu
PPT97. Vielleicht kannst Du damit was anfangen.
Wie das mit neueren PPT-Versionen (2000, XP, 2003, 2007 und
nachfolgende) aussieht, kann ich Dir nicht sagen.
Grüße ... Kiffi
Verfasst: 22.11.2008 12:38
von saimen
ok, vielen dank. Ich werd mich damit mal auseinandersetzen...