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

Go to full version