Pdf

如何使用 mc 的 wine 應用程序打開文件?

  • June 25, 2019

我想使用 PDF-XChange Editor 從mc. 我試過設置

Open=wine ~/PDFXEdit6_Portable/PDFXEdit.exe %f

mc.ext,但它只打開應用程序,而不是文件。


$$ edit $$ exec在我看來,該欄位的語法與in files的語法接近.desktop,因此我嘗試調整有關How to pass file as argument in .desktop file for wine application 中提出的一些解決方案,但尚未成功。

對我來說,解決方案是**z:**在命令行末尾附近添加:

打開=酒 ~/PDFXEdit6_Portable/PDFXEdit.exe **z:%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

簡短的回答。

您正在使用%f,但您要傳遞的文件名儲存在${MC_EXT_FILENAME}變數中。

長答案。

如何使用 Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable 打開/查看 PDF 文件

注意:我假設 Windows 攜帶式應用程序儲存在“~/MyApps/*”中

  • 打開 Midnight Commanderextension 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
  • 保存更改並退出: :``w``q``Enter
  • 創建~/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 樣式的 ( \):${MC_EXT_FILENAME//\//\\}稍後將其作為參數傳遞給 PDF-XChange Viewer
  • > /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 Editor v6.0.321.0

根據您的評論更新

文件路徑中似乎仍然存在一些錯誤……讓我們嘗試更正它。

    • 使用 PDFXChange 編輯器打開有問題的 PDF 文件(如您通常所做的那樣,而不是使用 Midnight Commander)
  • 文件 -> 複製完整文件名
  • 將其粘貼到任何文本文件中(僅供以後參考)
  • 關閉 PDFXChange 編輯器
  • 使用 Midnight Commander + PDFXChange Editor 打開同一個文件(顯示您的錯誤消息)
  • 比較文件路徑是否相同(您剛剛粘貼以供參考的路徑和錯誤消息中的路徑)
  • 如果路徑不相同 - 在 .sh 文件中相應地更正路徑或將它們粘貼到此處以供我幫助(只需將路徑中的使用者名替換<username>為安全)
  1. 此外,這不太可能,但如果路徑相同,則在您嘗試打開的文件上設置的權限可能存在問題。因此驗證您的文件權限至少是:
sudo chmod 644 your-file-name-here.pdf

更新 2

可以訪問所有驅動器中的所有文件,包括那些不位於~/*(主使用者目錄)中的文件,甚至僅通過使用Z:\(根本不使用H:\和其他驅動器號)儲存在其他 HDD 上的文件。

在 Wine 中檢查您的驅動器映射:

  • 在終端執行
$ winecfg
  • 打開Drives標籤
  • 預設情況下必須存在以下記錄
Letter | Drive Mapping
C:     | ../drive_c
Z:     | /

據我所知,任何路徑都以/(對於在 Linux 中訪問的任何 HDD 上的任何文件)開頭,因此可以使用Z:\,因為上述映射。

例如,上面的配置允許我訪問 PDF 文件

  • from /home/<username>/*.pdf( ~/*.pdf),如果它位於主使用者目錄中
  • 來自/media/<drive-label>/*.pdfOR /mnt/<drive-label>/*.pdf,如果它位於我已安裝的某個外部驅動器或 HDD 上;(例如,在 Windows 中,可以使用 訪問同一驅動器H:\

但是,驅動器映射將是另一個問題,具體取決於您的設置。:-)

順便說一句,還有一件事要檢查。您的使用者主目錄是否~/*映射到wine’sMy Documents文件夾?

  • 在終端:$ wine explorer
  • 點兩下My Documents文件夾
  • 你應該看到你的 Linux~/*主目錄的內容

引用自:https://unix.stackexchange.com/questions/331763