É possível imprimir em PDF a partir do terminal Mac?

19

É possível pegar um arquivo e imprimi-lo em PDF usando apenas comandos do terminal? Eu estou supondo que você usaria de alguma forma o comando lpr, mas ainda tenho que descobrir a sintaxe correta.

tambler
fonte
Que tipo de arquivo? texto simples?
Doug Harris
11
@ Daniel, eu deveria ter sido mais claro na minha pergunta: que tipo de arquivo de origem? - Minha resposta abaixo funcionará para arquivos de texto simples, mas não para imagens.
Doug Harris
@ Doug peço desculpas, na verdade eu interpretei errado a pergunta.
Daniel Beck
11
@ Daniel - O que eu realmente estou buscando é algo mais intensivo em termos gráficos, digamos, páginas HTML. Isso é possível?
tambler
11
Seu principal problema provavelmente é que o aplicativo visualizador depende do formato do arquivo. Decida qual formato deseja e obterá respostas específicas.
Daniel Beck

Respostas:

11

lpré realmente o comando correto. Não há muito, apenas

lpr filename.pdf

deve funcionar simplesmente, presumindo que a impressora padrão esteja configurada corretamente. Caso contrário, você pode ter que fazer

lpr -P printername filename.pdf

Observe que há uma página de manual - "man lpr" se você precisar ver o conteúdo. Sim, o daemon de impressão CUPS que o OS X usa já reconhece o PDF.

Perada
fonte
A solução fornecida fornece pdf em tamanho zero no Yosemite. Alguma idéia de como resolvê-lo?
Stanislav Mekhonoshin
Desculpe pela duplicação. A solução fornecida fornece PDF de tamanho zero no Yosemite, quando estou tentando extrair o documento .pages. RTF ou txt são bem impressos. Alguma idéia de como consertar isso?
Stanislav Mekhonoshin
O lpr não gera arquivos pdf, então não tenho certeza se entendi o comentário. Você não pode gerar arquivos pdf com o lpr.
Perry
4
Isso não responde à pergunta original, pois era como 'imprimir em pdf', não imprimir um pdf.
dorien
5

Eu sei que vi algo em uma pasta meramente oculta do sistema:

/Library/Scripts/Printing Scripts/Convert To PDF.scpt

Eu criei um novo aplicativo a partir do AppleScript, mas chamar o script diretamente também deve funcionar.

EDIT: na verdade você pode simplesmente ligar

/System/Library/Printers/Libraries/convert -f file.rtf -o file.pdf -j "application/pdf"

fonte
6
Esta resposta é obsoleta. Testado no OS X 10.9.5.
4ae1e1
@ 4ae1e1 Não, não é. Apenas esse "converter" não existe. É um link simbólico para / usr / sbin / cupsfilter e o cupsfilter ainda funcionará dessa maneira, mesmo na versão 10.13.6.
Cde 08/11
3

1) O processador Open Source Word, AbiWord , inclui uma opção de conversão entre os formatos que conhece na linha de comando, incluindo PDF, por exemplo,

abiword --to=pdf filename.html

(Ele também manipula, por exemplo, arquivos .doc do MS Word, .docx, .odt, .rtf, etc., tanto de entrada quanto de saída.)

Sei que está disponível para Mac, embora nunca o tenha usado em um Mac.

2) O ebook-convertprograma de linha de comando do calibre (no mac, você precisa seguir as instruções aqui para obter as ferramentas de linha de comando) também é útil para muitos formatos.

ebook-convert filename.html filename.pdf

Ele pode lidar com entradas .rtf e .odt, e muitos formatos de e-book como .epub e .mobi.

3) O PrinceXML pode ser usado na linha de comando e converterá HTML em PDF muito bem.

4) Existe o wkhtmltopdf , que usa o mecanismo do webkit para converter HTML em PDF a partir da linha de comando. Eu nunca tentei.

