我想使用 PDF-XChange Editor 从 .pdf 文件中打开 pdf 文件mc
。我尝试设置
Open=wine ~/PDFXEdit6_Portable/PDFXEdit.exe %f
中 mc.ext
,但它仅打开应用程序,而不打开文件。
[编辑]
在我看来,这个字段的语法与文件exec
中的语法很接近.desktop
,所以我尝试调整上提出的一些解决方案如何将文件作为参数传递到 wine 应用程序的 .desktop 文件中,但还没有成功。
答案1
对我来说,解决方案是添加z:
在命令行末尾附近:
打开=wine ~/PDFXEdit6_Portable/PDFXEdit.exe:%f ↑↑
我在快捷方式中使用 PDF X-Change Editor 进行了测试,它也有效:
env WINEPREFIX="/home/jim/.wine" wine-stable C:\\windows\\command\\start.exe /Unix /home/jim/.wine/dosdevices/c:/users/jim/Start\ Menu/Programs/Tracker\ Software/PDF-XChange\ Editor.lnk z:%f
答案2
简短的回答。
您正在使用%f
,但您要传递的文件名存储在${MC_EXT_FILENAME}
变量中。
长答案。
如何使用 Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable 打开/查看 PDF 文件
注意:我假设 Windows 便携式应用程序存储在“~/MyApps/*”中
- 打开 Midnight Commander
extension file
进行编辑:F9 -> 命令 -> 编辑扩展文件 - 导航到写入 PDF 配置的文件部分:键入/
pdf
Enter 注释掉以下几行(仅用于备份):
# PDF #type/^PDF # Open=/usr/lib/mc/ext.d/doc.sh open pdf # View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
添加/替换为以下行:
# PDF type/^PDF Open=~/MyApps/start-pdf-mc.sh View=%view{ascii} ~/MyApps/start-pdf-mc.sh
保存更改并退出: :wqEnter
创建
~/MyApps/start-pdf-mc.sh
包含以下内容的文件:#!/bin/bash Filename="z:"${MC_EXT_FILENAME//\//\\} App=`eval wine "~/MyApps/PDF-XChange_Viewer/PDFXCview.exe" "'$Filename'" > /dev/null 2>&1 &` $App
注意:您可能想在中创建它/usr/lib/mc/ext.d/*.sh
(而不是~/MyApps/
像我那样)。
- 确保
start-pdf-mc.sh
文件可执行(使用chmod
)。
start-pdf-mc.sh 文件的说明
我们尝试打开的文件名存储在
${MC_EXT_FILENAME}
变量中使用wine时,使用驱动器盘符
z:
使用以下命令将 Linux 样式文件路径 (
/
) 转换为 Windows 样式 ( ):稍后将其作为参数传递给 PDF-XChange Viewer\
${MC_EXT_FILENAME//\//\\}
> /dev/null 2>&1
并&
需要丢弃程序输出并将其作为后台进程运行,否则(如果省略此操作),您将无法使用 Midnight Commander,直到关闭 PDF-XChange Viewer,这显然是不可取的。
使用以下软件测试
Linux Debian 32 位
GNU 午夜指挥官 4.8.13
葡萄酒-1.6.2
PDF-XChange 查看器 v2.5.316.1
和
Linux Debian 32 位
GNU 午夜指挥官 4.8.13
葡萄酒-1.6.2
PDF-XChange 编辑器 v6.0.321.0
根据您的评论更新
看来文件路径中仍然存在一些错误...让我们尝试更正它。
使用 PDFXChange Editor 打开有问题的 PDF 文件(像平常一样,而不是使用 Midnight Commander)
文件 -> 复制完整文件名
将其粘贴到任何文本文件中(仅供以后参考)
关闭 PDFXChange 编辑器
使用 Midnight Commander + PDFXChange Editor 打开同一文件(显示错误消息)
比较文件路径是否相同(您刚刚粘贴以供参考的路径和错误消息中的路径)
如果路径不相同 - 在 .sh 文件中相应地更正路径或将它们粘贴到此处以供我帮助(只需将路径中的用户名替换为 ,以
<username>
确保安全)
此外,这种情况不太可能发生,但如果路径相同,则您尝试打开的文件上设置的权限可能存在问题。因此验证您的文件权限至少是:
sudo chmod 644 your-file-name-here.pdf
更新2
可以访问所有驱动器中的所有文件,包括那些不在~/*
(主用户目录)中的文件,甚至仅通过使用(根本Z:\
不使用其他驱动器号)存储在其他硬盘上的文件。H:\
检查 Wine 中的驱动器映射:
在终端中运行
$ winecfg
打开
Drives
选项卡默认情况下必须有以下记录
Letter | Drive Mapping C: | ../drive_c Z: | /
据我所知,任何路径以(对于在 Linux 中访问的任何 HDD 上的任何文件)开头,因此由于上述映射,/
可以使用 , 进行访问。Z:\
例如,上面的配置允许我访问 PDF 文件
- 来自
/home/<username>/*.pdf
(~/*.pdf
),如果它位于主用户目录中 - 来自
/media/<drive-label>/*.pdf
OR/mnt/<drive-label>/*.pdf
,如果它位于我已安装的某个外部驱动器或 HDD 上; (H:\
例如,在 Windows 中,可以使用 访问同一驱动器)
然而,驱动器映射将是另一个问题,具体取决于您的设置。 :-)
顺便提一句,还有一件事要检查。您的用户主目录是否~/*
映射到wine
的My Documents
文件夹?
- 在终端中:
$ wine explorer
- 双击
My Documents
文件夹 ~/*
你应该看到 Linux主目录的内容