<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Fernando Valler</title>
    <description>The latest articles on Forem by Fernando Valler (@fernandovaller).</description>
    <link>https://forem.com/fernandovaller</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1455074%2Feb84ec78-1760-463d-b99a-4c6e8d78f1c0.png</url>
      <title>Forem: Fernando Valler</title>
      <link>https://forem.com/fernandovaller</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/fernandovaller"/>
    <language>en</language>
    <item>
      <title>Transforme seus HTMLs em PDFs com facilidade usando wkhtmltopdf em sua VPS</title>
      <dc:creator>Fernando Valler</dc:creator>
      <pubDate>Tue, 16 Jul 2024 18:57:09 +0000</pubDate>
      <link>https://forem.com/fernandovaller/transforme-seus-htmls-em-pdfs-com-facilidade-usando-wkhtmltopdf-em-sua-vps-3o3g</link>
      <guid>https://forem.com/fernandovaller/transforme-seus-htmls-em-pdfs-com-facilidade-usando-wkhtmltopdf-em-sua-vps-3o3g</guid>
      <description>&lt;p&gt;Para quem usa uma VPS, uma ótima dica para gerar PDFs diretamente do sistema é instalar o &lt;strong&gt;wkhtmltopdf&lt;/strong&gt;. Essa ferramenta poderosa permite converter arquivos HTML e URLs em PDFs de forma simples e eficiente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;wkhtmltopdf&lt;/strong&gt; é uma ferramenta de linha de comando que converte arquivos HTML e URLs em PDFs usando o mecanismo de renderização do Webkit e o Qt. É amplamente utilizado para gerar relatórios, faturas, e outros documentos a partir de páginas web.&lt;/p&gt;

&lt;p&gt;Os principais recurso são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conversão de HTML para PDF&lt;/strong&gt;: Transforma qualquer página web ou arquivo HTML em um PDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibilidade com CSS e JavaScript&lt;/strong&gt;: Suporta a maioria dos estilos CSS e scripts JavaScript, garantindo que o PDF gerado se pareça com a página web original.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customização&lt;/strong&gt;: Permite a adição de cabeçalhos, rodapés, e marcações na página, além de opções de margens, orientação de página e tamanho.
Links e Anotações: Mantém links clicáveis e permite a inclusão de anotações e metadados no PDF.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Como instalar
&lt;/h2&gt;

&lt;p&gt;Usando a versão padrão&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; wkhtmltopdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também é possível escolher uma versão específica, acesse o site oficial &lt;code&gt;https://wkhtmltopdf.org/downloads.html&lt;/code&gt; e peque o link da versão desejada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Fazer o download da versão&lt;/span&gt;
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

&lt;span class="c"&gt;# Instalar a versão baixada&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; ./wkhtmltox_0.12.6-1.bionic_amd64.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o &lt;strong&gt;wkhtmltopdf&lt;/strong&gt; instalado, basta executar o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wkhtmltopdf http://google.com google.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configurações
&lt;/h2&gt;

&lt;p&gt;Existem muitas configurações que podem ser usadas ao executar o comando para melhorar a performasse e tempo de conversão.&lt;/p&gt;

&lt;p&gt;Veja mais opções em &lt;code&gt;https://wkhtmltopdf.org/usage/wkhtmltopdf.txt&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wkhtmltopdf &lt;span class="nt"&gt;--lowquality&lt;/span&gt; &lt;span class="nt"&gt;--disable-javascript&lt;/span&gt; &lt;span class="nt"&gt;--print-media-type&lt;/span&gt; &lt;span class="nt"&gt;--disable-external-links&lt;/span&gt; &lt;span class="nt"&gt;--disable-internal-links&lt;/span&gt; &lt;span class="nt"&gt;--dpi&lt;/span&gt; 72 http://google.com google.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também é possível instalar fontes para melhorar a aparência do PDF gerado com ele.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;fonts-lato fonts-open-sans fonts-roboto fonts-mononoki
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicionar Cabeçalhos e Rodapés&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wkhtmltopdf &lt;span class="nt"&gt;--header-center&lt;/span&gt; &lt;span class="s2"&gt;"Título do Documento"&lt;/span&gt; &lt;span class="nt"&gt;--footer-center&lt;/span&gt; &lt;span class="s2"&gt;"Empresa XYZ"&lt;/span&gt; http://google.com google.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Definir Tamanho e Orientação da Página&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wkhtmltopdf &lt;span class="nt"&gt;--page-size&lt;/span&gt; A4 &lt;span class="nt"&gt;--orientation&lt;/span&gt; Landscape http://google.com google.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tempo de Espera para Renderização Completa&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wkhtmltopdf &lt;span class="nt"&gt;--javascript-delay&lt;/span&gt; 2000 http://google.com google.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O &lt;strong&gt;wkhtmltopdf&lt;/strong&gt; é uma ferramenta indispensável para quem precisa gerar PDFs a partir de conteúdo web. Com suas diversas opções de configuração, você pode otimizar o processo de conversão para atender às suas necessidades específicas.&lt;/p&gt;

