É incomum que as pessoas queiram imprimir edições”TNGD”, então fiquei surpreso quando Lauri Reinhardt, que nos ajuda com suporte, me encaminhou uma mensagem de um leitor perguntando se havia uma maneira de imprimir a edição de e-mail de”TNGD”com todas as imagens. Nenhum de nós jamais tentou fazer isso, mas o leitor estava totalmente correto: imprimir uma edição”TNGD”ou exportá-la para PDF resultou em caixas em branco no lugar das imagens.

“TNGD”#1648 em PDF na pré-visualização — nenhuma imagem está carregando

Ajustar a configuração de atividade de proteção de email do Mail não fez diferença e as imagens apareceram bem na própria mensagem — não estava relacionado ao carregamento conteúdo remoto. Ainda mais confuso foi o fato de que Mimestream, que eu uso com o Gmail, sofria do mesmo problema, mas apenas no macOS 12 Monterey, não no macOS 13Ventura. A impressão a partir da interface da Web do Gmail também funcionou bem.

Uma olhada na fonte bruta de nossos problemas revelou uma arma fumegante: um atributo loading=”lazy”para cada tag IMG em artigos. Os banners do patrocinador no topo da edição não tinham esse atributo e apareciam em PDFs bem. Curioso, procurei o desenvolvedor do Mimestream, Neil Jhaveri, que costumava trabalhar no Mail na Apple. Ele disse que o Mail gera uma visualização da web fora da tela, aguarda a chegada da parte “carregar” do documento e depois “imprime”. Mas loading=”lazy”faz com que as imagens carreguem apenas quando roladas para exibição, o que nunca acontece com a impressão. O Mimestream compartilhou o problema, pelo menos em Monterey, porque usa o WebKit para impressão, assim como o Mail. Neil recomendou descartar o atributo loading=”lazy”porque ele não achava que as imagens (pelo menos aquelas com atributos de largura e altura) bloqueariam a renderização da página até que ela fosse carregada de qualquer maneira.

Durante essas conversas, Lauri encontrou uma solução alternativa que faz sentido no contexto da explicação de Neil. Ela postulou que talvez as imagens fossem muito grandes para carregar, então ela tentou reduzi-las com a opção Scaling na caixa de diálogo Imprimir, o que fez com que pelo menos algumas imagens fossem exibidas. Fiz testes e descobri que, se alterasse a porcentagem de dimensionamento para 99%, algumas imagens seriam carregadas-mas ficariam confusas-e outras permaneceriam em branco. No entanto, se eu alterasse a porcentagem de dimensionamento com mais seriedade, como para 87%, e depois percorresse toda a visualização do documento, todas as imagens apareceriam com nitidez no PDF resultante, mesmo que posteriormente eu retornasse o dimensionamento para 100%. Presumivelmente, pedir à caixa de diálogo Imprimir para dimensionar a saída forçou o WebKit a carregar todas as imagens, permitindo que elas apareçam.

Quando pedi ao nosso desenvolvedor Eli Van Zoeren para remover o atributo loading=”lazy”de as tags IMG, ele observou que o WordPress inseriu automaticamente, então ele adicionou um filtro para removê-lo das versões de e-mail de nossos problemas. (Seu código adiciona os banners do patrocinador ao problema separadamente, e é por isso que eles não têm esse atributo.) Fiquei animado para testar a correção com o problema da próxima semana, apenas para ficar desapontado ao descobrir que o problema não havia desaparecido. Descobriu-se que, depois que Eli filtrou loading=”lazy”, o WordPress o substituiu por um atributo com som semelhante decoding=”async”. Após outra rodada de Whack-an-Attribute, o problema desapareceu para sempre.

“TNGD”#1649 em PDF na visualização—as imagens foram carregadas corretamente

Portanto, embora eu não recomende a impressão de problemas”TNGD”—não os formatamos para impressão e eles vai consumir um pouco de papel-você pelo menos verá as imagens agora. Curiosamente, ambas as capturas de tela acima têm páginas em branco extras no final. Não sei por que o Mail os adiciona, mas recomendo removê-los. Escolha Arquivo > Exportar para PDF, abra o arquivo em Visualização, selecione as páginas em branco (e quaisquer outras páginas desnecessárias) na barra lateral e exclua-as antes de imprimir.

Duvido muito que muitas pessoas tenham sido afetadas por este problema, mas pelo menos um leitor”TNGD”ficará mais feliz e, com sorte, outros que se depararem com um problema semelhante encontrarão este artigo e descobrirão como resolvê-lo mais rapidamente.

By Henry Taylor

Eu trabalho como desenvolvedor back-end. Alguns de vocês devem ter me visto na conferência de desenvolvedores. Ultimamente tenho trabalhado em um projeto de código aberto.