Abra o arquivo usando o comando personalizado: como especificar o arquivo na linha cmd?

3

Eu quero abrir o PDF usando o PDF-XChange Viewer por meio do WINE. Como devo especificar o nome do arquivo pdf na linha "comando personalizado" para que eu possa abrir um arquivo PDF usando o PDF-XChange Viewer clicando duas vezes nele? Eu tentei usar o \ "z:% f \" seguindo a sugestão aqui para usar o leitor Foxit. Mas o meu PDF-XChange Viewer só começa com uma janela vazia.

wine "c:/Program Files/Tracker Software/PDF Viewer/PDFXCview.exe" \"z:%f\"

Eu uso o Ubuntu 10.04 e o WINE 1.2.2. PDF-XChange Viewer versão 2.5.

    
por HongboZhu 18.04.2012 / 12:12

6 respostas

3

Encontrado entradas de blog sobre o mesmo problema para o leitor da Foxit e para o PDF-XChange Viewer . Nenhum deles funcionou para mim. Então eu os editei e consegui um sob medida para o meu caso:

#!/bin/bash  
Filename="z:${1//\//\}"
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename

Salve este script bash e abra o pdf usando este script. Agora, clique duas vezes em arquivos PDF para abri-los usando o PDF-XChange Viewer.

    
por HongboZhu 18.04.2012 / 15:13
2

Se o script funcionar, você deve aceitar essa resposta, mesmo que ela seja sua.

O que funcionou aqui para outros aplicativos, na medida em que um comando personalizado estava próximo do que você estava tentando, algumas pequenas diferenças.

wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" Z:%f

Referenciado aqui para o photoshop com add. informações sobre como alterar o nome de exibição, se desejar, para usar o botão direito do mouse - link

    
por doug 18.04.2012 / 17:17
0

Se esse programa já instalado usando vinho, então eu não acho que ele precisa de caminho absoluto. Acho que só

 wine pdfxcview filename

irá abrir o arquivo.

Tudo bem, minha resposta é estúpida. O que você está realmente tentando fazer? você está tentando consertar o erro de inicialização do programa?

    
por Curious Apprentice 18.04.2012 / 13:45
0

Eu percebo que essa é uma pergunta antiga, mas quero compartilhar minha solução que imaginei depois de ter começado a usar o PDFXchangeEditor (sucessor do PDFXchangeViewer) e resolvi aceitar vários arquivos de entrada do sistema operacional host. Primeiro de tudo, a resposta aceita e todas as outras respostas que foram postadas assumem que o programa só irá lidar com um único arquivo. Você pode realmente lançar vários arquivos args de uma só vez e irá abri-los todos bem, com um pequeno truque.

O truque é usar a expansão de código %F no campo Exec no iniciador de .desktop do aplicativo e preceder todos os argumentos de arquivo local expandidos no campo com Z: , o que pode ser feito com o seguinte script

Chame wine-env . Isso vai em /usr/local/bin e não se esqueça de dar 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[@]}"

E para o arquivo .desktop do aplicativo, chame-o de pdfxce.desktop e coloque-o em ~/.local/share/applications/ , e seu conteúdo deverá ficar assim

[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

Você precisa alterar a peça com seu próprio nome de usuário. Eu mantenho todos os meus diretórios wineprefixes em uma pasta chamada "garrafas". Você pode ter sua própria maneira de organizar seus ajustes de vinhos, então altere todas as partes que contenham "garrafas" de acordo

Por último, atribua arquivos PDF ao aplicativo de acordo com o normal (clique com o botão direito na guia pdf - > Properties - > Open With )

Referência: Especificação de entrada de área de trabalho do Freedesktop

    
por Flint 05.09.2014 / 10:49
0

Eu segui este link para instalar o visualizador PDF XChange de 32 bits no Ubuntu 64 Bit 14.04 Em seguida, o link mostra um script para abrir o visualizador do PDF Xchange com o nome do arquivo como argumento. Eu fiz esse script e mantive isso em /bin

Então eu editei o ~/.local/share/applications/wine-extension-pdf.desktop para isso:

[Desktop Entry]
Type=Application
Name=PDF-XChangeViewer
MimeType=application/pdf;
Exec=PDFXCview %f
NoDisplay=true
StartupNotify=true

Meu script foi nomeado PDFXCview

    
por soham 13.02.2015 / 02:07
0

Isto é baseado no excelente roteiro do @ Flint.

Primeiro, tentei a variável "Z:"%U no final do arquivo Exec= do arquivo da área de trabalho para programas Wine. Funcionou bem até que eu abri um programa sem um arquivo especificado. Programas de vinhos reclamaram do arquivo faltando porque a linha Exec= apontava para a unidade Z: que claramente não é um arquivo, mas um caminho de arquivo absoluto. File not found: Z: ou mensagens semelhantes apareceram em um programa do Wine. Pouco irritante.

O problema com "Z:"%U é que não é uma variável condicional se Z: for usado lá. No entanto, Wine absolutamente requer Z: porque não é possível encontrar caminhos de arquivo corretos.

Seu script torna toda a cláusula "Z:"%U uma cláusula condicional. O roteiro faz o trabalho exatamente como eu queria.

No entanto, o script deve considerar todos os arquivos exe escritos em maiúsculas também. Até agora, não é possível apontar nenhum arquivo do MS Office (docx, pptx ...) para o MS Office 2010 porque todos os executáveis do programa são gravados como WINWORD.EXE ou POWERPNT.EXE . É claro que os executáveis podem ser renomeados em letras minúsculas, mas eu prefiro uma solução mais universal do que renomear um único exe para cada programa.

A solução suja e universal é modificar o código de script como:

#!/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[@]}"

O operador or não funcionou por algum motivo. Tenho certeza de que existe uma maneira mais elegante de alcançar o mesmo resultado.

    
por Fincer 07.02.2015 / 17:23