É 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.


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.


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"

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.


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

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


1

Primeiro, obtenha o nome da impressora

lpstat -p

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

lp -d Canon1234 PathToDocument.pdf

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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.