Recent

Author Topic: Error al crear documento de libreoffice writer en linux  (Read 4592 times)

esdonis

  • Jr. Member
  • **
  • Posts: 61
Error al crear documento de libreoffice writer en linux
« on: September 18, 2018, 04:56:51 pm »
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

« Last Edit: September 18, 2018, 04:58:48 pm by esdonis »

RayoGlauco

  • Full Member
  • ***
  • Posts: 176
  • Beers: 1567
Re: Error al crear documento de libreoffice writer en linux
« Reply #1 on: September 18, 2018, 06:21:53 pm »
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  :(
To err is human, but to really mess things up, you need a computer.

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: Error al crear documento de libreoffice writer en linux
« Reply #2 on: September 18, 2018, 08:41:05 pm »
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.
« Last Edit: September 18, 2018, 08:50:55 pm by lucamar »
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

MacWomble

  • Jr. Member
  • **
  • Posts: 79
Re: Error al crear documento de libreoffice writer en linux
« Reply #3 on: September 18, 2018, 09:19:07 pm »
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  [Select][+][-]
  1.         UnZipper := TUnZipper.Create;
  2.         try
  3.           UnZipper.FileName := VorlageDatei;
  4.           UnZipper.OutputPath := TempDir;
  5.           UnZipper.Examine;
  6.           UnZipper.UnZipAllFiles;
  7.         finally
  8.           UnZipper.Free;
  9.         end;
  10.  
  11.         //Temp-Dokument Platzhalter ersetzen
  12.  
  13.         ReplaceInODTFile(TempDir + PathDelim + 'content.xml', Adressblock);
  14.         ReplaceInODTFile(TempDir + PathDelim + 'styles.xml', Adressblock);
  15.  
  16.         //Temp-Dokument nach Ziel-Dokument packen
  17.  
  18.         Zipper := TZipper.Create;
  19.         try
  20.           Zipper.Filename := ZielDatei;
  21.           Zipper.Clear;
  22.           ZEntries := TZipFileEntries.Create(TZipFileEntry);
  23.           if DirPathExists(TempDir) then
  24.             try
  25.               ZipFileList := FindAllFiles(TempDir);
  26.               for i := 0 to ZipFileList.Count - 1 do
  27.                 ZEntries.AddFileEntry(ZipFileList[i],
  28.                   CreateRelativePath(ZipFileList[i], TempDir));
  29.             finally
  30.               ZipFileList.Free;
  31.             end;
  32.           if (ZEntries.Count > 0) then
  33.             Zipper.ZipFiles(ZEntries);
  34.           DeleteDirectory(TempDir, False);
  35.         finally
  36.           FreeAndNil(ZEntries);
  37.           Zipper.Free;
  38.         end;
  39.         OpenDocument(ZielDatei);      
  40.  
Mint 19.3 Cinnamon, FPC/ Lazarus Trunk 64Bit

 

TinyPortal © 2005-2018