Parece que você está procurando uma melhor compatibilidade com o Microsoft Office. O Google Docs é usado no navegador. Então, isso é perfeitamente compatível entre o Windows e o Ubuntu. O Libreoffice tem versões para Windows e Ubuntu, mais uma vez compatibilidade perfeita.
O Office Online preserva perfeitamente o Microsoft Office .docx e outros tipos de documentos. Portanto, eu postei esta questão para automatizar os seguintes passos.
Eu recomendo seguir os passos em minha publicação no fórum para manter a formatação do MS Office consistente no Ubuntu.
Às vezes, recebo um arquivo .docx de um colega que precisa ser editado. Eu abro no LibreOffice para fazer minhas edições do conteúdo (sem alterações de formatação) e salvá-lo. No LibreOffice, a formatação provavelmente será diferente do que se fosse aberta no MS Office. Em seguida, abri-lo usando o script do Office Online (postado abaixo). No Office Online, a formatação será preservada, mas com as edições recentes que acabei de fazer. Observe que, se você abrir o mesmo documento mais de uma vez no Office Online, na segunda vez, será necessário alterar o nome do arquivo por pelo menos um caractere. O cache do MS Office Online impede que ele detecte que é realmente um documento atualizado.
O script abaixo pode ser integrado ao menu de contexto de qualquer gerenciador de arquivos. Se você quiser usar o terminal, você pode fazer o seguinte.
- Crie um diretório
bin
se você ainda não estiver em seu diretório inicial e mova o script para lá. -
cd ~/bin
- Torne o script executável
chmod +x MS_Office_Online-Script
- Abra um novo terminal.
MS_Office_Online-Script /path/to/document.docx
Em geral, eu tentaria fazer a transição para usar o LibreOffice em vez do MS Office. Na verdade, espero que esse script permita eliminar completamente o Windows. ;)
#!/bin/bash
# Name: Open in Microsoft Office Online
# Author: (c) 2015 Glutanimate <https://github.com/Glutanimate/>
# Dependencies: dropbox, a web browser (e.g. firefox, chromium...)
# Installation: https://askubuntu.com/q/574252/81372
#
# License: GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# Usage: open_in_microsoft_office_online <file>
# Settings
DbPath="$HOME/Dropbox"
CopyToDb="yes" # whether to copy file to public dropbox folder
# in case it's not there already (no/yes)
# Variables
GuiIcon="dropbox"
GuiTitle="Open in Microsoft Office Online"
MsOfficeUrl="https://view.officeapps.live.com/op/view.aspx?src="
File="$1"
Filename="${File##*/}"
# Functions
gui_notify(){
## generic notification function
notify-send -i "$GuiIcon" "$GuiTitle" "$1"
echo "$1"
}
# Checks
## check if file selected
if [[ ! -f "$File" ]]; then
gui_notify "Error: No file selected."
exit 1
fi
## check if Dropbox running
if ! pgrep dropbox > /dev/null 2>&1; then
gui_notify "Error: Dropbox isn't running."
exit 1
fi
## check if Dropbox folder set correctly
if [[ ! -d "$DbPath" ]]; then
gui_notify "Error: Can't find dropbox folder. Please set DbPath in script."
exit 1
fi
# Main
## get public URL
DbPubUrl="$(dropbox puburl "$File")"
## optional: copy file to public dropbox folder if it isn't there
if [[ "$CopyToDb" = "yes" && "$DbPubUrl" = "Couldn't get public url: Unknown Error" ]]; then
## create public Dropbox folder if it doesn't exist
[[ ! -d "$DbPath/Public" ]] && mkdir "$DbPath/Public"
## copy file to public folder, don't overwrite any existing file
cp -n "$File" "$DbPath/Public/"
## wait for sync to complete
SyncCounter="0"
while dropbox filestatus "$DbPath/Public/$Filename" | grep syncing; do
[[ "SyncCounter" = "0" ]] && gui_notify "Syncing file..."
sleep 5
## wait a maximum of 10 minutes for sync to complete
if [[ "$SyncCounter" -gt "120" ]]; then
gui_notify "Error: Sync timeout. Exiting."
exit 1
break
fi
((SyncCounter++))
done
## get public URL
DbPubUrl="$(dropbox puburl "$DbPath/Public/$Filename")"
fi
## check if public URL exists and open in Microsoft Office Online
if [[ "$DbPubUrl" != "Couldn't get public url: Unknown Error" ]]; then
xdg-open "${MsOfficeUrl}${DbPubUrl}" > /dev/null 2>&1 &
gui_notify "Opening document in Microsoft Office Online..."
else
gui_notify "Error: Can't generate public Dropbox link from File."
fi
Abaixo está o script que eu uso atualmente. Na verdade, é mais rápido que o script acima (consulte o comentário "Aguardar a sincronização completa", mas eu tirei algumas instruções if
e as simplifiquei. O Dropbox não tem mais a pasta Pública para contas gratuitas e a descontinua para as contas pagas em 1º de setembro de 2017. Portanto, você precisará usar um serviço de website diferente. Você ajustaria o URL no script com seu próprio URL da web.
#!/bin/bash
# Name: Open in Microsoft Office Online
# Author: jbrock; Much thanks to Glutanimate <https://github.com/Glutanimate/>
# Dependencies: dropbox, a web browser (e.g. firefox, chromium...)
# Installation: http://askubuntu.com/q/574252/81372
# License: GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# Usage: open_in_microsoft_office_online <file>
# Variables
pub_path="$HOME/Dropbox/Public"
file="${1##*/}"
# Copy to Dropbox/Public directory.
cp -n "$1" "$pub_path"
# Wait for sync to complete.
while dropbox filestatus "$pub_path/$file" | grep -q syncing; do true; done
# Open in browser. (Get public URL is broken: 6 Sept. 2016)
exo-open "https://view.officeapps.live.com/op/view.aspx?src=https://dl.dropboxusercontent.com/u/4992179/$file" > /dev/null 2>&1 &
# Remove file from Public folder.
# This last part is optional. You probably want to remove your document from a public directory.
# I use this function with Xfce. I am not sure about other desktop environments.
#sleep 15
#trash () {
#dir="$HOME/.local/share/Trash/files/"
#if ! [ -d "$dir" ]; then
# mkdir "$dir"
#fi
#mv "$@" "$dir"
#}
#trash "$pub_path/$file"