Imprimir como PDF do iPhone/iPod/iPad para o Dropbox (via AirPrint)

Imagine que legal: você está em seu iPhone (ou iPod/iPad) lendo um email. Aí você usa o botão Imprimir e plim, aparece um PDF dentro do seu Dropbox, contendo o email. Depois você abre o Safari e acessa um site legal. Novamente usa o botão imprimir e plim, um PDF com o site aparece em seu Dropbox. Depois você abre o Pages, edita um documento e… Acho que você já entendeu, né?

Em qualquer aplicativo do iOS que tenha a função de imprimir, você pode gerar um PDF e guardá-lo automaticamente em seu Dropbox, ficando disponível em todos os seus computadores, smartphones, etc. Você só precisa de um Mac (ou Windows, ou Linux) na mesma rede, configurado para funcionar com o AirPrint e Dropbox. Vou te ensinar como se faz.

Mas antes, deixa eu te explicar o porquê.

Eu tive essa necessidade quando precisei pagar um boleto no banco e tentei fazer isso pelo iPad. Acessei o site do banco, preenchi os dados e fiz o pagamento, deu tudo certo. Aí apareceu a opção para emitir o comprovante, que eu sempre salvo como PDF e guardo. Mas dessa vez, por estar no iPad, travei.

Como vou fazer isso? Não posso baixar arquivos nem tem a opção mágica de imprimir como PDF, que eu sempre uso no Mac. E depois, mesmo que eu conseguisse, ainda teria que plugar o iPad no computador para enfim poder copiar o comprovante para junto de meus arquivos. Que saco.

Na busca de uma solução, aprendi como converter um site pra PDF e guardá-lo na biblioteca do iBooks. Mas isso não funcionaria no site do banco, que é inacessível para os sites externos que poderiam convertê-lo para PDF. Pesquisando mais, caí neste artigo que mostrou a solução para o meu problema:

  • A partir do iOS, imprimir via AirPrint para uma impressora PDF em meu Mac, que salva direto dentro do meu Dropbox.

Sei que isso parece complicado (e na verdade é!), mas já expliquei aqui no blog como fazer a parte mais difícil. Vamos lá para o passo a passo.

  1. Configure seu Mac para ser uma impressora PDF.
  2. Ative o AirPrint em seu Mac.
  3. Mande imprimir algo direto do iPhone para testar tudo e para que seja criada a pasta especial que guarda os PDFs.
  4. Confira se o PDF foi mesmo criado. Para isso, abra a seguinte pasta:

    Seu HD > Usuários > Compartilhado > CUPS-PDF

    Se tudo deu certo, ali haverá uma pasta chamada guest e seu PDF estará dentro dela.

    Aqui vem a pegadinha: a pasta guest é protegida e você não tem permissão para ver seu conteúdo. É preciso fazer mágicas no Terminal para resolver este problema:

      cd /var/spool/cups-pdf
      sudo chmod o+rwx guest/
      sudo chmod 666 guest/*

    Agora sim, você poderá ver seu PDF. Mais pra frente eu te ensino como fazer para que não ocorra mais esse problema de permissões.

    Então neste ponto já está quase tudo funcionando, você consegue imprimir do iPhone e salvar como PDF em seu Mac. Agora vem o pulo do gato, que é colocar este PDF na nuvem.

  5. Dentro do seu Dropbox, faça um link para a pasta com os PDFs. Primeiro, entre em sua pasta do Dropbox:
      cd ~/Dropbox

    Agora crie um link para a pasta com os PDFs de impressão. Chamarei o link de “PDF”, mas use o nome que você quiser:

      ln -s /var/spool/cups-pdf/guest PDF

Pronto! O Dropbox já vai começar a mandar seus PDFs para a nuvem.

Mais nuvens bizarras aqui.

O programa cups-pdf é responsável por salvar o PDF em seu Mac. Você pode configurá-lo editando o arquivo /etc/cups/cups-pdf.conf. Ali você consegue resolver o problema das permissões, e ainda pode mudar o nome dos arquivos PDF gerados.

  • Permissões: Procure pela configuração UserUMask e deixe-a somente com zeros. Assim você não terá mais problemas para ler os PDFs gerados.
      UserUMask 0000
  • Prefixo job_: Todos os PDFs criados ganham um prefixo “job_” seguido de um número. Para remover este prefixo, mude a configuração Label para zero.
      Label 0

    Após fazer estas alterações, basta salvar o arquivo que elas já entrarão em vigor. Mande outra impressão para testar se tudo está certo.

— EOF —

Gostou desse texto? Aqui tem mais.