Como converter RTF para PDF usando C# | IronPDF

Como Converter RTF para PDF no IronPDF C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF converte documentos RTF em PDF em C# usando os métodos RenderRtfStringAsPdf e RenderRtfFileAsPdf em ChromePdfRenderer, aceitando uma string RTF ou um caminho de arquivo e retornando um PdfDocument que você pode salvar, proteger ou mesclar.

RTF (Rich Text Format) é um formato de documento que a Microsoft introduziu em 1987. Ele armazena texto juntamente com comandos de formatação, como fontes, estilos, cores e listas com marcadores como texto simples, por isso ele trafega bem entre editores. Transformar RTF em PDF fornece um arquivo de layout fixo que parece o mesmo em qualquer dispositivo, pode ser protegido por senha e está pronto para impressão ou arquivamento.

ObserveIronPDF renderiza RTF através de seu caminho de conversão de documento, que interpreta a marcação RTF diretamente, não através do motor HTML do Chrome usado para HTML em PDF. Formatação padrão como negrito, itálico, sublinhado, cores, fontes e listas simples com marcadores convertem de maneira confiável. Palavras de controle RTF menos comuns, tabelas aninhadas e objetos OLE incorporados podem não fazer round-trip exatamente, então reveja a saída quando um documento usar recursos avançados.

Início rápido: Converter RTF para PDF usando o IronPDF

Renderize um arquivo Rich Text Format para PDF em uma única chamada. Aponte RenderRtfFileAsPdf para o caminho RTF, depois salve o documento retornado.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    new IronPdf.ChromePdfRenderer()
         .RenderRtfFileAsPdf("input.rtf")
         .SaveAs("output.pdf");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como Converter uma String RTF para PDF?

Use o método RenderRtfStringAsPdf para transformar uma string RTF em um documento PDF. A entrada de string é adequada para conteúdo que você cria em tempo de execução: RTF extraído de uma coluna de banco de dados, retornado por uma API ou montado em código, sem arquivo temporário para escrever ou limpar. O método retorna um PdfDocument, para que você possa continuar trabalhando no resultado, aplicando cabeçalhos e rodapés, mesclando páginas ou adicionando anotações e marcadores.

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-string.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// RTF string
string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}{\colortbl;\red0\green0\blue0;}\cf0This is some \b bold \b0 and \i italic \i0 text.}";

// Render from RTF string
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtf);

// Save the PDF
pdf.SaveAs("pdfFromRtfString.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' RTF string
Private rtf As String = "{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}{\colortbl;\red0\green0\blue0;}\cf0This is some \b bold \b0 and \i italic \i0 text.}"

' Render from RTF string
Private pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtf)

' Save the PDF
pdf.SaveAs("pdfFromRtfString.pdf")
$vbLabelText   $csharpLabel

Saída

Como posso aplicar opções de formatação adicionais?

O mesmo RenderingOptions que você usa para renderização HTML aplica-se aqui. Defina a orientação do papel, margens e tamanho da página no renderizador antes de chamar RenderRtfStringAsPdf:

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-3.cs
using IronPdf;
using IronPdf.Rendering;

// Create renderer with custom options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;

// RTF string with formatting
string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}
\f0\fs24 This is a heading\line
\f1\fs20\cf1 This text is red\line
\cf2 This text is blue\line
\b Bold text\b0 and \i italic text\i0}";

// Convert with custom options
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtf);
pdf.SaveAs("formattedRtfToPdf.pdf");
Imports IronPdf
Imports IronPdf.Rendering

' Create renderer with custom options
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

' RTF string with formatting
Dim rtf As String = "{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial;}}" & _
                    "{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}" & _
                    "\f0\fs24 This is a heading\line" & _
                    "\f1\fs20\cf1 This text is red\line" & _
                    "\cf2 This text is blue\line" & _
                    "\b Bold text\b0 and \i italic text\i0}"

' Convert with custom options
Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtf)
pdf.SaveAs("formattedRtfToPdf.pdf")
$vbLabelText   $csharpLabel

Para um controle mais fino sobre a geometria da página, consulte os guias sobre margens personalizadas e tamanhos de papel personalizados.

Saída

Como Converter um Arquivo RTF para PDF?

Passe o caminho do seu documento para RenderRtfFileAsPdf. O método aceita caminhos absolutos e relativos. Baixe um arquivo RTF de exemplo para seguir: sample.rtf. O exemplo abaixo renderiza esse arquivo para PDF.

Entrada

O Microsoft Word exibe um arquivo RTF com exemplos de texto formatado, incluindo negrito, itálico, marcadores e sublinhado.

