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