Formato de texto rico - Rich Text Format

Formato de texto rico
Extensão de nome de arquivo
.rtf
Tipo de mídia da Internet
text / rtf
application / rtf
Digite o código 'RTF.'
Identificador de tipo uniforme (UTI) public.rtf
número mágico {\rtf
Desenvolvido por Microsoft
lançamento inicial 1987 ; 34 anos atrás ( 1987 )
Último lançamento
1.9.1
(19 de março de 2008 ; 13 anos atrás ) ( 19/03/2008 )
Tipo de formato Formato de arquivo de documento
Formato aberto ? Não

O Rich Text Format (geralmente abreviado como RTF ) é um formato de arquivo de documento proprietário com especificações publicadas, desenvolvido pela Microsoft Corporation de 1987 a 2008 para intercâmbio de documentos de plataforma cruzada com produtos Microsoft. Antes de 2008, a Microsoft publicou especificações atualizadas para RTF com revisões importantes das versões do Microsoft Word e Office .

A maioria dos processadores de texto são capazes de ler e escrever algumas versões de RTF. Existem várias revisões diferentes da especificação RTF; a portabilidade dos arquivos dependerá de qual versão do RTF está sendo usada.

RTF não deve ser confundido com texto enriquecido ou seu antecessor Rich Text, nem com RFT-DCA (Arquitetura de Conteúdo de Documento de Texto em Formato Revisável) da IBM , pois são especificações diferentes.

História

Richard Brodie , Charles Simonyi e David Luebbert, membros da equipe de desenvolvimento do Microsoft Word , desenvolveram o RTF original entre meados e o final dos anos 1980. O primeiro leitor e gravador RTF lançado em 1987 como parte do Microsoft Word 3.0 para Macintosh , que implementou a especificação RTF versão 1.0. Todas as versões subsequentes do Microsoft Word para Macintosh, bem como todas as versões do Windows, podem ler e gravar no formato RTF.

A Microsoft mantém RTF. A versão final foi 1.9.1 em 2008, que implementou recursos do Office 2007 . A Microsoft descontinuou os aprimoramentos da especificação RTF, portanto, os recursos novos do Word 2010 ou uma versão posterior não serão salvos corretamente no RTF. A Microsoft não prevê mais atualizações para o RTF, mas declarou a disposição de considerar as modificações editoriais e outras modificações não substanciais da Especificação do RTF durante um período de votação ISO / IEC 29500 associado .

Arquivos RTF eram usados ​​para produzir arquivos de Ajuda do Windows , embora tenham sido substituídos por arquivos de Ajuda HTML compilados da Microsoft .

Especificações RTF para Microsoft Word
Versão RTF Data de publicação Versão Microsoft Word Data de lançamento do MS Word Notas
1.0 1987 Microsoft Word 3 1987 A revisão mais recente veio em junho de 1992. A revisão de 1992 definiu o suporte para objetos Microsoft Object Linking and Embedding (OLE) e objetos de assinante do Macintosh Edition Manager. Ele também suportou a inclusão de metarquivo do Windows , PICT , bitmap dependente de dispositivo do Windows, bitmap independente de dispositivo do Windows e tipos de imagem de metarquivo OS / 2 em RTF.
1,1 Microsoft Word 4 1989 Permitido para incorporação de fonte , o que permite que os dados da fonte sejam localizados dentro do arquivo.
1,2 1993 Microsoft Word 5 1991
1,3 Janeiro de 1994 Microsoft Word 6 1993 1/94 GC0165; para independência de dispositivo e interoperabilidade, incentiva a incorporação de bitmaps em metarquivos do Windows , em vez de usar bitmaps independentes de dispositivo do Windows ou bitmaps dependentes de dispositivo do Windows.
1,4 Setembro de 1995 Microsoft Word 95 / Word 7 1995
1,5 Abril de 1997 Microsoft Word 97 / Word 8 1997 Introduzido Unicode RTF, que oferece suporte ao esquema de codificação de caracteres Unicode de 16 bits; inclusão definida de tipos de imagem PNG , JPEG e EMF em formato hexadecimal (o padrão) ou binário em um arquivo RTF. Também continha uma especificação RTF local japonesa chamada RTF-J para a versão japonesa do Word; RTF-J é um pouco diferente da especificação RTF padrão.
1,6 Maio de 1999 Microsoft Word 2000 / Word 9 1999 Inclui Pocket Word e Exchange (usado em conversões RTF-HTML).
1,7 Agosto de 2001 Microsoft Word 2002 / Word 10 2001 8/2001 - Especificação RTF do Word 2002
1.8 Abril de 2004 Microsoft Word 2003 / Word 11 2003 10/2003 - Especificação RTF do Word 2003
1.9.1 19. março de 2008
(RTF 1.9 - publicado em janeiro de 2007)
Microsoft Word 2007 / Word 12 2006 Marcação XML permitida - Tags XML personalizadas, SmartTags , elementos matemáticos em um documento RTF, proteção por senha, elementos correspondentes ao Office Open XML Ecma-376 Parte 4

Sintaxe de código

A sintaxe do RTF foi influenciada pela linguagem de composição do TeX . É programado com grupos, barra invertida, palavra de controle e delimitador. Os grupos estão contidos entre chaves ({}) e indicam quais atributos devem ser aplicados a determinado texto.

A barra invertida (\) introduz uma palavra de controle, que é um comando programado especificamente para RTF. As palavras de controle podem ter certos estados nos quais estão ativas. Esses estados são representados por números. Por exemplo,

\b0
indica que o texto em negrito está desativado
\b1
indica que o texto em negrito está ativado

Um delimitador é uma das três coisas:

  1. Um espaço
  2. Um dígito ou hífen (por exemplo, -23, 23, 275)
  3. Um caractere diferente de um dígito ou letra (por exemplo, \, /,})

