Forum > Spanish
Error al crear documento de libreoffice writer en linux
(1/1)
esdonis:
Como puedo crear un documento nuevo de libreoffice writer en linux?
Cuando intento con:
libro := CreateOleObject('com.sun.star.ServiceManager');
Me da error ya que no me permite usar la clase ComObj en linux
RayoGlauco:
Hola, esdonis
Según la wiki de Lazarus y FreePascal: http://wiki.freepascal.org/Office_Automation no hay actualmente una manera fácil de usar LibreOffice/OpenOffice en sistemas que no sean Windows. Es una lástima :(
lucamar:
La forma usual de interactuar con Open/LibreOffice es a través del UNO bridge o usando los interfaz inter-aplicaciones del sistema (IBus, DBus, etc.).
Otra posibilidad, específica de Lazarus: hay librerías que te permiten crear el documento y exportarlo en el formato adecuado. No recuerdo el nombre exacto---que seguramente depende de lo que quieras crear---pero busca en el wiki y la(s) encontrarás: fpvectorial? fpspreadsheet? alguna más?
Lamento no ser de gran ayuda pero espero que este poco te sirva de algo ... :-[
ETA: ¡Ajá! Lo encontré: fpvectorial - Text Document Support
--- Quote ---The fpvectorial library can be used to create formatted text files in a variety of file formats. Current file support includes Open Document XML (odt) and Open Office XML (docx). The files can be opened in a variety of products including Microsoft Office, OpenOffice and LibreOffice.
--- End quote ---
MacWomble:
Yo uso plantillas Writer con marcadores de posición. Luego, esta plantilla se desempaqueta y se reemplazan los marcadores de posición en los archivos, luego vuelvo a empaquetar todo y lo guardo con un nombre nuevo. Abro este nuevo documento en LibreOffice.
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- UnZipper := TUnZipper.Create; try UnZipper.FileName := VorlageDatei; UnZipper.OutputPath := TempDir; UnZipper.Examine; UnZipper.UnZipAllFiles; finally UnZipper.Free; end; //Temp-Dokument Platzhalter ersetzen ReplaceInODTFile(TempDir + PathDelim + 'content.xml', Adressblock); ReplaceInODTFile(TempDir + PathDelim + 'styles.xml', Adressblock); //Temp-Dokument nach Ziel-Dokument packen Zipper := TZipper.Create; try Zipper.Filename := ZielDatei; Zipper.Clear; ZEntries := TZipFileEntries.Create(TZipFileEntry); if DirPathExists(TempDir) then try ZipFileList := FindAllFiles(TempDir); for i := 0 to ZipFileList.Count - 1 do ZEntries.AddFileEntry(ZipFileList[i], CreateRelativePath(ZipFileList[i], TempDir)); finally ZipFileList.Free; end; if (ZEntries.Count > 0) then Zipper.ZipFiles(ZEntries); DeleteDirectory(TempDir, False); finally FreeAndNil(ZEntries); Zipper.Free; end; OpenDocument(ZielDatei);
Navigation
[0] Message Index