1. Produtos
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

Biblioteca Go Gratuita para Converter Documentos HTML em Texto

HTML2Text é uma Biblioteca Go de Código Aberto Muito Simples que Pode Transformar Marcação HTML em Texto Simples Legível por Humanos dentro de Aplicativos Go.

Na paisagem digital atual, o conteúdo precisa ser acessível em vários formatos e plataformas. HTML2Text é uma poderosa biblioteca Go criada por Jay Taylor que resolve um desafio fundamental: converter conteúdo HTML em texto simples legível e bem formatado. Originalmente desenvolvida para garantir que e‑mails em HTML permaneçam legíveis por todos os destinatários — incluindo aqueles com clientes que desativam HTML ou necessidades de acessibilidade — esta biblioteca evoluiu para se tornar uma ferramenta versátil para desenvolvedores que trabalham com transformação de conteúdo.

A biblioteca transforma estruturas HTML complexas, incluindo tabelas, listas e links, em texto simples com sabor de markdown, mantendo a estrutura lógica e a legibilidade. Existem vários recursos importantes da biblioteca, como conversão inteligente de HTML para Texto, renderização de tabelas com formatação elegante, opções de conversão personalizáveis, interface de linha de comando, entre outros. O HTML2Text é escrito em Go puro sem dependências externas, tornando‑o rápido para documentos HTML típicos, eficiente em memória com design amigável a streaming e thread‑safe para uso concorrente em servidores web. Com sua API simples, opções flexíveis e histórico comprovado em milhares de projetos, o HTML2Text merece um lugar em seu toolkit Go.

Previous Next

Começando com HTML2Text

A maneira recomendada e mais fácil de instalar o HTML2Text é usando o GitHub. Por favor, use o comando a seguir para uma instalação tranquila.

Instale a Biblioteca HTML2Text via GitHub

go get jaytaylor.com/html2text

A biblioteca requer Go 1.x ou superior e não tem dependências externas, mantendo seu projeto leve. Você também pode instalá‑la manualmente; baixe os arquivos de lançamento mais recentes diretamente do repositório GitHub.

Conversão básica de HTML para texto via Go

A biblioteca de código aberto HTML2Text facilita para desenvolvedores de software carregar e converter arquivos HTML para formato de texto dentro de suas aplicações Go. O HTML2Text não apenas remove tags — ele interpreta inteligentemente a estrutura HTML para produzir saída legível por humanos, com compreensão semântica de cabeçalhos, parágrafos e listas, preservação de links com URLs exibidas entre parênteses após o texto do link, normalização de espaços em branco que mantém a legibilidade sem quebras de linha excessivas, suporte a codificação de caracteres incluindo UTF-8 com BOM (Byte Order Mark). Aqui está um exemplo completo de uso da biblioteca que permite carregar e converter HTML para formato de texto dentro de aplicações Go.

Como converter conteúdo HTML simples para formato de texto usando a biblioteca Go?

package main

import (
    "fmt"
    "jaytaylor.com/html2text"
)

func main() {
    html := `
        

Bem-vindo ao nosso serviço

Confira nossa página de recursos para mais informações sobre o que oferecemos.

  • Suporte 24/7
  • Teste Gratuito
  • Planos Empresariais
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

Renderização de tabela com formatação elegante

Uma das principais características do HTML2Text é sua capacidade de renderizar tabelas HTML como tabelas de texto baseadas em ASCII. Tabelas em texto simples normalmente se transformam em uma sopa de dados confusa. O recurso PrettyTables preserva a estrutura tabular usando arte ASCII, tornando dados numéricos, tabelas de preços ou gráficos comparativos legíveis em qualquer contexto. Elas são perfeitas para relatórios automatizados enviados por e‑mail, saída de ferramentas de linha de comando ou notificações por SMS onde a estrutura dos dados é importante. O exemplo de código a seguir mostra como desenvolvedores de software podem converter uma tabela HTML em uma tabela ASCII formatada usando comandos Go.

Como converter tabela HTML para tabela ASCII formatada usando Go?

func sendMonthlyReport(userEmail string, metricsHTML string) {
    // Convert HTML table to formatted ASCII table
    textReport, _ := html2text.FromString(metricsHTML, html2text.Options{
        PrettyTables: true, // Preserves table structure visually
    })
    
    // Even in plain text, the data remains organized:
    // +----------------+-----------+
    // | METRIC         | VALUE     |
    // +----------------+-----------+
    // | Page Views     | 24,589    |
    // | Conversion Rate| 2.4%      |
    // +----------------+-----------+
    
    sendEmail(userEmail, "Monthly Report", textReport)
}

Geração de fallback de email via biblioteca Go

Um dos casos de uso mais comuns para o HTML2Text é converter modelos de e‑mail em HTML para seus equivalentes em texto simples. Os clientes de e‑mail variam amplamente em suas capacidades de renderização de HTML. Alguns usuários preocupados com segurança desativam o HTML completamente, enquanto clientes mais antigos ou leitores de tela para usuários com deficiência visual costumam funcionar melhor com texto simples. Fornecer uma alternativa em texto não é apenas uma boa prática—é essencial para acessibilidade e entregabilidade. Ao gerar automaticamente versões de texto simples sincronizadas, você garante que todos os destinatários possam ler seu conteúdo, reduz disparos de filtros de spam e cumpre padrões de acessibilidade como o WCAG.

Como gerar um fallback em texto simples de uma mensagem de email usando a biblioteca Go?

func sendTransactionalEmail(userEmail, htmlContent string) error {
    // Generate plain text fallback
    textContent, err := html2text.FromString(htmlContent, html2text.Options{})
    if err != nil {
        return fmt.Errorf("failed to create text alternative: %v", err)
    }
    
    // Send multipart email (both HTML and text)
    email := &Email{
        To: userEmail,
        HTMLBody: htmlContent,
        TextBody: textContent, // Critical for users with HTML disabled
    }
    
    return emailService.Send(email)
}

Trabalhando com links durante a conversão de HTML para texto

A biblioteca HTML2Text incluiu suporte completo para lidar com links durante a conversão de HTML para texto. Links são particularmente importantes no conteúdo HTML, e o html2text garante que tanto o texto do link quanto a URL sejam preservados. O texto do link é exibido normalmente, enquanto a URL real é acrescentada entre parênteses, garantindo que os leitores da versão em texto simples ainda possam acessar os recursos vinculados. O exemplo a seguir demonstra como alcançar isso.

Como gerenciar links ao converter HTML para texto em aplicativos Go?

package main

import (
    "fmt"
    "log"
    
    "jaytaylor.com/html2text"
)

func main() {
    htmlContent := `
    
        
            

Confira nosso catálogo de produtos ou visite nossa página de suporte.

` text, err := html2text.FromString(htmlContent) if err != nil { log.Fatal(err) } fmt.Println(text) }
 Português