[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Когда запустить Xvfb



В сообщении от Среда 10 октября 2007 23:33 Victor Wagner написал(a):
> > есть соответствующий тиклевский модуль, вот только каждый новый документ
> > открывается в новом окне, что не годится для массовой обработки
> > документов.
>
> Алексей Новодворский (который из Alt Linux) рассказывал, что очень даже
> годится. Вероятно, если не забывать документы закрывать по завершению
> обработки. Опять же в headless режиме расход памяти должен быть заметно
> меньше - окон-то нет.

Этот режим не работал, опенофис требовал Х-сервер невзирая на ключ -headless
Однако сейчас проверил с openoffice 2.3 и, кажется, наконец-то работает:

unset DISPLAY
soffice -headless “-accept=socket,host=localhost,port=2003;urp;”

Не исключено, что теперь и окна _возможно_ закрыть по завершению обработки 
документа, буду смотреть. Раньше они не закрывались до завершения процесса 
опенофиса. 

Вот нашел описание, как из консоли вызвать макрос
http://www.openoffice.cz/node/1756

$ cat ooo2pdf.sh

#!/bin/bash
unset DISPLAY
if [ "$1" = "" ]; then exit; fi
fullpath=`cd \`dirname "$1"\` ; echo "\`pwd\`/\`basename "$1"\`"`
soffice -invisible -headless -norestore "macro:///Standard.Module1.ConvertToPDF($fullpath)"

Дисплей не используем, в отличии от того, что описано в указанной статье. 
Модифицированный таким образом скрипт с опенофис 2.3 работает. Посмотрим, как 
работает на примере одностраничного документа 1.odt:

$ ls -l|grep odt
-rw-r--r-- 1 veter veter 41733 2007-10-08 15:28 1.odt

$ date;./ooo2pdf.sh ./1.odt ;date
Чтв Окт 11 00:10:31 MSD 2007
Чтв Окт 11 00:10:42 MSD 2007

$ ls -l|grep pdf
-rw-r--r-- 1 veter veter 61601 2007-10-11 00:12 1.pdf

в то же время

$ date;abiword 1.odt -t pdf;date
Чтв Окт 11 00:12:48 MSD 2007
Чтв Окт 11 00:12:50 MSD 2007

$ ls -l|grep pdf
-rw-r--r-- 1 veter veter 227198 2007-10-11 00:12 1.pdf

Полученные pdf-файлы визуально одинаковы (колонтитулов нет, есть логотип, 
таблички, списки и форматированный текст).

Итак, на конвертацию 1-й страницы опенофис требует 11-ть секунд, против 2-х 
для абиворд, зато создает документ pdf вчетверо меньшего объема. Обладатели 
мощных компов могут радоваться, мне же остается только абиворд, поскольку 
11-ть секунд время неприемлемо большое. Хотя результирующий документ 
опенофиса мне понравился своим скромным размером.

То же самое можно выполнять через сокет и наверняка существенно быстрее, но в 
этом случае придется беспокоиться о том, чтобы с запущенным экземпляром 
опенофиса не случилось худшее - безвременная кончина. Опробованный нами 
способ в этом отношении надежнее.

Для чистоты эксперимента приведу параметры компьютера, на котором выполнялись 
тесты.

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Celeron(R) CPU 2.40GHz
stepping        : 9
cpu MHz         : 2422.805
cache size      : 128 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up cid xtpr
bogomips        : 4850.73
clflush size    : 64


$ cat /proc/meminfo
MemTotal:       500392 kB
MemFree:         14756 kB
Buffers:          3160 kB
Cached:         188612 kB
SwapCached:     124172 kB
Active:         365116 kB
Inactive:        38432 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       500392 kB
LowFree:         14756 kB
SwapTotal:     1485972 kB
SwapFree:      1199280 kB
Dirty:             948 kB
Writeback:           0 kB
AnonPages:      206600 kB
Mapped:         105280 kB
Slab:            21448 kB
SReclaimable:     6280 kB
SUnreclaim:      15168 kB
PageTables:       3792 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   1736168 kB
Committed_AS:   863824 kB
VmallocTotal:   524280 kB
VmallocUsed:      7104 kB
VmallocChunk:   516844 kB



Reply to: