Существует программа командной строки, которая может конвертировать между всеми поддерживаемыми форматами open / libre office под названием unoconv, поэтому, если вам нужно пакетное преобразование со сценарием, это пригодится.
sudo apt-get install unoconv
Домашняя страница Unoconv EDIT:
Существует ошибка вина об этом - это скорее улучшение, чем ошибка. Дело в том, что ShellExecute вызывает xdg-open, а если не найден, найдите значения gnome и kde. Вы должны иметь возможность применять патч и, наконец, иметь магию :-).
Чтобы быть более полным, вот как ошибка вина об этом .
] EDIT:
Я обновляю винный реестр скриптом ниже, чтобы добавить список распространенных типов файлов. Вы можете расширить список, чтобы добавить больше типов. Он использует /usr/bin/gnome-open в файле gstart.exe, поэтому он не будет работать для настольных компьютеров без gnome, как есть.
Поместите это в conf_wine.sh:
#!/bin/bash
SRC=~
WINE=~/.wine
REG=$WINE/system.reg
GSTART=gstart.exe
GSTART_TARGET=$WINE/drive_c
EXE_TARGET=$WINE/drive_c/windows
FNKEY=/tmp/"key"$(date +%F_%H-%M-%S)".reg"
[ -e $FNKEY ] && { echo "temporary key file exists..try again"; exit 1; }
echo "copying gstart.exe"
cp $SRC/$GSTART $GSTART_TARGET
chmod +x $GSTART_TARGET
echo "backing up the registry"
cp $REG $REG.$(date +%F_%H-%M-%S).old
echo "setting new wine registry keys"
for i in http doc docx ppt pptx xls xlsx odt ods xml txt pdf odt svg zip ; do {
echo "setting $i"
key='[HKEY_CLASSES_ROOT\.'$i']
@="'$i'file"
"Content Type"="application/'$i'"
[HKEY_CLASSES_ROOT\'$i'file\Shell\Open\command]
@="C:\\gstart.exe \"%1\""'
echo "$key" > $FNKEY
regedit $FNKEY
}
done
echo "done"
[d14 ] [F8] является скриптом bash ... и является мостом для обоих миров: #!/bin/bash
OPEN_HANDLER=/usr/bin/gnome-open
# logging, optional
LOG=$HOME/.wine/gstart.exe-log.$(id -u -n)
echo "[ $(date) ] $# argument(s) received: '$@'" > $LOG
# convert the path
RESULT=$(winepath "$@" 2> /dev/null)
echo "$OPEN_HANDLER $RESULT" >> $LOG
TMP=$TMPDIR
TEMP=$TMPDIR
# finally open the file
$OPEN_HANDLER "$RESULT"
не будет работать для настольных компьютеров без gnome, как [!d15 ] скопируйте gstart.exe в текущий рабочий каталог перед запуском conf_wine.sh, когда он скопирует его в папку .wine. расположение папок может быть изменено, например. gstart.exe не нужно сидеть в c:\. не делает магии: новые типы должны добавляться вручную. Вы можете улучшить его, чтобы читать файлы Linux (mimeapps.list, ..) и обновлять реестр вин, если это необходимо. проверено на работу, по крайней мере, в вине1.4.
Часто задаваемые вопросы по вину: как мне связать собственную программу с типом файла в Wine?
Я собрал Info повсюду и нашел следующее:
Я создал файл с именем ~ / .wine / drive_c / gstart.exe
с следующее:
#!/bin/bash
OPEN_HANDLER=/usr/bin/xdg-open
# logging, optional
LOG=$HOME/.wine/gstart.exe-log.$(id -u -n)
echo "[ $(date) ] $# argument(s) received: '$@'" > $LOG
# convert the path
RESULT=$(winepath "$@" 2> /dev/null)
echo "$OPEN_HANDLER $RESULT" >> $LOG
TMP=$TMPDIR
TEMP=$TMPDIR
# finally open the file
$OPEN_HANDLER "$RESULT"
Затем: Создал файл с именем linuxnative.reg в моей ~ / bin
со следующим:
REGEDIT4
[HKEY_CLASSES_ROOT\.doc]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.rtf]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.odt]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.pdf]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.tif]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.doc]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.docx]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.jpg]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\linuxnative]
[HKEY_CLASSES_ROOT\linuxnative\shell]
[HKEY_CLASSES_ROOT\linuxnative\shell\open]
[HKEY_CLASSES_ROOT\linuxnative\shell\open\command]
@="c:\\gstart.exe \"%1\""
, тогда вы do
regedit linuxnative.reg
Надеюсь, это поможет.