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 na v22
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.
Fonte: https://crowdocs.com.br