&lt;p&gt;God job!&lt;/p&gt;

</description>
      <category>vps</category>
      <category>pdf</category>
      <category>html</category>
    </item>
    <item>
      <title>Como instalar o PHPStorm no WSL2</title>
      <dc:creator>Fernando Valler</dc:creator>
      <pubDate>Mon, 15 Jul 2024 18:02:32 +0000</pubDate>
      <link>https://forem.com/fernandovaller/como-instalar-o-phpstorm-no-wsl2-1f17</link>
      <guid>https://forem.com/fernandovaller/como-instalar-o-phpstorm-no-wsl2-1f17</guid>
      <description>&lt;p&gt;Se você é um desenvolvedor PHP, já deve ter ouvido falar do PHPStorm, uma das IDEs (Integrated Development Environment) mais populares e poderosas para desenvolvimento em PHP. Desenvolvido pela JetBrains, o PHPStorm oferece uma ampla gama de recursos que podem melhorar significativamente a produtividade e a qualidade do código.&lt;/p&gt;

&lt;p&gt;Experienciando lentidão no PHPStorm no Windows? Execute-o no WSL2 e acelere seu desenvolvimento!&lt;/p&gt;

&lt;p&gt;Veja como é simples fazer a instalação do PHPStorm no WSL2 no Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primeiro vamos remover as instalações antigas
&lt;/h2&gt;

&lt;p&gt;Se for a primeira vez que instala, pode pular essa etapa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-Rf&lt;/span&gt; /opt/phpstorm&lt;span class="k"&gt;*&lt;/span&gt;
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-Rf&lt;/span&gt; /usr/bin/phpstorm
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; ~/.local/share/JetBrains
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; .config/JetBrains
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; .java/.userPrefs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Baixando uma versão do programa para Linux (Ubuntu)
&lt;/h2&gt;

&lt;p&gt;Nesse exemplo estou usando o link que obtive na última vez que fiz esse procedimento, mas você pode pegar o link da versão atual.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://download.jetbrains.com/webide/PhpStorm-2024.1.1.tar.gz &lt;span class="nt"&gt;-O&lt;/span&gt; phpstorm.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#  Descompactar o arquivo baixado&lt;/span&gt;
&lt;span class="nb"&gt;sudo tar &lt;/span&gt;vzxf phpstorm.tar.gz &lt;span class="nt"&gt;-C&lt;/span&gt; /opt/

&lt;span class="c"&gt;# Renomeie a pasta criada.&lt;/span&gt;
&lt;span class="nb"&gt;sudo mv&lt;/span&gt; /opt/PhpStorm&lt;span class="k"&gt;*&lt;/span&gt;/ /opt/phpstorm

&lt;span class="c"&gt;# Crie um atalho para facilitar a execução do programa;&lt;/span&gt;
&lt;span class="nb"&gt;sudo ln&lt;/span&gt; &lt;span class="nt"&gt;-sf&lt;/span&gt; /opt/phpstorm/bin/phpstorm.sh /usr/bin/phpstorm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Executando
&lt;/h2&gt;

&lt;p&gt;Agora basta chamar o comando &lt;code&gt;phpstorm&lt;/code&gt; no terminal para iniciar o editor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;phpstorm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Criando um atalho
&lt;/h2&gt;

