
다음 명령은 명령줄에서 PDF 콘텐츠를 보는 데 유용합니다 pdftohtml -i -stdout file.pdf |elinks
. file.pdf가 html로 변환된 다음 표시를 위해 텍스트 모드 브라우저로 파이프되는 것은 분명합니다 elinks
.
하지만 제가 하고 싶은 것은 조금 다르게 하는 것입니다. elinks
' -remote
스위치를 사용하여 pdftohtml
이미 실행 중인 명령에 명령 출력을 보내고 싶습니다 elinks
. 예를 들어 명령 출력 대신 URL을 사용하면 작동 방식은 다음과 같습니다. elinks
한 터미널에서 시작한 다음 다른 터미널에서와 같이 명령을 실행 elinks -remote www.google.com
하면 실행 중인 인스턴스 elinks
에서 새 탭이 열리고 Google 검색 페이지가 표시됩니다.
pdftohtml
지금까지 나는 명령의 출력을 처리하기 위해 그러한 명령을 얻을 수 없었습니다 . 가장 직접적인 방법은 pdftohtml -i -stdout file.pdf |elinks -remote
. 그러나 지금까지의 실험에 따르면 -remote 스위치를 사용하려면 URL이나 파일 이름을 제공해야 하기 때문에 이 방법이 작동하지 않습니다("-remote: 예상 인수를 확인할 수 없음").
pdftohtml
그래서 내 질문은 to의 출력을 동적으로 "공급"하는 방법이 있습니까 ? elinks -remote
의견을 주시면 감사하겠습니다.
지금까지 시도한 것
명명된 파이프가 여기서 도움이 될 수 있다고 생각했지만 해당 옵션은 작동하지 않습니다. 비슷한 기능이 pdftohtml -i file.pdf my-pipe && elinks <my_pipe
작동했지만 -remote 스위치를 추가하면 실패했습니다.
목표에 너무 가까워진 패치워크는
pdftohtml -i file.pdf /tmp/pdf.html && elinks -remote /tmp/pdf.html && elinks -remote "reload()"
그러면 -remote 스위치를 허용하도록 인증된 준비 파일이 /tmp 디렉터리에 생성됩니다. 브라우저가 이전에 캐시했을 수 있는 다른 전환 열기 페이지/파일이 표시되지 않도록 페이지를 다시 로드해야 합니다. 이전에 전환 페이지/파일이 열려 있었을 수 있는 다른 탭을 다시 로드하려고 하면 이전에 열려 있던 복사본 대신 해당 페이지/파일의 최신 복사본이 로드되기 때문에 이것은 실제로 좋은 솔루션이 아닙니다.
해결하다?
pdftohtml
추가 연결을 추가하기 위해 다음은 후속 파일에 의해 덮어쓰기로 인해 발생하는 문제를 해결하기 위해 인터넷 검색자로서의 겸손한 능력과 엘리트 복사/붙이기로서의 전문 지식을 사용하여 함께 엮은 주석이 달린 bash 스크립트(pdf2elinks라고 부릅니다)가 있습니다. 전체 검토 전에 분실되었습니다. 당연히 변환된 전환 html 파일에 이름 대신 숫자를 할당하기로 결정했습니다. 그러면 자동으로 고유한 이름을 할당하는 방법이 제공됩니다. 시스템이 /tmp
재부팅 시 디렉터리 내용을 자동으로 지우도록 설정되지 않은 경우 cron
스테이징 html 파일이 기록되는 디렉터리를 주기적으로(예: 스크립트 사용) 지워야 한다는 점도 분명할 수 있습니다.
#!/bin/bash
# use: pdf2elinks [filename]
# read the name of the pdf supplied to this script into a variable
pdfname=$1
# test whether the target directory is empty and, if it is, convert the supplied pdf under the name 1.html
if [ ! "$(ls -A /tmp/pdfs2html)" ]; then
pdftohtml -i $pdfname /tmp/pdfs2html/1.html && elinks -remote /tmp/pdfs2html/1.html
else
# if the directory is not empty, find the highest numbered file in /tmp/pdfs2html
number=`ls /tmp/pdfs2html/ | sed 's/\([0-9]\+\).*/\1/g' | sort -n | tail -1`
# increment by one the highest numbered file found
numberplus=`echo "$number +1" | bc`
pdftohtml -i $pdfname /tmp/pdfs2html/$numberplus.html && elinks -remote /tmp/pdfs2html/$numberplus.html
fi
elinks
마지막으로 호출기로 작동하려는 이 프로젝트는 다음 페이지에서 영감을 받았습니다.http://www.pocketnix.org/posts/Life%20on%20the%20command%20line%3A%20Day%20To%20Day%20Console. 이 저자처럼 나도 실행 중인 SSH 세션에서 명령줄을 통해 내 컴퓨터 중 하나와 자주 상호 작용합니다 tmux
. 탭 중 하나는 항상 elinks
실행되며 전자 메일 첨부 파일(예: PDF)을 열거나 매뉴얼 페이지를 읽거나 웹 페이지를 열 수 있는 창 역할을 합니다. 위 스크립트의 경로가 PDF 처리를 위해 내 .mailcap 항목에 추가되었으며 해당 기능을 잘 수행하는 것 같습니다.
의견, 제안, 개선 및/또는 수정을 환영합니다. 나는 내가 해결하려는 문제에 대한 최선의 해결책을 찾았다는 환상이 없으며, 심지어 어떤 문제가 실제로 위험에 처해 있는지 잘 이해하고 있다는 환상도 없습니다.