Como posso achatar totalmente um PDF no Mac OS na linha de comando?

13

Eu uso o Mac OS X Snow Leopard. Eu tenho um PDF com campos de formulário, anotações e carimbos. Gostaria de congelar (ou "achatar") esse PDF para que os campos de formulário não possam ser alterados e as anotações / carimbos não sejam mais editáveis. Como eu tenho muitos desses PDFs, quero fazer isso automaticamente na linha de comando.

Algumas coisas que eu tentei / considerei, com seu grau de sucesso:

  • Abra em Visualizar e Imprimir para arquivo. Isso cria um PDF totalmente plano sem alterar o tamanho do arquivo. A única maneira de automatizar parece ser escrever um kludgy AppleScript baseado em AppleScript , embora, o que eu ' Eu tenho tentado evitar.
  • Abra no Acrobat Pro e use uma função JavaScript para nivelar . Novamente, não sei como automatizar isso na linha de comando.
  • Use pdftk com a opção flatten . Mas isso só nivela campos de formulário, não selos e outras anotações.
  • Use cupsfilter que pode criar PDF a partir de vários formatos de arquivo. Como pdftk , isso achatou apenas os campos do formulário.
  • Use cups-pdf para conectar-se ao servidor de impressão do Mac e salvar um arquivo PDF em vez de impressão. Eu usei a versão de macports . O arquivo resultante é plano, mas grande. Eu tentei isso em um arquivo de 8MB; o PDF achatado tinha 358MB! Talvez isso possa ser combinado com uma chamada do ghostscript como no Ubuntu Dica: Como reduzir o tamanho do arquivo PDF na linha de comando .

Qualquer outra sugestão seria apreciada.

    
por Matthew Leingang 07.12.2011 / 16:32

4 respostas

5

Então é isso que venho usando ultimamente. Eu acho que funcionalmente faz a mesma coisa que pdf2ps file.pdf - | ps2pdf - file_flat.pdf , mas parece funcionar melhor para mim.

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<newfile> <oldfile>
    
por 24.09.2014 / 17:45
10

Tente usar pdf2ps e ps2pdf em sucessão. É um pouco complicado, mas ajudou-me a reduzir o meu documento de 30MB para 17MB. Não tanto quanto eu teria gostado, mas ainda melhor. Eu tive essa ideia de um amigo que usou esse método para se livrar das permissões de senha em um pdf.

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

Espero que ajude!

    
por 18.10.2012 / 01:36
1

Pode ser subopcional, mas você considerou encadear cups-pdf com pdftk ou cupsfilter? Como você mencionou, o cups-pdf produzirá um arquivo pdf simples e passará pelo pdftk ou cupsfilter para obter um tamanho aceitável?

Alternativamente, dê uma olhada em /System/Library/Printers/Libraries/convert Você deveria ser capaz de fazer algo como

/System/Library/Printers/Libraries/convert -f input_file.pdf -o output_file.pdf -j "application/pdf"
    
por 22.03.2012 / 21:40
0

O Applescript é provavelmente o melhor / mais rápido caminho para a linha de comando. Depois que ele funcionar, você poderá salvá-lo como um aplicativo e criar um alias no shell de comando para executá-lo. Depois disso, basta digitar seu alias na linha de comando.

    
por 22.03.2012 / 22:36

Tags