1

Pitch: Crow Docs v22 — Atualizações e correções de bugs em todas as ferramentas

O** Crow Docs** é um toolkit gratuito e open-source de ferramentas para PDFs e documentos que roda inteiramente no navegador. Sem uploads, sem servidores processando seus arquivos, sem cadastro. É uma PWA que funciona offline depois da primeira visita — tudo acontece localmente no seu dispositivo.

O projeto oferece mais de 15 ferramentas: mesclar, dividir, comprimir, converter, assinar, traduzir, OCR, comparar, gerar booklet para encadernação, editar metadados, transformar Markdown em slides, imagem para PDF, PDF para áudio, PDF para PPTX, entre outras.

A versão 22 chegou com uma rodada grande de correções e melhorias. Vou listar o que mudou e por quê.

**O que mudou?
**

PDF para PPTX agora abre no PowerPoint

Essa foi a maior reescrita dessa versão. A exportação PPTX anterior gerava um arquivo que só abria corretamente no Google Slides. O PowerPoint rejeitava ou renderizava errado porque a estrutura OOXML estava incompleta.

A geração foi reescrita do zero: agora inclui theme, clrMap, txStyles, transforms em grpSpPr e docProps corretos. O resultado é um .pptx que abre sem erros tanto no PowerPoint Desktop quanto no Google Slides.

QR Code Pix corrigido

A ferramenta de gerar QR Code Pix usava um encoder custom que produzia códigos que algumas câmeras de celular não conseguiam ler. O encoder foi substituído pela lib qrcode-generator, que é amplamente testada. Agora escaneia corretamente com qualquer app de banco.

Comparar PDFs

Havia um bug onde páginas com dimensões diferentes geravam um ImageData incompatível, e o cálculo de porcentagem de diferença retornava NaN. Agora as dimensões são normalizadas antes da comparação.

Booklet (imposição para encadernação)

O algoritmo de saddle-stitch estava com a fórmula de imposição errada — as páginas saíam na ordem incorreta para dobrar e grampear. Foi completamente reescrito com a lógica correta de imposição.

Markdown para Slides

A regex que separava slides pelo divisor --- não lidava bem com espaços ao redor do separador nem com quebras de linha Windows (CRLF). Corrigido para aceitar ambos os formatos.

**Traduzir PDF
**
Parágrafos estavam sendo perdidos na tradução porque os blocos de texto eram unidos com join(' ') em vez de join('\n'). Uma linha de diferença que causava a perda de toda a estrutura de parágrafos.

Metadados PDF

O campo Keywords salvava todas as palavras-chave como uma string única. Agora faz split por vírgula e salva cada keyword individualmente, como a especificação PDF espera.

Assinar PDF

Adicionada proteção contra canvas null — em alguns cenários o elemento não estava pronto quando o código tentava acessá-lo, causando erro silencioso.

Organizar PDF

O arquivo de download usava um nome genérico em vez do nome original do PDF. Corrigido.

GIF no PDF

Quando o usuário adicionava um GIF, não havia indicação clara de que PDFs não suportam animação. Agora exibe um aviso explícito de que o GIF será inserido como imagem estática.

OCR e PDF para Áudio

Tratamento de erros melhorado em 6 pontos diferentes do fluxo. Antes, mensagens de erro apareciam como "undefined" quando algo falhava. Agora cada falha tem uma mensagem descritiva.

Regex de cabeçalho/rodapé

Um typo na regex impedia o reconhecimento correto da palavra "Página" ao processar cabeçalhos e rodapés.

i18n

Três painéis não estavam sendo traduzidos corretamente: searchablepdf, metadata e md2slides. Corrigido o mapeamento de chaves de tradução.

Stack técnica

O Crow Docs é escrito em Vanilla JS, sem frameworks. As dependências incluem pdf-lib, jsPDF, PDF.js, Tesseract.js, JSZip, mammoth, docx, html2canvas, marked e qrcode-generator. Todas as libs ficam em /libs/ e são servidas localmente — é isso que permite o funcionamento offline completo.

**Feedback da comunidade
**

Vale mencionar que as correções do PPTX e do GIF vieram diretamente de um e-mail de usuário que relatou os problemas. Esse tipo de retorno é o que mantém o projeto evoluindo.

O Crow Docs é gratuito e aberto a sugestões. Se encontrar um bug ou tiver uma ideia de ferramenta, o canal está aberto.

Carregando publicação patrocinada...