태그 보관물: open-source

open-source

여러 PDF에서 첫 페이지 추출 수 없습니다. 누구나

약 500 개의 PDF 파일을 통해 첫 페이지를 추출했습니다. 그런 다음 시간이 많이 걸리는 변환 프로세스를 거쳐야하므로 500 PDF에서 첫 페이지 만 추출하여 새 PDF에 배치하는 배치 프로세스를 통해 시간을 절약하려고했습니다. Acrobat을 둘러 보았지만 여러 파일에 대해이 작업을 수행하는 실제 방법을 찾을 수 없습니다. 누구나 달성 할 수있는 다른 프로그램이나 방법을 알고 있습니까? 무료 및 오픈 소스는 분명히 더 유리합니다 🙂

편집 : 실제로 한 페이지 만 추출하기 위해 GhostScript를 사용하여 약간의 성공을 거두었습니다. 이제 배치를 배치하고 파일 목록을 가져 와서 사용하는 방법을 찾고 있습니다.



답변

pdftk 사용하기 …

명령 줄에서 mac 및 Linux의 경우

for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done

Windows에서는 배치 파일을 작성할 수 있습니다. 메모장을 열고 안에 붙여 넣습니다.

for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"

“pdftk.exe”를 pdftk의 전체 경로 (예 : 기타)로 바꿔야 할 수도 있습니다 "C:\Program Files\pdftk\pdftk.exe. (나는 Windows를 사용하지 않으므로 알 수 없습니다.)

.bat로 끝나는 확장자로 저장하고 PDF가있는 폴더에 놓은 다음 두 번 클릭하십시오.

Ghostscript로도 같은 작업을 수행 할 수 있습니다.

보자 Mac 및 Linux (한 줄) :

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done

Windows 배치 파일에 해당하는 명령이 무엇인지 정확히 모르겠습니다. 내 최선의 추측 (-창이 없어서 테스트 할 수 없다) :

for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"

고스트 스크립트 실행 파일의 경로가 올바른지 다시 확인하십시오 .Windows를 사용하지 않기 때문에 테스트하지 않았습니다.


편집 : 좋아, 방금 500 개의 1 페이지 PDF를 원하지는 않지만 모든 PDF 파일을 결합하는 단일 PDF를 원한다는 것을 깨달았습니다. 위의 내용 만 실행하면 500 페이지의 1 페이지 PDF가 남습니다. Mac 및 Linux에서 pdftk …를 사용하여 결합하려면 :

pdftk *-page1.pdf cat output combined.pdf

위와 같이 pdftk에 대한 전체 경로가 필요할 수 있다는 점을 제외하고는 Windows에서도 동일하다고 생각합니다. 배치 파일에서 위의 행 다음에 해당 행을 추가 할 수 있습니다.

Mac 및 Linux에서 Ghostscript로 :

gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf

그리고 처음에 “gs”를 위와 같이 gswin32c.exe의 전체 경로로 바꾸는 것을 제외하고는 Windows에서도 동일 할 것입니다.

한 번에 두 가지 작업을 모두 수행 할 수있는 고스트 스크립트 방법이있을 수 있지만 지금은 너무 게으르다.

그것들을 결합하는 순서가 중요하다면 더 많은 정보가 필요합니다.


답변

오늘 리눅스에서해야 했어요. Mac에서도 작동합니다. 터미널에서 다음 명령을 실행하십시오.

lpr -o page-ranges="1-1" path/to/folder/*.pdf

lpr은 프린터에 작업을 제출합니다.

명령에서 * 문자 사용법을 참고하십시오. 디렉토리의 모든 PDF 파일에 대한 명령이 실행됩니다.


답변

pdf-forge와 같은 pdf 가상 프린터를 사용할 수 있다고 생각합니다.

당신은 단지 첫 페이지를 “인쇄”하고, 지금은 Mac에서 시도해 볼 수 없지만 한 번에 한 개씩 더 할 수 있다고 확신합니다.

행운을 빕니다!!

트루 파


답변

Windows 배치 파일 명령 (.bat) (%%는 bat 파일의 변수에 해당)

해상도 / 크기가 감소 된 jpg로 pdf의 첫 페이지 추출

for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"

(위의 게시물에서 sOutputFile이 잘못 작성되었습니다. 표준 gs x86 설치의 현재 경로로)

(
여러 페이지 PDF를 단일 JPG로 변환하기 위해 Ghostscript 사용을 참조하십시오. )


답변

리눅스에서

이 명령 줄을 작성했습니다

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} pdftk {} cat 1 output {}.firstpage.pdf

그러나 그것은 일을하고, 테스트했으며, 많은 폴더 수준에서 작동합니다. 폴더 구조의 루트로 실행하십시오. 모든 폴더는 모든 pdf 파일에 대해 다음으로 끝나는 추가 pdf를 갖습니다..firstpage.pdf

당신 은 이것을 필요로 pdftk하며 treeUbuntu Linux에서 apt로 설치할 수 있습니다 :

sudo apt install pdftk tree


답변

또는 cpdf https://www.coherentpdf.com/ocaml-libraries.html을 사용 하십시오 .

cpdf -merge in1.pdf [<range>] in2.pdf [<range>] [<more names/ranges>]
     [-retain-numbering] [-remove-duplicate-fonts] -o out.pdf

cpdf -merge a.pdf 1 b.pdf 1 -o out.pdf


답변