&lt;p&gt;Você pode adicionar no alias para liberar o terminal se preferir.&lt;br&gt;
Dentro do arquivo de alias &lt;code&gt;.bash_aliases&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ...&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;phpS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'phpstorm $1 &amp;amp;&amp;gt; /dev/null &amp;amp;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>phpstorm</category>
      <category>wsl2</category>
      <category>linux</category>
    </item>
    <item>
      <title>Usando ffmpeg para converter vídeos em GIF e muitas outras coisas</title>
      <dc:creator>Fernando Valler</dc:creator>
      <pubDate>Mon, 17 Jun 2024 14:57:18 +0000</pubDate>
      <link>https://forem.com/fernandovaller/usando-ffmpeg-para-converter-videos-em-gif-e-muitas-outras-coisas-369d</link>
      <guid>https://forem.com/fernandovaller/usando-ffmpeg-para-converter-videos-em-gif-e-muitas-outras-coisas-369d</guid>
      <description>&lt;p&gt;O ffmpeg é um programa de linha de comando eficiente e fácil de usar. É usado para conversão, gravação, transmissão e reprodução de arquivos de áudio e vídeo. O ffmpeg é obrigatório para desenvolvedores, editores de vídeo e entusiastas de multimídia, pois suporta uma ampla variedade de formatos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como instalar (wsl2/Linux)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;ffmpeg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Como usar (wsl2/Linux)&lt;/strong&gt;&lt;br&gt;
A conversão de arquivos de vídeo com FFmpeg é simples e direta. Aqui estão alguns exemplos básicos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Converter um vídeo em &lt;code&gt;*.mp4&lt;/code&gt; para &lt;code&gt;*.gif&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 output.gif
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Veja que é possível usar vários outros tipos de saída com esse simples comando.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extrair o áudio de um vídeo&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="nt"&gt;-q&lt;/span&gt;:a 0 &lt;span class="nt"&gt;-map&lt;/span&gt; a output.mp3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-q:a 0&lt;/code&gt; define a qualidade de áudio para a melhor possível.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-map a&lt;/code&gt; seleciona apenas a faixa de áudio.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Redimensionar um vídeo&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="nt"&gt;-vf&lt;/span&gt; &lt;span class="nv"&gt;scale&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1280:720 output.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-vf scale=1280:720&lt;/code&gt; redimensiona o vídeo para 1280x720 pixels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Acelerar um vídeo&lt;/strong&gt;&lt;br&gt;
Vídeo de 10 minuto acelerado para 5 minutos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="nt"&gt;-filter&lt;/span&gt;:v &lt;span class="s2"&gt;"setpts=PTS/2"&lt;/span&gt; output.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-filter:v&lt;/code&gt; Indica que estamos aplicando um filtro ao vídeo. O &lt;code&gt;v&lt;/code&gt; especifica que o filtro é para o vídeo (e não para o áudio).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setpts&lt;/code&gt; é um filtro que ajusta os timestamps dos frames de vídeo (PTS - Presentation Time Stamp).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para acelerar um vídeo 4 vezes (reduzir a duração para 1/4 do tempo original), você pode usar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="nt"&gt;-filter&lt;/span&gt;:v &lt;span class="s2"&gt;"setpts=PTS/4"&lt;/span&gt; output.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Converter todos os arquivo em uma pasta para *.mp3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Você pode converter de uma maneira eficiente de converter múltiplos arquivos &lt;code&gt;*.m4a&lt;/code&gt; para &lt;code&gt;*.mp3&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.m4a | xargs &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="nt"&gt;-codec&lt;/span&gt;:a libmp3lame &lt;span class="nt"&gt;-q&lt;/span&gt;:a 2 &lt;span class="o"&gt;{}&lt;/span&gt;.mp3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso deseje é possível além de converter para &lt;code&gt;*.mp3&lt;/code&gt; aplicar uma normalização de áudio:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.m4a | xargs &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="nt"&gt;-codec&lt;/span&gt;:a libmp3lame &lt;span class="nt"&gt;-q&lt;/span&gt;:a 2 &lt;span class="nt"&gt;-af&lt;/span&gt; &lt;span class="nv"&gt;loudnorm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nt"&gt;-16&lt;/span&gt;:LRA&lt;span class="o"&gt;=&lt;/span&gt;11:TP&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nt"&gt;-1&lt;/span&gt;.5:print_format&lt;span class="o"&gt;=&lt;/span&gt;summary &lt;span class="o"&gt;{}&lt;/span&gt;.mp3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;FFmpeg é uma ferramenta essencial para qualquer pessoa que trabalhe com multimídia. Sua instalação é simples tanto no Windows quanto no Linux, e sua utilização oferece uma ampla gama de possibilidades para a conversão e manipulação de arquivos de áudio e vídeo. Explore as opções e comandos do FFmpeg para aproveitar ao máximo essa poderosa ferramenta!&lt;/p&gt;

&lt;p&gt;Esses são apenas alguns dos principais comandos que utilizo no dia a dia, veja que existem muitos outros recursos que você pode explorar e aplicar em suas tarefas.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