Que código preciso para converter arquivos RTF?

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render from RTF file
PdfDocument pdf = renderer.RenderRtfFileAsPdf("sample.rtf");

// Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Render from RTF file
Private pdf As PdfDocument = renderer.RenderRtfFileAsPdf("sample.rtf")

' Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf")
$vbLabelText   $csharpLabel

Para converter uma pasta de documentos, reutilize um renderizador e faça um loop sobre os arquivos:

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-5.cs
using IronPdf;
using System.IO;

// Create renderer once for efficiency
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Get all RTF files in directory
string[] rtfFiles = Directory.GetFiles(@"C:\RTFDocuments", "*.rtf");

foreach (string rtfFile in rtfFiles)
{
    // Convert each RTF file to PDF
    PdfDocument pdf = renderer.RenderRtfFileAsPdf(rtfFile);
    
    // Save with same name but PDF extension
    string pdfPath = Path.ChangeExtension(rtfFile, ".pdf");
    pdf.SaveAs(pdfPath);
}
Imports IronPdf
Imports System.IO

' Create renderer once for efficiency
Dim renderer As New ChromePdfRenderer()

' Get all RTF files in directory
Dim rtfFiles As String() = Directory.GetFiles("C:\RTFDocuments", "*.rtf")

For Each rtfFile As String In rtfFiles
    ' Convert each RTF file to PDF
    Dim pdf As PdfDocument = renderer.RenderRtfFileAsPdf(rtfFile)
    
    ' Save with same name but PDF extension
    Dim pdfPath As String = Path.ChangeExtension(rtfFile, ".pdf")
    pdf.SaveAs(pdfPath)
Next
$vbLabelText   $csharpLabel

Saída

Quais são os problemas mais comuns na conversão de arquivos RTF?

Algumas situações precisam de atenção ao renderizar arquivos RTF:

  1. Fontes: Uma fonte nomeada no RTF deve estar instalada na máquina que está fazendo a conversão, o que é mais importante em servidores headless e containers. O guia de gerenciamento de fontes cobre como registrar fontes em tempo de execução.
  2. Documentos grandes: Renderize arquivos longos fora do thread de requisição com a API assíncrona para que o aplicativo permaneça responsivo.
  3. Caracteres internacionais: Documentos com scripts não-latinos dependem da codificação correta no RTF de origem e uma fonte instalada que cubra esses glifos.
  4. Marcação avançada: Tabelas aninhadas e objetos incorporados podem não ser reproduzidos exatamente. Compare a saída com a fonte quando um documento depende deles.

Como posso adicionar segurança ao PDF convertido?

Após a renderização, bloqueie o documento através de SecuritySettings, definindo uma senha de proprietário, uma senha de usuário e permissões de cópia e impressão:

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-6.cs
using IronPdf;
using IronPdf.Security;

// Convert RTF to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfFileAsPdf("confidential.rtf");

// Apply security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner_password");
pdf.SecuritySettings.UserPassword = "user_password";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

// Save secured PDF
pdf.SaveAs("secured_document.pdf");
Imports IronPdf
Imports IronPdf.Security

' Convert RTF to PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderRtfFileAsPdf("confidential.rtf")

' Apply security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner_password")
pdf.SecuritySettings.UserPassword = "user_password"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint

' Save secured PDF
pdf.SaveAs("secured_document.pdf")
$vbLabelText   $csharpLabel

O guia de permissões e senhas de PDF cobre o conjunto completo de opções de restrição.

Icon Quote related to Como posso adicionar segurança ao PDF convertido?

Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.

Milan Jovanovic related to Como posso adicionar segurança ao PDF convertido?

Milan Jovanovic

Microsoft MVP

Veja o estudo de caso
Icon Quote related to Como posso adicionar segurança ao PDF convertido?

Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.

Brent Matzelle related to Como posso adicionar segurança ao PDF convertido?

Brent Matzelle

Diretor de Tecnologia, OPYN

Veja o estudo de caso
Icon Quote related to Como posso adicionar segurança ao PDF convertido?

O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.

David Jones related to Como posso adicionar segurança ao PDF convertido?

David Jones

Engenheiro(a) de Software Líder, Agorus Build

Veja o estudo de caso

Como combinar múltiplos arquivos RTF em um único PDF?

Renderize cada arquivo RTF em seu próprio PdfDocument, depois chame PdfDocument.Merge para juntá-los. Isso cria um único documento a partir de vários documentos de origem, como capítulos de um relatório:

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-7.cs
using IronPdf;
using System.Collections.Generic;

// Create renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Convert multiple RTF files
List<PdfDocument> pdfs = new List<PdfDocument>();
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter1.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter2.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter3.rtf"));

