PDF의 첫 페이지를 삭제하도록 OSX 서비스를 어떻게 설정합니까?

PDF의 첫 페이지를 삭제하도록 OSX 서비스를 어떻게 설정합니까?

첫 번째 페이지가 비어 있거나 사용할 수 없는 표지인 PDF 파일을 자주 받습니다. 첫 번째 페이지만 삭제하고 파일을 저장할 수 있는 빠르고 효율적인 방법(Applescript, 서비스 또는 ???)을 제안해 주실 수 있나요?

Preview 또는 Adobe Acrobat Professional을 통해 자동화할 수 있다면 가장 이상적입니다.

어떤 아이디어가 있나요?

답변1

다음을 사용하여 이 작업을 수행할 수 있습니다.자동화기작업 흐름. 대부분의 것보다 조금 더 복잡하므로 구현할 때 주의하세요.

이 게시물에는 다음이 포함되어 있습니다.Processed PDF File.pdf버전: 하나는 더 짧고 데스크탑에서 와 같이 출력을 저장하고 , 다른 하나는 더 길며 파일을 다음과 같이 저장합니다.(Edited)InputFileName.pdf같은 디렉토리에 있습니다. 더 긴 버전에만 필요한 단계가 표시되어 있습니다.(선택 과목).

열려 있는자동화기새 항목을 만들려면 선택하세요.서비스받는PDF 파일입력으로모든 애플리케이션.

  1. (선택 과목)을 추가하다변수 값 설정작업을 수행하고 변수 이름을 지정합니다 FilePath.
  2. (선택 과목)을 추가하다AppleScript 실행작업을 수행하고 다음 스크립트 코드를 사용하여 파일이 있는 폴더 이름을 가져옵니다.

    on run {input, parameters}
        tell application "Finder" to return (container of first item of input) as alias
    end run
    
  3. (선택 과목)을 추가하다변수 값 설정작업을 수행하고 변수 이름을 지정합니다 Folder.

  4. (선택 과목)을 추가하다변수 값 얻기작업을 수행하고 변수를 반환합니다 FilePath. 이 작업의 입력을 무시합니다.옵션.
  5. (선택 과목)을 추가하다쉘 스크립트 실행작업 및 입력 전달인수로. 다음 스크립트를 사용하여 파일의 기본 이름을 추출합니다.

    echo "$( basename "$1" )"
    
  6. (선택 과목)을 추가하다변수 값 설정작업을 수행하고 변수 이름을 지정합니다 FileName.

  7. (선택 과목)을 추가하다변수 값 얻기작업을 수행하고 변수 이름을 지정합니다 FilePath. 이 작업의 입력을 무시합니다.옵션.

  8. 을 추가하다PDF를 이미지로작업을 수행하여 출력을 데스크톱이나 임시 파일을 보관할 수 있는 폴더에 저장합니다. 원하는 대로 이름을 지정하세요.

  9. 을 추가하다변수 값 설정작업을 수행하므로 나중에 삭제할 임시 파일을 알 수 있습니다. 변수 이름을 TempFiles.
  10. 을 추가하다AppleScript 실행작업을 수행하고 다음 스크립트 코드를 사용하여 임시 파일 목록을 필터링합니다(여기서 첫 번째 페이지가 제거됩니다).

    on run {input, parameters}
        return rest of input
    end run
    
  11. 을 추가하다PDF 페이지 결합그 조각들을 다시 합치는 행위,페이지 추가.

  12. 사용Finder 항목 이동결과 파일(재결합된 PDF)을 데스크탑이나 원하는 폴더로 이동하는 작업입니다. 입력 파일의 상위 폴더를 계산하기로 결정한 경우 변수에 대한 참조를 끌어서 놓는 곳입니다 Folder.
  13. 그만큼Finder 항목 이름 바꾸기zOpY3O.pdf작업을 사용 하면 결합된 PDF 파일에 대해 자동으로 할당된 파일 이름인 eg보다 더 나은 파일 이름을 이러한 파일에 부여할 수 있습니다 . 예를 들어 사용이름 단일 항목기본 이름을 Processed PDF File. 더 긴 변형을 사용하기로 선택한 경우 FileName변수 목록에서 텍스트 필드로 끌어서 (Edited)바로 앞에 추가합니다. 이제 기본적인 작업은 끝났습니다. 정리만 하면 됩니다.
  14. 추가변수 값 얻기조치를 취하고 의 값을 얻습니다 TempFiles. 이 작업의 입력을 무시합니다.옵션.
  15. 을 추가하다Finder 항목을 휴지통으로 이동임시 단일 페이지 파일을 제거하는 작업입니다.

