Html2canvas: word-wrap:break-word não está funcionando

Criado em 25 ago. 2015  ·  23Comentários  ·  Fonte: niklasvh/html2canvas

word- wrap:break-word não funciona quando o texto é muito longo sem espaços em branco.

como <div style=" width:30px;height :100px;word- wrap:break-word; ">aaaaaaaaaaaaaaa</div>

Feature

Comentários muito úteis

Eu tinha resolvido.

mudança

var textList = (!this.options.letterRendering || noLetterSpacing(container)) && !hasUnicode(container.node.data) ? getWords(characters) : characters.map(function(character) {
   return punycode.ucs2.encode([character]);
});

para

var textList = characters.map(function(character) {
  return punycode.ucs2.encode([character]);
});

Todos 23 comentários

Você está realmente usando word- wrap:break-work? Isso é muito ruim quando transforma papagaio em papagaio ou adoração em malditos, por exemplo. Ainda não encontrei um uso utilizável para isso, mas é tentador quando não existe max-font ou force down to size em css.

Eu sei, mas esta função é muito necessária para o meu serviço.

A visão do usuário é
aaa
aaa
aaa
Mas a imagem capturada é
aaaaaaaaaaaaaaaa

É muito ambíguo para os usuários.

Estamos com esse problema. Estamos usando um editor de html/texto que usa break-word quando uma palavra é maior que a largura disponível e precisa ser quebrada automaticamente. A renderização que vemos depois de usar html2canvas com letterRendering ativado não corresponde. Muitas vezes, a linha de texto é renderizada uma linha abaixo do que deveria, sem qualquer quebra.

também estamos enfrentando o mesmo problema.

@savokiss você pode criar uma solicitação pull que substitui automaticamente se a opção for especificada?

Eu posso ter respondido o problema errado, aqui está a minha solução # 83
@hanc1208 Minha solução é para o problema acima e não precisa editar o código-fonte deste repositório.

tenho a mesma pergunta

Alguma novidade sobre este assunto? Usei, para testar, a última versão do arquivo html2canvas.js e continuo com o mesmo problema :(

Eu queria realmente testar esse problema e, de fato, parece ser reproduzido mesmo com o console de teste na página oficial. Criei uma página muito simples, localizada em http://mariusbike83.wix.com/test1. Esta página contém apenas alguns campos e uma área de texto com uma string muito longa (sem espaços para dividi-la). Quando isso é renderizado com a biblioteca html2canvas, você notará que a string é de uma linha.

Alguém encontrou a solução para este problema?

(Btw, o console de teste oficial está localizado em https://html2canvas.hertzen.com/screenshots.html e certifique-se de desmarcar a caixa de seleção "Desativar javascript")

Para meu aplicativo, fiz downgrade de 0.5.0-alpha1 para v0.4.1 e pareceu funcionar, então vou usar essa versão. Eu não testei completamente, mas com certeza longas seqüências de caracteres embrulhados corretamente. Tente isso para ver se resolve o problema; embora outros bugs possam ser introduzidos no processo devido a grandes diferenças nas versões.

que tal quebrar manualmente cada caractere com tag span por jquery?

letterRendering definido como true funcionou para mim ....
documentos de opções do html2canvas: https://html2canvas.hertzen.com/documentation.html

Não há como resolver esse problema sem usar v0.4.1 ...?

Oi @SatoshiKawabata , você tentou usar a opção letterRendering: true sugerida por @wayrex?

@eKoopmans Eu tentei isso, mas também não funcionou.

@eKoopmans @SatoshiKawabata Posso confirmar que no beta te letterRendering também não funciona. Parece que na versão 0.4.1 mais antiga funciona, mas na versão beta não.

@gelinger777 Eu quero usar isso por npm então adicionei um problema #1143. Eu deveria esperar.

Eu tinha resolvido.

mudança

var textList = (!this.options.letterRendering || noLetterSpacing(container)) && !hasUnicode(container.node.data) ? getWords(characters) : characters.map(function(character) {
   return punycode.ucs2.encode([character]);
});

para

var textList = characters.map(function(character) {
  return punycode.ucs2.encode([character]);
});

@love-everyday você deveria fazer um PR

@CodyMoore240 Já foi resolvido em 1.0.0-alpha.1

Obrigado vou bifurcar.

Eu consertei adicionando <i></i> antes que a palavra precisasse ser quebrada, e parece

<p class="punch-card-info-word">
         <i></i>statutestatutestatutestatutestatutestatutestatutestatutestatutestatutestatutestatute
</p>

Esta edição começou há 5 anos... e contando:
Gostaria de compartilhar com o mundo que encontrei uma maneira de contornar esse bug irritante,
Eu peguei o texto de uma entrada textarea:

var txt = modal_dialog_text_area_input.value;
em seguida, substituí cada espaço em branco pela marcação a seguir, para preservar os espaços em branco. O que o html2canvas não consegue fazer e por que nos encontramos às 3:00 da manhã aqui, em vez de na cama:

paragraphElement.innerHTML = txt.replace(/\s/g, '<span> </span>');

Agora o parágrafo parece bom e a captura de tela que o html2canvas tira está OK.

Outra coisa: o elemento de parágrafo deve ter as seguintes regras de CSS:

    word-break: break-word;
    white-space: normal;

Cuidem-se vocês

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

yasergh picture yasergh  ·  5Comentários

celik75 picture celik75  ·  4Comentários

rrutkows picture rrutkows  ·  4Comentários

Josh10101010 picture Josh10101010  ·  3Comentários

stevencherry1 picture stevencherry1  ·  3Comentários