명령 행에서 Mac OS의 PDF를 어떻게 완전히 병합 할 수 있습니까?


16

Mac OS X Snow Leopard를 사용합니다. 양식 필드, 주석 및 스탬프가있는 PDF가 있습니다. 양식 필드를 변경할 수없고 주석 / 스탬프를 더 이상 편집 할 수 없도록 해당 PDF를 고정 (또는 "평평하게")하고 싶습니다. 실제로 이러한 PDF가 많이 있으므로 명령 줄에서 자동으로 수행하려고합니다.

내가 시도 / 고려한 것들, 그들의 성공 정도 :

  • 미리보기에서 열고 파일로 인쇄. 파일 크기를 변경하지 않고 완전히 편평한 PDF를 만듭니다. 자동화하는 유일한 방법 은 피하기 위해 노력하고 있는 멋진 UI 기반 AppleScript 를 작성하는 것 같습니다 .
  • Acrobat Pro에서 열고 JavaScript 함수를 사용 하여 병합 합니다. 다시 명령 줄에서이를 자동화하는 방법을 잘 모릅니다.
  • 옵션 pdftk과 함께 사용하십시오 flatten. 그러나 이것은 스탬프 및 기타 주석이 아닌 양식 필드 만 병합합니다.
  • cupsfilter많은 파일 형식에서 PDF를 만들 수있는 사용하십시오 . 이와 같이 pdftk양식 필드 만 병합되었습니다.
  • 사용 cups-pdf맥의 printserver는에 후크 대신 인쇄의 PDF 파일을 저장합니다. macports 버전을 사용했습니다 . 결과 파일은 평평하지만 크기가 큽니다. 나는 이것을 8MB 파일로 시도했다. 병합 된 PDF는 358MB였습니다! 아마도 우분투 팁 : 명령 줄에서 PDF 파일 크기를 줄이는 방법 과 같이 고스트 스크립트 호출과 결합 할 수 있습니다 .

다른 제안은 감사하겠습니다.


1
Automator.app에는 몇 가지 기본 제공 PDF 처리 옵션이 있습니다. 아마도 그들 중 하나가 직접 또는 위의 조치 중 하나와 결합하여 도울 수 있습니다.
Kassym Dorsel

이러한 요소가 포함 된 PDF 샘플 문서를 제공 할 수 있습니까?
Daniel Beck

나도 그렇게 생각해. 현재 모든 샘플은 학생 퀴즈이므로 무언가를 조롱해야합니다.
Matthew Leingang

답변:


11

사용해보십시오 pdf2psps2pdf연속. 약간 성가 시지만 30MB 문서를 17MB로 줄이는 데 도움이되었습니다. 내가 좋아할 만큼은 아니지만 여전히 더 좋습니다. 이 방법을 사용하여 pdf에 대한 암호 권한을 없애는 친구 로부터이 아이디어를 얻었습니다.

pdf2ps your_pdf_file.pdf your_pdf_file.ps
ps2pdf your_pdf_file.ps your_pdf_file_from_ps.pdf

희망이 도움이됩니다!


3
고스트 스크립트 FTW! 파이프를 사용하여 하나의 라이너로 가져 왔습니다 pdf2ps file.pdf - | ps2pdf - file_flat.pdf. 파일은 300K에서 500K로 증가했는데 이는 백분율이 크게 증가하지만 4400 %만큼 증가한 cups-pdf방법은 아닙니다 .
Matthew Leingang

실제로, 나는 더 나은 행운을 가졌다 pdf2ps -q -sOutputFile=- file.pdf | ps2pdf - file_flat.pdf.
Matthew Leingang

4
Mac에서는 Ghostscript를 설치하여 homebrew 를 통해 위 명령을 사용할 수 있습니다 brew install ghostscript.
Nick

5

그래서 이것은 내가 최근에 사용한 것입니다. 기능적으로는와 같은 일을한다고 생각 pdf2ps file.pdf - | ps2pdf - file_flat.pdf하지만 나에게 더 잘 작동하는 것 같습니다.

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<newfile> <oldfile>

ps2pdf 솔루션이 실패했습니다. 이것은 PDF의 글꼴을 분명히 다시 색인화하여 작동했습니다.
ℝaphink

이 명령들 중 어느 것도 평평하지 않습니다. 미리보기를 사용하여 기본 레이어를 복사하면 원본 컨텐츠가 나타납니다.
Alain O'Dea