Por exemplo, o seguinte código RTF

 {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
 This is some {\b bold} text.\par
 }

seria processado da seguinte forma:

Este é um texto em negrito .

Codificação de caracteres

Um arquivo RTF padrão pode consistir apenas em caracteres ASCII de 7 bits , mas pode usar sequências de escape para codificar outros caracteres. Os dois escapes de caractere são escapes de página de código e, começando com RTF 1.5, escapes Unicode . Em um escape de página de código, dois dígitos hexadecimais após uma barra invertida e um apóstrofo de máquina de escrever denotam um caractere obtido de uma página de código do Windows. Por exemplo, se a página de código estiver configurada para Windows-1256 , a sequência \'c8codificará a letra árabe bāʼ ب. Também é possível especificar um "Conjunto de caracteres" no preâmbulo do documento RTF e associá-lo a um cabeçalho. Por exemplo, o preâmbulo contém o texto \f3\fnil\fcharset128, então, no corpo do documento, o texto \f3\'bd\'f0representará o ponto de código 0xbd 0xf0 do Conjunto de caracteres 128 (que corresponde à página de código Shift-JIS), que codifica "金".

Conjunto de caracteres RTF Página de código Descrição
0 Windows-1252 Alfabeto latino, Europa Ocidental / Américas
1 0 Página de código padrão da API do Windows para local do sistema
2 42 Conjunto de caracteres de símbolos ( mapeados por PUA )
77 2 Página de código padrão de compatibilidade com Macintosh para local do sistema
128 Windows-932 Japonês, Shift JIS (versão Windows)
129 Windows-949 Coreano, Código Hangul Unificado (Wansung estendido)
130 Windows-1361 Coreano, Johab (versão baseada em ASCII)
134 Windows-936 Chinês, GBK (estendido GB 2312 )
136 Windows-950 Chinês, Big5
161 Windows-1253 grego
163 Windows-1254 Alfabeto latino, turco
177 Windows-1258 Alfabeto latino, vietnamita
178 Windows-1255 hebraico
186 Windows-1256 árabe
204 Windows-1257 báltico
222 Windows-1251 cirílico
238 Windows-1250 Alfabeto latino, Europa Oriental
255 1 Página de código OEM padrão para local do sistema