다음은 완성된 더 긴 버전의 워크플로에 대한 스크린샷입니다.

여기에 이미지 설명을 입력하세요

답변2

앞서 언급한 내용을 사용하여명령줄 PDF 도구, 다음을 수행하는 워크플로를 컴파일할 수 있었습니다.

  1. 입력 PDF(또는 PDF)를 가져와 첫 페이지를 제외한 새 파일을 생성합니다.
  2. 원본 PDF를 휴지통으로 이동
  3. 원본 파일과 일치하도록 새 파일의 이름을 바꿉니다.

먼저 지시에 따라 PDF 도구를 설치했습니다. 이 경우 핵심 도구는 pdfsplit입니다.

Automator에서는 Finder에서 선택한 PDF 파일을 수신하는 새로운 서비스를 만들었습니다.

쉘을 "/bin/bash"로 하고 "입력 전달"을 "인수"로 설정하여 "쉘 스크립트 실행" 작업을 추가했습니다. 그런 다음 다음과 같은 간단한 스크립트를 작성했습니다.

for f in "$@"
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

원본 파일에 대해 "Finder 항목을 휴지통으로 이동" 작업을 추가하고 새 파일에서 .tmp 확장자를 제거하기 위해 "텍스트 바꾸기" 작업을 추가했습니다.

폴더 입력으로 프로세스를 실행하려면 스크립트는 다음과 같습니다.

cd "$@"
for f in *pdf
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

제거 및 이름 바꾸기를 포함하여 쉘 스크립트에서 모든 작업을 수행할 수 있었을 것입니다. 그러나 rm 명령은 위험할 수 있으므로 원본 파일을 휴지통으로 옮기는 것을 선호합니다.

단순히 x개의 페이지를 제거하는 것 이상의 작업을 수행하도록 스크립트를 수정할 수 있습니다. 예를 들어 저는 PDF를 일괄적으로 자르고 결합하는 것과 유사한 프로그램을 개발했습니다. 자세한 내용은 pdfsplit 및 관련 도구 설명서를 확인하세요.

답변3

다른 포럼의 누군가가 개발했습니다.일부명령줄 PDF 도구, 페이지를 삭제하는 것을 포함합니다. 비교적 쉬울 것 같았습니다. 유일한 문제는 작업 흐름에서 작동하는 방식일 수 있습니다. 귀하의 설명에 따르면 PDF가 열려 있는 동안 작동하는 것으로 보이며 이러한 도구는 닫힌 파일에서 더 잘 작동하는 것 같습니다.

답변4

Joseph Yannielli가 제공한 답변에 추가하기 위해 쉘 스크립트를 실행하기로 결정한 사람들의 경우 Automator를 통해 별도의 작업을 추가하는 대신 스크립트에 파일을 삭제하고 이름을 바꾸는 명령을 포함하는 것이 더 쉬울 수 있습니다.

for f in "$@"
do
    /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
    rm "$f"
    mv "$f".tmp "$f"
done

명령줄 PDF 도구를 설치하는 경우 다음을 사용하여 편리하게 수행할 수 있습니다.홈브류:

brew install pdf-tools

관련 정보