Eu tenho esta linha dentro de um arquivo de menu de serviço Dolphin que contém muitos outros comandos para processamento de PDF:
Exec=bash -c 'f="%u"; ocrmypdf "$f" "${f%.pdf}_ocr.pdf";'
Tem a vantagem de dar um arquivo de saída no formato MY_PDF_ocr.pdf
, mantendo assim o nome do arquivo de entrada. Mas eu preferiria ter o comando rodando no terminal ( konsole
) para que eu veja o processo.
Para isso, posso usar a linha:
Exec=konsole --noclose -e ocrmypdf "%u" ocr_en.pdf
mas sem a saída mantendo o nome da entrada.
Uma linha como
Exec=konsole --noclose -e ocrmypdf "%u" "${%u}_ocr.pdf"
faz nada.
Como ajustar o ocrmypdf
para que o comando seja executado no konsole e a saída inclua o nome da entrada?
Depois de algumas tentativas (e erros) um comando simples como
ocrmypdf %u %u_ocr.pdf
dará um arquivo de saída com um nome estranho (que inclui a extensão) do formulárioINPUT.pdf_ocr.pdf
, e no menu de serviço:Mas uma solução mais limpa (inspirada no que eu poderia escolher aqui (no formato adequado de um script) e aqui (no uso
bash
com tal script no terminal) parece ser criar um script separado (por exemploocr_EN.sh
) para esse comando OCR - do formulário (para inglês):Tornando-o executável e usando o seguinte comando (aqui incluído na linha de um arquivo de menu de serviço):
que fornece uma saída nomeada
INPUT_ocr_EN.pdf
(sem que a extensão apareça duas vezes).