No Microsoft Word 2013 no Windows 7, continuo encontrando uma marca de parágrafo estranha que não pode ser copiada e colada corretamente, o que causa todos os tipos de problemas. Infelizmente, não sei como produzir essa marca de parágrafo misteriosa, mas aqui está um arquivo que a contém: Marca de parágrafo misteriosa que não pode ser copiada.docx.zip (um arquivo DOCX compactado novamente para maior precisão).
A marca de parágrafo misteriosa aparece como uma rota normal (¶) quando eu faço o Microsoft Word exibir todos os caracteres não imprimíveis - exatamente como as marcas de parágrafo regulares. No entanto, ele se comporta de maneira estranha:
- Quando seleciono o texto inteiro e o copio e colo para, digamos, o Bloco de Notas, ele é substituído por um caractere de espaço simples.
- A marca de parágrafo misterioso pode ocorrer em arquivos DOCX ou DOC. Quando salvo o arquivo como RTF e o reabra com o MS Word, recebo um caractere de espaço. Quando eu salvo o arquivo como TXT, ele é convertido em uma nova linha normal.
- Quando eu uso a caixa de diálogo Substituir do MS Word para substituir todas as marcas de parágrafo ("^ p") por outra coisa, as marcas de parágrafo misteriosas não serão substituídas. Dessa forma, eles se assemelham à marca de parágrafo obrigatória no final de qualquer arquivo do MS Word.
Quando abro o arquivo com outros aplicativos, a maioria converte a marca de parágrafo misteriosa em nada; por exemplo, o TextEdit.app da Apple ou o antigo Microsoft Office Word Viewer:
Mas alguns o converterão em uma nova linha normal; por exemplo, LibreOffice:
Qual é essa marca de parágrafo misterioso? Como posso evitar isso?
Respostas:
Observando sua amostra .docx, a "marca de parágrafo misterioso" é representada por um
<w:cr/>
elemento, descrito no padrão ISO OOXML (por exemplo, ISO29500-2012 Parte 1) na seção 17.3.3.4 como cr (retorno de carro).A descrição resumida em "O comportamento de um retorno de carro no conteúdo da execução deve ser idêntica a um caractere de interrupção com tipo nulo e atributos claros, que devem terminar a linha atual e encontrar a próxima linha disponível na qual continuar".
Em outras palavras, ele deve se comportar como um avanço de linha rígida (e, na verdade, você não obtém o espaçamento normal de parágrafos após essa marca), mas o Word evidentemente o exibe da mesma maneira que uma marca de parágrafo. Normalmente, as marcas de parágrafo seriam exibidas no final de um elemento (Parágrafo) e talvez em alguns outros casos.
Uma pergunta é como você entra
<w:cr/>
no seu documento. Espero que haja várias maneiras, mas uma maneira de certamente fazer isso é usar Localizar / Substituir para substituir um caractere por "^13
" (com a opção de curinga desmarcada).Livrar-se deles não é fácil, porque se você tentar substituir ^ 13 por algo, o Word substituirá todas as marcas de parágrafo. Se você copiar / colar uma marca de parágrafo misteriosa na caixa "Localizar", o Word substituirá todos os espaços. Mesmo no VBA, parece que eles aparecem como caracteres "13" que não são fáceis de distinguir dos caracteres normais de marca de parágrafo.
No entanto, como uma primeira tentativa realmente grosseira de uma solução, o VBA a seguir parece funcionar em versões recentes do Windows Word:
fonte
Acredito que meu palpite estava correto, os caracteres do problema que você está vendo parecem ser um estilo * nix de nova linha (código ASCII: 0D) ou a versão da Apple (código ASCII: 0A), enquanto o Windows normalmente usa uma codificação combinada de nova linha , (Códigos ASCII: 0D 0A). Posso recriar o problema criando um arquivo de texto e editando manualmente os valores hexadecimais do arquivo para fornecer as novas linhas * nix. A abertura do arquivo de texto no Word mostra as novas linhas conforme o esperado e a tentativa de copiá-las no Bloco de Notas (++) as exibirá como espaços. Até os copiei no arquivo que você postou e o salvou, fechei o Word, reabri e tentei copiar e colar o texto, com os mesmos resultados. Outros programas que foram escritos para serem portáteis (LibreOffice, OpenOffice, provavelmente outros), têm a capacidade de usar os diferentes tipos de caracteres de nova linha, o que é mais provável por que eles '
Para se livrar deles, você provavelmente precisará usar o OpenOffice ou o LibreOffice e usar um regex para encontrá-los; no entanto, eles não estão sendo salvos como o valor hexadecimal 0D, então não tenho certeza de qual valor você deve usar para encontrar os caracteres.
fonte
A marca de caractere especial é o Marcador de recuo de parágrafo no Word. Para removê-lo, defina sua versão do word para não mostrar formatação. Como você faz isso é:
Link do MSDN para obter mais informações, se necessário
https://support.office.com/en-us/article/Show-or-hide-formatting-marks-c0460106-19d3-4441-986c-b655bffe6be4
fonte