为了工作,我需要将大量 Microsoft Word 文档转换为 PDF。对我来说,尽可能准确地呈现格式非常重要。我成功地在 Xubuntu 14.04 上安装了 Office 2010,但有一个问题,我无法打开文档。我只能打开一个新的空白文档。所以,我放弃了。然后,我继续寻找最准确的 Word 到 PDF 渲染工具。我研究了 Zamzar 等在线工具以及其他选项。(不幸的是,LibreOffice 对格式的更改太多了。)
经过几次测试,我能找到的最佳渲染是这样的:
https://view.officeapps.live.com/op/view.aspx?src=
然后附加 Word 文档的 URL:
https://dl.dropboxusercontent.com/u/4992179/My-Document.docx
完成品:
https://view.officeapps.live.com/op/view.aspx?src=https://dl.dropboxusercontent.com/u/4992179/My-Document.docx
从这里我将打印为 PDF。
从我的链接中您可以看到,我将使用 Dropbox“公共”文件夹来获取文档的 URL。要获取公共文件夹中的 URL,请右键单击文件并选择“复制公共链接”。
我希望尽可能简化这个过程,因为我必须做很多事情。我正在努力寻找最好的方法。我想创建一个运行以下内容的脚本:chromium-browser https://view.officeapps.live.com/op/view.aspx?src=Variable-Representing-Current-Content-Of-Clipboard
当我点击脚本时,剪贴板的当前内容将是 Word 文档文件的 Dropbox 链接。
(我无法为https://view.officeapps.live.com/op/view.aspx?src=URL 部分,然后只需转到地址栏并粘贴 Dropbox 链接,因为 officeapps URL 会自动转发到另一个。)
如果有人有其他想法,我当然会接受并表示感谢。
提前致谢。
答案1
Nautilus 脚本解决方案
获取剪贴板内容并对其进行操作并不太难,但我可以做得更好。以下 Nautilus 脚本将通过 Microsoft Office Online 打开任何受支持的文档。它首先将文档复制到您的公共 Dropbox 文件夹(如果之前不存在),然后将公共 URL 传递给 Web 服务:
#!/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
配置
有两个重要的设置决定脚本的运行方式:
DbPath
设置 Dropbox 文件夹的路径。这是~/Dropbox
默认设置。如果您移动了 DB 文件夹,请务必更改此设置。CopyToDb
Public
控制如果文件位于文件系统的其他位置是否将文件复制到该文件夹。此选项默认开启 (
yes
)。如果您禁用它 (no
),脚本将仅处理公共 Dropbox 文件夹中的文件。
安装说明
由于这是一个 Nautilus 脚本,您可以使用以下通用说明将其安装到您的系统上:
希望这就是您所寻找的!