Para um escape Unicode, a palavra de controle \ué usada, seguida por um inteiro assinado de 16 bits que corresponde ao número da unidade de código Unicode UTF-16. Para o benefício de programas sem suporte a Unicode, isso deve ser seguido pela representação mais próxima desse caractere na página de código especificada. Por exemplo, \u1576?forneceria a letra árabe bāʼ ب, mas indica que os programas mais antigos que não suportam Unicode devem renderizá-la como um ponto de interrogação.

A palavra de controle \uc0pode ser usada para indicar que as sequências de escape Unicode subsequentes no grupo atual não especificam o caractere de substituição.

Até o lançamento da especificação RTF versão 1.5 em 1997, o RTF tratava apenas caracteres de 7 bits diretamente e caracteres de 8 bits codificados como hexadecimais (usando \'xx). Desde RTF 1.5, entretanto, as palavras de controle RTF geralmente aceitam números com sinal de 16 bits como argumentos. Os valores Unicode maiores que 32767 devem ser expressos como números negativos. Se um caractere Unicode estiver fora do BMP , ele será codificado com um par substituto. O suporte para Unicode foi feito devido a alterações de manipulação de texto no Microsoft Word - o Microsoft Word 97 é um aplicativo parcialmente habilitado para Unicode e lida com texto usando o esquema de codificação de caracteres Unicode de 16 bits . Microsoft Word 2000 e versões posteriores são aplicativos habilitados para Unicode que manipulam texto usando o esquema de codificação de caracteres Unicode de 16 bits.

Como os arquivos RTF geralmente são texto simples ASCII de 7 bits , eles podem ser facilmente transmitidos entre sistemas operacionais baseados em PC. Os conversores que se comunicam com o Microsoft Word para MS Windows ou Macintosh geralmente esperam transferência de dados como caracteres de 8 bits e dados binários que podem conter quaisquer valores de 8 bits.

Legibilidade humana

RTF é um formato de dados para salvar e compartilhar documentos, não uma linguagem de marcação ; não se destina a uma digitação fácil e intuitiva. No entanto, ao contrário de muitos formatos de processamento de texto, o código RTF pode ser legível por humanos . Quando um arquivo RTF contendo principalmente caracteres latinos sem diacríticos é visto como um arquivo de texto simples, o texto ASCII subjacente é legível, desde que o autor tenha mantido a formatação concisa.

Quando o RTF foi lançado, a maioria dos processadores de texto usava formatos de arquivo binários; O Microsoft Word, por exemplo, usava o formato de arquivo .DOC . O RTF era único em seu controle de formatação simples, que permitia que programas não compatíveis com RTF, como o Bloco de notas da Microsoft, abrissem e fornecessem arquivos legíveis. Hoje, a maioria dos processadores de texto mudou para formatos de arquivo baseados em XML (o Word mudou para o formato de arquivo .docx ). Independentemente disso, esses arquivos contêm grandes quantidades de código de formatação, portanto, geralmente são dez ou mais vezes maiores do que o texto simples correspondente.

Para ser RTF compatível com o padrão, caracteres não ASCII devem ter escape. Assim, mesmo com uma formatação concisa, o texto que usa certos travessões e aspas fica menos legível. Línguas latinas com muitos diacríticos são particularmente difíceis de ler em RTF, pois resultam em substituições como \ 'f1 para ñ e \' e9 para é . Scripts não latinos são ilegíveis em RTF - \ u21563, por exemplo, é usado para. Desde o início, o RTF também oferece suporte a objetos incorporados Microsoft OLE e objetos de assinante do Macintosh Edition Manager, que não são legíveis por humanos.

Usos comuns e interoperabilidade

A maioria dos softwares de processamento de texto suporta importação e exportação de formato RTF para alguma especificação RTF ou edição direta, o que o torna um formato "comum" entre softwares de processamento de texto e sistemas operacionais incompatíveis. A maioria dos aplicativos que lêem arquivos RTF ignoram silenciosamente palavras de controle RTF desconhecidas. Esses fatores contribuem para sua interoperabilidade , embora ainda dependa da versão RTF específica em uso. Existem vários dialetos RTF projetados conscientemente ou acidentalmente criados.

RTF é a linguagem de marcação interna usada pelo Microsoft Word. Desde 1987, os arquivos RTF podem ser transferidos para frente e para trás entre muitos sistemas de computador antigos e novos (e agora pela Internet), apesar das diferenças entre os sistemas operacionais e suas versões. Isso o torna um formato útil para documentos de texto formatados básicos, como manuais de instrução, currículos, cartas e documentos de informação modestos. Esses documentos, no mínimo, suportam formatação de texto em negrito, itálico e sublinhado. Normalmente, também são suportados textos alinhados à esquerda, centro e direita, especificação de fonte e margens do documento.

Os padrões de fonte e margem, predefinições de estilo e outras funções variam de acordo com os padrões do programa. Também pode haver incompatibilidades entre diferentes versões de RTF, por exemplo, entre RTF 1.0 1987 e especificações posteriores, ou entre RTF 1.0-1.4 e RTF 1.5+ no uso de caracteres Unicode. E embora o RTF suporte metadados como título e autor, nem todas as implementações suportam isso. No entanto, o formato RTF é consistente o suficiente para ser considerado altamente portátil e aceitável para uso em plataforma cruzada .

Objetos

Os objetos OLE (Object Linking and Embedding) da Microsoft e os objetos de assinantes do Macintosh Edition Manager permitem a incorporação de outros arquivos dentro do RTF, como tabelas ou gráficos de aplicativos de planilha. No entanto, como esses objetos não são amplamente suportados em programas para visualizar ou editar arquivos RTF, eles também limitam a interoperabilidade do RTF. Se um software que entende um objeto OLE não estiver disponível, o objeto é geralmente substituído por uma representação de bitmap do objeto (ou seja, uma imagem) ou não é exibido.

Fotos

O RTF suporta a inclusão de JPEG, PNG, Metarquivo aprimorado (EMF), Metarquivo do Windows (WMF), Apple PICT, bitmap dependente de dispositivo do Windows, bitmap independente de dispositivo do Windows e tipos de imagem OS / 2 Metafile em hexadecimal (o padrão) ou formato binário em um arquivo RTF. No entanto, nem todos esses tipos de imagem são compatíveis com todos os leitores RTF. Quando um documento RTF é aberto em um software que não suporta o tipo de imagem de uma imagem inserida, a imagem não é exibida. Os gravadores RTF geralmente convertem uma imagem inserida em um tipo de imagem não suportado para um em um tipo de imagem suportado ou não incluem a imagem de todo.

Para melhor compatibilidade com produtos Microsoft, alguns gravadores RTF incluem a mesma imagem em dois tipos diferentes de imagem em um arquivo RTF: um tipo de imagem compatível para exibição e uma cópia WMF não compactada da imagem original para melhorar a compatibilidade com alguns aplicativos da Microsoft como o Wordpad.

Este método aumenta drasticamente o tamanho do arquivo RTF. A especificação RTF não requer este método, e várias implementações não incluem a cópia WMF (por exemplo, Abiword ou Ted).

Para o Microsoft Word, também é possível definir um valor de registro específico ("ExportPictureWithMetafile = 0") para evitar que o Word salve a cópia WMF.

Fontes

O RTF suporta a incorporação de fontes usadas no documento, mas esse recurso não é amplamente suportado em implementações de software.

O RTF também oferece suporte a nomes de famílias de fontes genéricas usados ​​para substituição de fontes : romana ( serif ), suíça ( sans-serif ), moderna ( monoespaçada ), escrita , decorativa e técnica . Este recurso também não é amplamente suportado.

Anotações

Desde RTF 1.0, a especificação RTF oferece suporte a anotações / comentários de documentos. A especificação RTF 1.7 definiu alguns novos recursos para anotações, incluindo o carimbo de data (anteriormente havia apenas "carimbo de hora") e pais das anotações. Quando um documento RTF com anotações é aberto em um aplicativo que não suporta anotações RTF, as anotações não são mostradas. Da mesma forma, quando um documento com anotações é salvo como RTF em um aplicativo que não oferece suporte a anotações RTF, as anotações não são preservadas no arquivo RTF. Algumas implementações, como Abiword (desde a versão 2.8) e IBM Lotus Symphony (até a versão 1.3), podem ocultar anotações por padrão ou exigir alguma ação do usuário para exibi-las.

A especificação RTF também suporta notas de rodapé, que são amplamente suportadas em implementações RTF (por exemplo, no OpenOffice.org, Abiword, KWord, Ted, mas não no Wordpad). As notas de fim são implementadas como uma variação das notas de rodapé, de modo que os aplicativos que suportam notas de rodapé, mas não notas de fim, irão renderizar uma nota de rodapé como uma nota de rodapé.

Os produtos da Microsoft não oferecem suporte a comentários em rodapés, notas de rodapé ou cabeçalhos. Da mesma forma, os produtos da Microsoft não oferecem suporte a notas de rodapé em cabeçalhos, rodapés ou comentários. Inserir um comentário ou nota de rodapé em um desses contextos não permitidos pode resultar em um documento corrompido.

Objetos de desenho

A especificação RTF 1.2 definiu o uso de objetos de desenho, conhecidos como formas, como retângulos, elipses, linhas, setas e polígonos. A especificação RTF 1.5 introduziu muitas novas palavras de controle para objetos de desenho.

No entanto, muitas implementações RTF, como Apache OpenOffice , não suportam objetos de desenho (embora sejam suportados no LibreOffice 4.0 em diante) ou Abiword. Os aplicativos que não oferecem suporte a objetos de desenho RTF não exibem nem salvam as formas. Algumas implementações também não exibirão nenhum texto dentro dos objetos de desenho.

Preocupações com segurança

Ao contrário do formato DOC do Microsoft Word, bem como dos formatos Office Open XML e OpenDocument mais recentes , o RTF não oferece suporte a macros . Por esse motivo, o RTF era frequentemente recomendado em vez desses formatos quando a disseminação de vírus de computador por meio de macros era uma preocupação. No entanto, ter a extensão .RTF não garante um arquivo seguro, já que o Microsoft Word abrirá arquivos DOC padrão renomeados com uma extensão RTF e executará quaisquer macros contidas como de costume. O exame manual de um arquivo em um editor de texto simples, como o Bloco de notas , ou o uso do filecomando em sistemas semelhantes ao UNIX , é necessário para determinar se um arquivo suspeito é realmente RTF ou não. Habilitar a opção "Confirmar conversão de formato de arquivo ao abrir" do Word também pode ajudar, avisando que um documento que está sendo aberto está em um formato que não corresponde ao formato implícito na extensão do arquivo e dando a opção de abortar a abertura desse arquivo. Uma exploração que ataca uma vulnerabilidade foi corrigida no Microsoft Word em abril de 2015.

Desde 2014, existem arquivos RTF de malware incorporando exploits OpenXML .

Implementações

Cada implementação RTF geralmente implementa apenas algumas versões ou subconjuntos da especificação RTF. Muitos dos conversores RTF disponíveis não podem compreender todos os novos recursos nas especificações RTF mais recentes.

O editor do WordPad no Microsoft Windows cria arquivos RTF por padrão. Antigamente, era padronizado para o formato de arquivo Microsoft Word 6.0, mas o suporte de gravação para documentos do Word (.doc) foi eliminado em uma atualização de segurança. O suporte de leitura também foi eliminado no Windows 7. O WordPad não oferece suporte a alguns recursos RTF, como cabeçalhos e rodapés. No entanto, o WordPad pode ler e salvar muitos recursos RTF que não pode criar, incluindo tabelas, riscado, sobrescrito, subscrito, cores "extras", cores de fundo de texto, listas numeradas, recuo à direita ou à esquerda, quase-hipertexto e link de URL e vários espaçamentos de linha. RTF também é o formato de dados para "controles de rich text" nas APIs do MS Windows.

O editor de texto padrão do macOS , o TextEdit , também pode visualizar, editar e salvar arquivos RTF, bem como arquivos RTFD , e usa o formato como padrão. Em julho de 2009, o TextEdit limitou a capacidade de editar margens de documentos RTF. Muitos programas aplicativos de processamento de texto do Mac mais antigos, como MacWrite e WriteNow, tinham os mesmos recursos RTF que o TextEdit.

Os processadores de texto gratuitos e de código aberto AbiWord , Apache OpenOffice , Bean , Calligra , KWord , LibreOffice e NeoOffice podem visualizar, editar e salvar arquivos RTF. O formato RTF também é usado no processador de texto Ted .

Scrivener usa arquivos RTF individuais para todos os arquivos de texto que constituem um determinado "projeto".

O aplicativo freeware da SIL International para desenvolver e publicar dicionários usa RTF como sua forma mais comum de saída de documentos. Os arquivos RTF produzidos pelo Toolbox são projetados para serem usados ​​no Microsoft Word , mas também podem ser usados ​​por outros processadores de texto compatíveis com RTF.

O RTF pode ser usado em alguns leitores de e-book devido à sua interoperabilidade, simplicidade e baixos requisitos de processamento da CPU.

Bibliotecas e conversores

O script de código aberto rtf2xml pode converter parcialmente RTF em XML.

GNU UnRTF é um programa de código aberto para converter RTF em HTML, LaTeX, macros troff e outros formatos. pyth é uma biblioteca Python para criar e converter documentos em formato RTF, XHTML e PDF. Ruby RTF é um projeto para criar conteúdo Rich Text via Ruby . RaTFink é uma biblioteca de rotinas Tcl, software livre, para gerar saída RTF, e um script Cost para converter SGML em RTF. RTF :: Writer é um módulo Perl para gerar documentos RTF. PHPRtfLite é uma API que permite aos desenvolvedores criar documentos RTF com PHP . Pandoc é um conversor de documentos de código aberto com vários formatos de saída, incluindo RTF. RTFGen é um projeto para criar documentos RTF via PHP puro . rtf.js é uma biblioteca baseada em JavaScript para processar documentos RTF em HTML.

A ferramenta de linha de comando do macOS textutil pode converter arquivos entre os formatos rtf, rtfd, texto, doc, docx, wordml, odt e webarchive. O editor Ted também pode converter arquivos RTF para os formatos HTML e PS.

Crítica

O formato Rich Text era o formato de arquivo padrão para documentos baseados em texto em aplicativos desenvolvidos para Microsoft Windows. A Microsoft não disponibilizou inicialmente a especificação RTF ao público, tornando difícil para os concorrentes desenvolverem recursos de conversão de documentos em seus aplicativos. Como os desenvolvedores da Microsoft tinham acesso às especificações, os aplicativos da Microsoft tinham melhor compatibilidade com o formato. Além disso, cada vez que a Microsoft mudava a especificação RTF, os próprios aplicativos da Microsoft tinham uma vantagem no tempo de colocação no mercado, porque os concorrentes tinham que desenvolver novamente seus aplicativos depois de estudar a versão mais recente do formato.

A Novell alegou que as práticas da Microsoft eram anticompetitivas em sua reclamação antitruste de 2004 contra a Microsoft.

De acordo com o blogueiro Hannes Schmidt, as especificações RTF carecem de algumas das definições semânticas necessárias para ler, escrever e modificar documentos.

Veja também

Referências

links externos