5) Posso pensar em outros métodos usando, por exemplo, ConTeXt ou pdflatex, mas eles se envolvem cada vez mais.

frabjous
fonte
11
Nota: O AbiWord não funciona no Mac baseado em intel
inspectorG4dget
2

Para arquivos de texto sem formatação, você pode usar enscript(fornecido com o OS X) para gerar um arquivo postscript.

$ enscript -p ~/Desktop/profile.ps /etc/profile
[ 1 pages * 1 copy ] left in /Users/dharris/Desktop/profile.ps

O aplicativo de visualização do OS X pode abrir (e converter) em PDF ou você pode instalar o ps2pdf (eu o instalei via macports ) e converter na linha de comando.

$ ps2pdf ~/Desktop/profile.ps ~/Desktop/profile.pdf
Doug Harris
fonte
E se eu quisesse fazer algo mais intensivo em termos gráficos? Digamos, converter uma página HTML em PDF a partir do terminal?
tambler
Sei que isso é antigo, mas o PhantomJS pode fazer isso e faz muito bem.
Brad
2

Você também pode usar o pandoc em http://johnmacfarlane.net/pandoc/installing.html

Com este comando, você converteria o arquivo html para pdf:

pandoc -o output.pdf input.html

Mas observe que o pandoc usa o LaTeX para a conversão, portanto você precisa ter um sistema LaTeX instalado ( http://www.tug.org/mactex/ ).

Pandoc também pode converter para outros formatos, como .odt, .docx e .epub

nnn
fonte
1

Primeiro, obtenha o nome da impressora

lpstat -p

Em seguida, use o nome da impressora (Canon1234 - por exemplo)

lp -d Canon1234 PathToDocument.pdf
Thejus Krishna
fonte
Op está olhando para imprimir um arquivo arbitrário em um documento PDF, não imprimir um PDF em uma impressora real.
Cde
0

Para arquivos de páginas da Web locais, você pode tentar usar URLs de download como ação do PDF Automator. Baixar e instalar.


Eu tive que iniciar o Automator no modo de 32 bits:

texto alternativo


Crie um aplicativo de automação que receba automaticamente arquivos e pastas como entrada , com essa ação como a única. Salvar, por exemplo, como Save as PDF.

Abra a caixa de diálogo Obter informações do seu aplicativo e marque Abrir no modo de 32 bits também aqui. Clique duas vezes nele para garantir que o Launch Services conheça o aplicativo.


Você pode usar este aplicativo na linha de comando desta forma:

osascript -e 'tell application "Save as PDF" to open { POSIX file "/path/to/file.html" as alias }'

Obviamente, você pode colocar isso em um bom AppleScript .scpt, bashfunção, shell script ou não.


Esta solução é realmente bastante flexível. Consegui converter arquivos de texto e arquivos HTML, e a ação do Automator também é um pouco configurável.

Daniel Beck
fonte
0

Na verdade, é muito mais fácil do que isso. Você pode apenas digitar na linha de comando open *.pdfe o Preview será aberto com todos os arquivos lá. Estranhamente, se você digitar, open *.pdf */*.pdfobtém duas janelas. Em cada um deles, você precisará ir para a barra lateral, selecionar um dos formatos quadrados (se houver muitos arquivos abertos por padrão no formato de lista que não funcione), digite CMD- Apara selecionar todos, em seguida, use a opção print- comando selected-pages para obter todos eles.

Joanna Bryson
fonte
0

você pode adicionar o driver de impressora pdf usando pdf printer

  • primeiro instale pdf printerda loja e depois
  • começar pdf printer
  • vá para as preferências do sistema

  • impressoras e scanners abertos

  • clique no +botão

  • na lista de impressoras, selecione pdf printer

  • espere um segundo

  • depois clique em adicionar

  • configure pdf printercomo impressora padrão e feche ...

abra o terminal e execute o comando para imprimir um arquivo

lp /path/to/your/file/to/print.txt
NuOne
fonte