// Merge PDFs
PdfDocument mergedPdf = PdfDocument.Merge(pdfs);

// Add page numbers across the merged document
mergedPdf.AddTextFooters(new TextHeaderFooter
{
    CenterText = "Page {page} of {total-pages}",
    FontSize = 12
});

// Save combined document
mergedPdf.SaveAs("combined_document.pdf");

// Clean up individual PDFs
foreach (var pdf in pdfs)
{
    pdf.Dispose();
}
Imports IronPdf
Imports System.Collections.Generic

' Create renderer
Dim renderer As New ChromePdfRenderer()

' Convert multiple RTF files
Dim pdfs As New List(Of PdfDocument)()
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter1.rtf"))
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter2.rtf"))
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter3.rtf"))

' Merge PDFs
Dim mergedPdf As PdfDocument = PdfDocument.Merge(pdfs)

' Add page numbers across the merged document
mergedPdf.AddTextFooters(New TextHeaderFooter With {
    .CenterText = "Page {page} of {total-pages}",
    .FontSize = 12
})

' Save combined document
mergedPdf.SaveAs("combined_document.pdf")

' Clean up individual PDFs
For Each pdf In pdfs
    pdf.Dispose()
Next pdf
$vbLabelText   $csharpLabel

Os marcadores de posição no rodapé {page} e {total-pages} numeram as páginas no resultado mesclado.

Como retornar um PDF convertido de um endpoint na web?

No ASP.NET, renderize o RTF dentro da ação e retorne os bytes do documento como um resultado de arquivo. Leia a propriedade BinaryData do PdfDocument e passe-a para File:

[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);
    return File(pdf.BinaryData, "application/pdf", "converted_document.pdf");
}
[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);
    return File(pdf.BinaryData, "application/pdf", "converted_document.pdf");
}
<HttpGet>
Public Function ConvertRtfToPdf(rtfContent As String) As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtfContent)
    Return File(pdf.BinaryData, "application/pdf", "converted_document.pdf")
End Function
$vbLabelText   $csharpLabel

Conclusão

IronPDF converte RTF para PDF a partir de strings e arquivos através de RenderRtfStringAsPdf e RenderRtfFileAsPdf, e o PdfDocument resultante integra-se ao restante da biblioteca para layout, segurança e mesclagem. A partir daqui, combine a conversão RTF com as margens, cabeçalhos e rodapés personalizados mostrados acima, ou avance para a lista completa de conversões de PDF.

Perguntas frequentes

Como faço para converter um arquivo RTF em PDF usando C#?

Com o IronPDF, você pode converter um arquivo RTF para PDF com apenas duas linhas de código usando o método RenderRtfFileAsPdf. Basta criar uma instância de ChromePdfRenderer e chamar o método RenderRtfFileAsPdf com o caminho do arquivo de entrada e, em seguida, salvar o resultado usando o método SaveAs.

Posso converter strings RTF diretamente para PDF sem salvá-las como arquivos primeiro?

Sim, o IronPDF oferece o método RenderRtfStringAsPdf, que permite converter conteúdo RTF de strings diretamente para documentos PDF. Isso é particularmente útil ao trabalhar com conteúdo RTF gerado dinamicamente ou dados de bancos de dados.

A conversão de RTF para PDF preserva a formatação e os estilos?

A IronPDF renderiza RTF através do seu caminho de conversão de documentos, então formatação padrão como fontes, estilos, cores, negrito, itálico e listas de marcação simples são convertidas de forma confiável. Palavras de controle menos comuns, tabelas aninhadas e objetos OLE incorporados podem não fazer round-trip exatamente, então reveja a saída quando um documento usa recursos avançados.

Quais são os benefícios de converter RTF para PDF?

Converter RTF para PDF com o IronPDF oferece diversas vantagens: fácil acesso em diferentes plataformas, recursos de compressão, otimização de impressão, aparência consistente do documento independentemente do dispositivo de visualização, recursos de segurança aprimorados e preparação para distribuição profissional do documento.

Posso adicionar cabeçalhos, rodapés e números de página ao meu PDF convertido?

Sim, o IronPDF suporta todas as opções de renderização (RenderingOptions) ao converter RTF para PDF. Você pode aplicar cabeçalhos e rodapés de texto e HTML, adicionar numeração de páginas, implementar carimbos de texto e imagem e personalizar tamanhos e orientações de página.

É possível manipular o PDF após a conversão de RTF?

Com certeza! Depois de gerar seu PDF a partir de um arquivo RTF usando o IronPDF, você pode realizar diversas manipulações de página, incluindo mesclar e dividir PDFs, girar páginas, adicionar anotações e inserir marcadores.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 19,936,792 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.