Je souhaite ouvrir PDF à l'aide de PDF-XChange Viewer via WINE. Comment spécifier le nom de fichier pdf dans la ligne "commande personnalisée" pour pouvoir ouvrir un fichier PDF à l'aide de PDF-XChange Viewer en double-cliquant dessus? J'ai essayé d'utiliser le\"z:% f \" en suivant la suggestion ici pour utiliser le lecteur Foxit. Mais mon PDF-XChange Viewer ne commence que par une fenêtre vide.
wine "c:/Program Files/Tracker Software/PDF Viewer/PDFXCview.exe" \"z:%f\"
J'utilise Ubuntu 10.04 et WINE 1.2.2. PDF-XChange Viewer version 2.5.
Vous avez trouvé des entrées de blog concernant le même problème pour Foxit Reader et pour PDF-XChange Viewer . Aucun d'entre eux n'a fonctionné pour moi. Alors je les ai éditées et j'en ai eu une adaptée à mon cas:
#!/bin/bash
Filename="z:${1//\//\\}"
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename
Sauvegardez ce script bash et ouvrez le pdf en utilisant ce script. Maintenant, double-cliquez sur les fichiers pdf pour les ouvrir à l’aide de PDF-XChange Viewer.
Si le script fonctionne, alors vous devriez accepter cette réponse même si c'était la vôtre.
Ce qui a fonctionné ici pour d’autres applications dans la mesure où une commande personnalisée était proche de ce que vous essayiez, à quelques petites différences.
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" Z:%f
Référencé ici pour photoshop avec add. informations sur la modification du nom d'affichage si vous le souhaitez pour un clic droit - http://ubuntuforums.org/showpost.php?p=9193687&postcount=9
Ceci est basé sur l'excellent script de @ Flint.
Au début, j'ai essayé la variable "Z:"%U
à la fin du fichier de bureau Exec=
pour les programmes Wine. Cela a bien fonctionné jusqu'à ce que j'ouvre un programme sans fichier spécifié. Les programmes Wine se sont plaints du fichier manquant car la ligne Exec=
désignait le lecteur Z: il ne s'agit clairement pas d'un fichier, mais d'un chemin d'accès absolu. File not found: Z:
ou des messages similaires sont apparus dans un programme Wine. Peu ennuyeux.
Le problème avec "Z:"%U
est que ce n'est pas une variable conditionnelle si Z: est utilisé ici. Cependant, Wine requiert absolument Z: car il ne peut pas trouver les chemins de fichiers corrects autrement.
Votre script transforme la chose "Z:"%U
entière en une clause conditionnelle. Le script fait le travail exactement comme je le souhaitais.
Cependant, le script doit également prendre en compte tous les fichiers exe écrits en majuscules. Il ne peut désormais pointer aucun fichier MS Office (docx, pptx ...) vers MS Office 2010 car tous les exécutables du programme sont écrits comme WINWORD.EXE
ou POWERPNT.EXE
. Bien sûr, les exécutables pourraient être renommés en minuscule, mais je préfère une solution plus universelle plutôt que de renommer des exécutables uniques pour chaque programme.
La solution sale et universelle consiste à modifier le code du script comme suit:
#!/bin/bash
allargs=("$@")
fixpath=0
for idx in "${!allargs[@]}"; do
arg="${allargs[$idx]}"
if [[ $fixpath -eq 0 ]]; then
# fix file paths only after the first executable is found in arg
if [[ "$arg" == *.exe ]]; then
fixpath=1
fi
if [[ "$arg" == *.EXE ]]; then
fixpath=1
fi
continue
Elif [[ $fixpath -eq 1 ]]; then
# if arg starts with '/' and it's a path that exists on Host
# precede the path with drive 'Z:'
if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
allargs[$idx]="z:${arg//\//\\}"
fi
fi
done
exec env "${allargs[@]}"
L'opérateur or
n'a pas fonctionné pour une raison quelconque. De toute façon, je suis sûr qu'il existe un moyen plus élégant d'obtenir le même résultat.
Je me rends compte que c’est une vieille question, mais je souhaite partager ma solution, que j’ai figurée après avoir commencé à utiliser PDFXchangeEditor (successeur de PDFXchangeViewer), puis être tombée dans le problème pour lui faire accepter plusieurs fichiers d’entrée de Host os. Tout d’abord, la réponse acceptée et toutes les autres réponses postées supposent que le programme ne gérera qu’un seul fichier. Vous pouvez réellement lancer plusieurs fichiers en même temps et cela les ouvrira bien, avec un petit truc.
L'astuce consiste à utiliser le code %F
dans le champ Exec
du lanceur .desktop de l'application et à faire précéder tous les arguments de fichiers locaux développés dans le champ avec Z:
, à l'aide du script suivant.
Appelez-le wine-env
. Cela va dans /usr/local/bin
et assurez-vous de le donner chmod +x
#!/bin/bash
allargs=("$@")
fixpath=0
for idx in "${!allargs[@]}"; do
arg="${allargs[$idx]}"
if [[ $fixpath -eq 0 ]]; then
# fix file paths only after the first executable is found in arg
if [[ "$arg" == *.exe ]]; then
fixpath=1
fi
continue
Elif [[ $fixpath -eq 1 ]]; then
# if arg starts with '/' and it's a path that exists on Host
# precede the path with drive 'Z:'
if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
allargs[$idx]="Z:$arg"
fi
fi
done
exec env "${allargs[@]}"
Et pour le fichier .desktop de l'application, appelez-le pdfxce.desktop
et mettez-le dans ~/.local/share/applications/
et son contenu devrait ressembler à ceci
[Desktop Entry]
Name=PDF-XChange Editor
Type=Application
Terminal=false
Exec=wine-env WINEDEBUG=-all WINEPREFIX=/home/<user>/.local/share/bottles/pdfxce wine PDFXEdit.exe %F
Icon=/home/<user>/.local/share/icons/bottles/pdfxce-pdfxedit.png
Path=/home/<user>/.local/share/bottles/pdfxce/drive_c/Program Files/Tracker Software/PDF Editor
StartupNotify=true
StartupWMClass=PDFXEdit.exe
Vous devez changer la pièce avec votre propre nom d'utilisateur. Je garde tous mes répertoires de préfixes wine dans un dossier appelé "bouteilles". Vous pouvez avoir votre propre façon d’organiser vos préfixes de vin, alors changez toutes les parties qui contiennent des "bouteilles" en conséquence.
Et dernière étape, attribuez les fichiers PDF à l'application comme d'habitude (clic droit sur pdf -> Properties
-> Open With
tab)
J'ai suivi ce lien pour installer le visualiseur PDF32 bits _ 32 bits dans Ubuntu 64 bits 14.04. Le lien affiche ensuite un script permettant d'ouvrir le visualiseur PDF Xchange avec le nom du fichier comme argument. J'ai fait ce script et l'ai gardé dans /bin
Puis j'ai édité le ~/.local/share/applications/wine-extension-pdf.desktop
à ceci:
[Desktop Entry]
Type=Application
Name=PDF-XChangeViewer
MimeType=application/pdf;
Exec=PDFXCview %f
NoDisplay=true
StartupNotify=true
Mon script s'appelait PDFXCview
Si ce programme est déjà installé avec Wine, je ne pense pas qu'il ait besoin d'un chemin absolu. Je pense seulement
wine pdfxcview filename
ouvrira le fichier.
Ok peut-être que ma réponse est stupide. Qu'est-ce que vous essayez réellement de faire? essayez-vous de corriger l'erreur de lancement du programme?