1

하위 옵션이 될 수도 있지만 pdftk 또는 cupsfilter를 사용하여 chaining cups-pdf를 고려 했습니까? 앞에서 언급했듯이 cups-pdf는 플랫 pdf 파일을 생성 한 다음 pdftk 또는 cupsfilter를 통과하여 허용 가능한 크기로 줄입니까?

또는 /System/Library/Printers/Libraries/convert 당신은 같은 것을 할 수 있어야합니다

/System/Library/Printers/Libraries/convert -f input_file.pdf -o output_file.pdf -j "application/pdf"

내 맥에는이 없습니다 /System/Library/Printers/Libraries/convert. 나는 노력했다 cupsfilter. PDF에서 PDF로 변환 할 때 파일이 변경되지 않았습니다. PDF에서 PS로 변환 한 다음 PDF로 변환하면 주석이 손실됩니다.
Matthew Leingang

1

경고 : gs 및 pdf2ps | ps2pdf PDF를 병합하지 마십시오!

gs 또는 pdf2ps 다음에 ps2pdf를 사용하면 주석 아래에 내용 이 원래 형식으로 포함 된 다층 PDF 가 생성 됩니다 . 모두 선택, 복사, 텍스트 편집기 창에 붙여 넣기 (서식있는 텍스트 모드)를 사용하여 미리보기에서이 결함을 확인할 수 있습니다. 예를 들어 편집 주석 아래에 텍스트 나 그래픽이 표시됩니다. 합법적으로 해당 컨텐츠를 출력에서 ​​제외해야하는 경우 이는 매우 나쁩니다.

작동하는 솔루션

ImageMagick은 다음 명령을 사용하여 각 페이지의 래스터가 포함 된 구성 가능한 품질의 다중 페이지 단일 레이어 병합 PDF를 생성 할 수 있습니다.

convert -density 150 document_original.pdf document_flat.pdf

이 명령은 document_original.pdf를 래스터 화하여 각 페이지의 픽셀 기반 이미지를 150 DPI로 만들고 결과를 document_flat.pdf로 출력합니다.

이미지 품질에 대한 참고 사항

래스터 화로 인해 확장 불가능 (확대 및 텍스트 또는 원본 벡터 이미지가 픽셀 화됨) PDF를 생성합니다. 원본에 백만 포인트 산점도와 같은 매우 복잡한 벡터 내용이 없으면 파일 크기가 커질 수 있습니다.

밀도 를 변경 하면 더 큰 파일 크기를 거래하여 더 높은 해상도 출력을 얻을 수 있습니다.

모든 텍스트는 각 페이지 이미지에서 원시 픽셀로 변환됩니다. 텍스트 및 벡터 다이어그램이 가장 많이 사용되므로 사용 가능한 출력 파일을 얻을 때까지 DPI로 실험하십시오.


1
이 답변에 기여해 주셔서 감사합니다. 5 년 전 필자가 작성한 솔루션이 나를 위해 일했습니다. 그러나 나는 다음에 이것을 할 때 (실제로 빨리) 당신의 대답을 시도 할 것입니다.
Matthew Leingang

말이 되네요 플래트 닝 주석과 관련하여 Ghostscript의 동작이 변경되었다고 생각합니다. -PreserveAnnots = false를 추가하려고 시도했지만 여전히 작동하지 않습니다. PDF 처리를 위해 Ghostscript를 사용하여 후드 변환에서. Acrobat이하는 일을하고 싶습니다. 주석을 유지하고 뒤에있는 내용을 제거하며 발견되지 않은 벡터 이미지를 보존합니다. 새로운 Acrobat이 포함 된 Document Cloud는 실제로 민감한 데이터에 사용하는 데 신경이 쓰입니다.
Alain O'Dea

0

Applescript는 아마도 명령 행에 가장 좋고 빠른 방법 일 것입니다. 작동하면 응용 프로그램으로 저장하고 명령 셸에서 별칭을 만들어 실행할 수 있습니다. 그런 다음 명령 행에 별명을 입력하면됩니다.


그러나 AppleScript에서 PDF를 병합하는 가장 쉬운 방법은 무엇입니까? 오히려 인쇄를 파일로 모방하기 위해 UI를 스크립트하지 않습니다. 어색하고 느린 것 같습니다.
Matthew Leingang
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.