Konverze souboru na pdf naskriptováním OpenOffice/LibreOffice

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza.Mottl
Člen | 104
+
0
-

Ahoj,

máte někdo zkušenosti s konverzí souborů na pdf naskriptováním OpenOffice/LibreOffice? Používám na to skript unoconv. Na W10/OpenOffice mi to jede bez problémů.

Na Ubuntu s OpenOffice 4 mi to funguje dobře z terminalu:
„/usr/bin/python“ „/opt/lampp/htdocs/project/app/openTBS/unoconv“ -f pdf „/opt/lampp/htdocs/project/app/openTBS/pripad_#2.ods“ 2>&1

Ale když to pustím z presenteru tak to končí chybou „Error: Unable to connect or start own listener. Aborting.“

        if (self::isWindows()) {
            // path to Python
            $pythonPath = 'C:/Program Files (x86)/OpenOffice 4/program/python.exe';
            $command = sprintf('"%s" "%s" -f pdf "%s" 2>&1',
                                $pythonPath,
                                $unoconvPath,
                                $documentPath
                              );
        } else {
		    // path to Python
		    $pythonPath = '/usr/bin/python';
	    	$command = sprintf('"%s" "%s" -f pdf "%s" 2>&1',
							   $pythonPath,
					    	   $unoconvPath,
						       $documentPath
							  );
        }

        exec($command, $output, $return);
var_dump($command);
var_dump($return);
var_dump($output);
exit ('');


Výstup:
string(135) ""/usr/bin/python" "/opt/lampp/htdocs/project/app/openTBS/unoconv" -f pdf "/opt/lampp/htdocs/project/app/openTBS/pripad_#2.ods" 2>&1"
int(251)
array(1) { [0]=> string(57) "Error: Unable to connect or start own listener. Aborting." }
newPOPE
Člen | 648
+
0
-

Nebezi ti to pod inym userom a ten nema nieco nastavene, nejake env premenne…?

GEpic
Člen | 566
+
0
-

Jen takový hint, existuje přímo i PHP knihovna pro konverzi do PDF (a dokonce je pro Nette i komponenta která funguje i na 2.4).

Editoval GEpic (31. 8. 2016 11:13)

GEpic
Člen | 566
+
0
-

Pavel Kravčík napsal(a):

@GEpic: https://s-media-cache-ak0.pinimg.com/…38da0a73.jpg

Ach jo, až teď mi došlo, že to je v Obecné diskuzi… :D

Honza.Mottl
Člen | 104
+
0
-

newPOPE napsal(a):

Nebezi ti to pod inym userom a ten nema nieco nastavene, nejake env premenne…?

S nastavením nebo právy by to souviset mohlo. Ale mám tam jediného uživatele. V linuxu jsem nováček, to je ten problém.

Honza.Mottl
Člen | 104
+
0
-

GEpic napsal(a):

Jen takový hint, existuje přímo i PHP knihovna pro konverzi do PDF (a dokonce je pro Nette i komponenta která funguje i na 2.4).

Komponenta pro konverzi z čeho kam? Z Office do pdf nebo z html do pdf? Já potřebuji z Office.

  1. Potřebuji, aby si zákazník udělal sám šablonu v OpenOffice a pěkně si sám vyladil jak mají vypadat výstupy.

2)Pomocí placeholderů se vyznačí místa kam se mají zmergovat data z databáze. K mergování používám openTBS http://www.tinybutstrong.com/opentbs.php?doc To mi funguje dobře včetně plnění množiny recordů do calcu.

  1. Pak potřebuji vytvořit pdf z vygenerovaného ods souboru. To mi funguje na Win10, ale v Linuxu jsem narazil na svou neznalost Linuxu.
artemevsin
Člen | 61
+
+1
-

apache (příp. nginx) ti běží pod jiným uživatelem (třeba www), který nejspíš nemá práva na spuštění. Koukni se na http://askubuntu.com/a/640231. Není úplně dobré řešení to pouštět jako root, ale jestli to bude fungovat tak zkusit to, co je v postu pod tím.

Nejsem zrovna nijak dobrý v linuxech, tak mě kdyžtak opravte :)

Honza.Mottl
Člen | 104
+
0
-

Díky. Vyzkouším.

Honza.Mottl
Člen | 104
+
0
-

artemevsin napsal(a):

apache (příp. nginx) ti běží pod jiným uživatelem (třeba www), který nejspíš nemá práva na spuštění. Koukni se na http://askubuntu.com/a/640231. Není úplně dobré řešení to pouštět jako root, ale jestli to bude fungovat tak zkusit to, co je v postu pod tím.

Nejsem zrovna nijak dobrý v linuxech, tak mě kdyžtak opravte :)

Špica, konečně jsem se k tomu dnes naplno dostal a funguje :)
Trvalo mi to déle, protože jsem blbec zapomnél přidat do příkazu kouzelné slůvko sudo.
Na Ubuntu mi to na stejném PC jede o hodné rychleji než na W10.
Moc díky za tip.

Honza.Mottl
Člen | 104
+
0
-

emptywall napsal(a):

Tohle by ti mělo pomoct.

https://github.com/…eers/unoconv#…
https://github.com/…v/issues/336#…

Díky za tip. Tyto rady jsem už zkoušel. Práva v home mám nastavená, první řádek skriptu jsem zkoušel měnit a nezabralo.
Pomohl tip od artemevsina – spustit pod sudo a potlačit zadání hesla. Hlavní problém je má malá znalost linuxu, strašně blbě pak odhaluji své chyby. Zase jsem se néco naučil :)

Honza.Mottl
Člen | 104
+
0
-

Pro informaci
Zkoušel jsem defaultně na Ubuntu nainstalovaný LibreOffice, ale nakonec jsem použil OpenOffice. na rozdíl od LibreOffice zvládl zalomení mergovaného textu, který přesáhl velikost buňky.

Používám to podobně jak je to popsáno zde:
https://geekalicious.pt/…entbs-in-php
https://geekalicious.pt/…-libreoffice