IRONSOFTWAREHOME
VÍDEOS

Como converter Views em PDFs no ASP.NET

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

Migrar doSAP Crystal Reportspara o IronPDF transforma o seu fluxo de trabalho de relatórios de uma redistribuição MSI de tempo de execução com dependências da era COM para um pacoteNuGetmoderno. Este guia fornece um caminho de migração passo a passo que remove a necessidade de instalador de tempo de execução, libera o bloqueio do ecossistema SAP e desbloqueia .NET 6/8/9 e metas Linux/Docker que o Crystal Reports para Visual Studio (CR4VS) não suporta.

Por que migrar doSAP Crystal Reportspara o IronPDF?

Entendendo o SAP Crystal Reports

OSAP Crystal Reportsé uma plataforma de relatórios empresariais amplamente usada para gerar relatórios "pixel-perfect", com ampla conectividade a fontes de dados e um ecossistema de design estabelecido. O Crystal Reports Designer continua a ser uma ferramenta produtiva para construir layouts de relatórios complexos dentro da pilha SAP.

No entanto, a arquitetura da era COM do tempo de execução e a dependência exclusiva do Windows/.NET Framework criam atrito para equipes que têm como alvo o .NET 6/8/9, Linux ou implementações centradas em contêineres.

Principais razões para migrar

  1. Redistribuição MSI de Tempo de Execução: O Crystal Reports Runtime é distribuído como um instalador MSI (geralmente chega a dezenas de MB a alguns centenas de MB dependendo de 32/64 bits e localização) em vez de um pacote NuGet
  2. Bloqueio do Ecossistema SAP: Vinculado aos ciclos de lançamento e roteiro de produtos da SAP; a SAP confirmou o fim do suporte de manutenção principal para CR4VS no final de 2027
  3. Licenciamento: O próprio CR4VS é gratuito para download e o tempo de execução é gratuito para redistribuir, mas a família de designers do Crystal Reports (CR 2020 / CR 2025) e a plataforma BI são SKU comerciais da SAP
  4. Arquitetura Legada: DLLs de tempo de execução dependentes de COM alvos do.NET Framework 4.xnão podem ser carregados sob .NET Core / .NET 5+
  5. Sem Suporte .NET Core / .NET 5+: Não há roteiro para um tempo de execução Crystal Reports visando o .NET moderno; os projetos permanecem fixados no .NET Framework 4.x
  6. Tempo de Execução de 32 bits Descontinuado: A SAP confirmou que o tempo de execução CR .NET de 32 bits será descontinuado após o SP 39 (dezembro de 2025); os pacotes de serviço futuros serão apenas de 64 bits
  7. Dependência do Designer de Relatórios: Requer a extensão CR4VS do Visual Studio ou um designer Crystal Reports autônomo para criar arquivos .rpt

Os custos ocultos do SAP Crystal Reports

Fator de custoSAP Crystal ReportsIronPDF
Distribuição de Tempo de ExecuçãoInstalador MSI redistribuívelPacoteNuGet
InstalaçãoInstalador de tempo de execução + extensão VSdotnet add package IronPdf
ImplantaçãoExecutar MSI na máquina de destinoxcopy / publicar
Suporte a 64 bitsSim (tempo de execução de 32 bits termina após SP 39, dez 2025)Nativo
.NET Core / .NET 5+Não suportado (apenas Framework 4.x)Suporte completo (.NET 6/8/9, Framework 4.6.2+)
Implantação na nuvemApenas VMs WindowsSimples
Linux / DockerNão suportado (apenas Windows)Apoiado

Comparação entreSAP Crystal Reportse IronPDF

RecursoSAP Crystal ReportsIronPDF
Funcionalidade principalPlataforma de relatórios empresariaisMotor de conversão de HTML para PDF e manipulação de PDFs
IntegraçãoO melhor dentro do ecossistema SAPIntegração moderna com .NET , pacoteNuGetleve.
Facilidade de usoConfiguração e implantação complexasIntegração simplificada, compatível com desenvolvedores .NET
Designer de RelatóriosObrigatórioOpcional (HTML/CSS)
Formato do modelo.rpt (binário)HTML/CSS
HTML para PDFNãoCromo completo
URL para PDFNãoSim
Suporte a CSSNãoCSS3 completo
JavaScriptNãoES2024 completo
Manipulação de PDFNãoCompleto (mesclar, dividir, editar)
Assinaturas digitaisNãoSim
Conformidade com PDF/ANãoSim
Relevância ModernaEm declínio, substituído por alternativas modernas.Moderno e bem integrado com as tecnologias contemporâneas.

Para equipes visando .NET moderno (6, 8, 9) e implantação multiplataforma, o IronPDF fornece suporte nativo que o tempo de execução Crystal Reports — fixado no.NET Framework 4.x— não pode oferecer.


Antes de começar

Pré-requisitos

  1. Ambiente .NET: .NET Framework 4.6.2+ ou .NET 6 / 8 / 9
  2. Acesso aoNuGet: Capacidade de instalar pacotes NuGet.
  3. Licença do IronPDF: Obtenha sua chave de licença em IronPDF

Alterações no pacote NuGet

# Crystal Reports for Visual Studio is not distributed by SAP on NuGet.
# Projects typically reference the GAC-installed CrystalDecisions.*.dll
# assemblies delivered by the CR4VS / CR runtime MSI. Community-maintained
#NuGetwrappers such as CrystalReports.Engine exist for build automation
# but are not official SAP packages.

# 1. Remove direct assembly references (CrystalDecisions.*.dll) from your .csproj
# 2. If using a communityNuGetwrapper, remove it:
dotnet remove package CrystalReports.Engine

# 3. Uninstall the Crystal Reports runtime MSI from build/deploy targets

# 4. Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Referência completa da API

Alterações de namespace

// Before: SAP Crystal Reports
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportAppServer;

// After: IronPDF
using IronPdf;

Mapeamentos da API principal

SAP Crystal ReportsIronPDFNotas
ReportDocumentChromePdfRendererRenderização principal
ReportDocument.Load()RenderHtmlAsPdf()Carregar conteúdo
Arquivos .rptModelosHTML/CSSFormato do modelo
SetDataSource()HTML com dadosVinculação de dados
SetParameterValue()Interpolação de stringsParâmetros
ExportToDisk()pdf.SaveAs()Salvar arquivo
ExportToStream()pdf.BinaryDataObter bytes
PrintToPrinter()pdf.Print()Impressão
Database.TablesAcesso a dados em C#Fonte de dados
FormulaFieldDefinitionsLógica C#Cálculos
SummaryInfopdf.MetaDataMetadados do PDF
ExportFormatType.PortableDocFormatSaída padrãoPDF nativo

Exemplos de migração de código

Exemplo 1: Conversão de HTML para PDF

Antes (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires a .rpt file template
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Crystal Reports doesn't directly support HTML
        // You need to bind data to the report template
        // reportDocument.SetDataSource(dataSet);
        
        ExportOptions exportOptions = reportDocument.ExportOptions;
        exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        
        DiskFileDestinationOptions diskOptions = new DiskFileDestinationOptions();
        diskOptions.DiskFileName = "output.pdf";
        exportOptions.DestinationOptions = diskOptions;
        
        reportDocument.Export();
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        
        string htmlContent = "<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}

Este exemplo demonstra a diferença fundamental de paradigma.SAP Crystal Reportsrequer um template de arquivo .rpt pré-desenhado criado no Crystal Reports Designer, depois você deve configurar ExportOptions, ExportDestinationType, ExportFormatType, e DiskFileDestinationOptions. A biblioteca não oferece suporte direto a conteúdo HTML — você precisa vincular os dados ao modelo de relatório.

IronPDF aceita strings HTML diretamente: crie um ChromePdfRenderer, chame RenderHtmlAsPdf() com qualquer conteúdo HTML, e SaveAs(). Não requer designer, modelos binários ou configuração complexa de exportação. Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.

Exemplo 2: Conversão de URL para PDF

Antes (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        // Crystal Reports cannot directly convert URLs to PDF
        // You need to create a report template first
        
        // Download HTML content
        WebClient client = new WebClient();
        string htmlContent = client.DownloadString("https://example.com");
        
        // Crystal Reports requires .rpt template and data binding
        // This approach is not straightforward for URL conversion
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("WebReport.rpt");
        
        // Manual data extraction and binding required
        // reportDocument.SetDataSource(extractedData);
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created from URL successfully!");
    }
}

OSAP Crystal Reportsnão consegue converter URLs diretamente para PDF. Você precisaria baixar manualmente o conteúdo HTML com WebClient, depois extrair e vincular de alguma forma esses dados a um template .rpt pré-desenhado—um processo que não é simples e requer um trabalho manual significativo.

O método RenderUrlAsPdf() do IronPDF captura a página web totalmente renderizada com todo o CSS,JavaScripte imagens em uma única chamada. Saiba mais em nossos tutoriais .

Exemplo 3: Cabeçalhos e rodapés com números de página

Antes (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires design-time configuration
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Headers and footers must be designed in the .rpt file
        // using Crystal Reports designer
        // You can set parameter values programmatically
        reportDocument.SetParameterValue("HeaderText", "Company Name");
        reportDocument.SetParameterValue("FooterText", "Page ");
        
        // Crystal Reports handles page numbers through formula fields
        // configured in the designer
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Configure headers and footers
        renderer.RenderingOptions.TextHeader.CenterText = "Company Name";
        renderer.RenderingOptions.TextHeader.FontSize = 12;
        
        renderer.RenderingOptions.TextFooter.LeftText = "Confidential";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        
        string htmlContent = "<h1>Document Title</h1><p>Document content goes here.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF with headers and footers created!");
    }
}

OSAP Crystal Reportsrequer configuração em tempo de design para cabeçalhos e rodapés. Você deve projetá-los no arquivo .rpt usando o Crystal Reports Designer, depois passar valores de parâmetros como "HeaderText" e "FooterText" em tempo de execução. Os números de página devem ser configurados através de campos de fórmula no designer.

IronPDF oferece configuração de cabeçalho/rodapé programática com as propriedades TextHeader e TextFooter. Defina CenterText, LeftText, RightText e FontSize diretamente no código. Os números de página usam os placeholders {page} e {total-pages} — sem necessidade de designer.


Problemas comuns de migração

Problema 1: Conversão de arquivo .rpt

SAP Crystal Reports: Arquivos binários .rpt com layout, dados e fórmulas incorporados.

Solução: Não é possível converter diretamente — é necessário recriar como HTML:

  1. Abra o arquivo .rpt no designer do Crystal Reports
  2. Layout do documento, fontes, cores
  3. Observe todos os campos de fórmula.
  4. Recriar em HTML/CSS
  5. Converter fórmulas em código C#

Problema 2: Conexões de banco de dados

SAP Crystal Reports: Cadeias de conexão incorporadas e ODBC.

Solução: Utilize a camada de dados da sua aplicação:

// Instead of Crystal's database integration
var data = await _dbContext.Orders
    .Where(o => o.Date >= startDate && o.Date <= endDate)
    .ToListAsync();

// Bind to HTML template
var html = GenerateReportHtml(data);

Problema 3: Dependências de tempo de execução

SAP Crystal Reports: Requer a instalação do Crystal Reports Runtime (500 MB ou mais).

**Solução:**IronPDF é autossuficiente:

# Just add theNuGetpackage
dotnet add package IronPdf
# That's it - no additional installs needed
SHELL

Problema 4: Bloqueio de 32 bits/64 bits e .NET Framework

SAP Crystal Reports: O tempo de execução do Crystal Reports depende de COM e é distribuído em MSIs separados de 32 bits e 64 bits. A SAP confirmou que o tempo de execução CR .NET de 32 bits será descontinuado após o SP 39 (dezembro de 2025); os pacotes de serviço futuros serão apenas de 64 bits. O tempo de execução tem como alvo o.NET Framework 4.xe não pode ser carregado sob .NET Core / .NET 5+.

**Solution:**IronPDF runs on .NET Framework 4.6.2+, .NET 6, .NET 8, and .NET 9 — including Linux and Docker. Nenhuma configuração especial é necessária para 64 bits ou AnyCPU.


Novas funcionalidades após a migração

Após migrar para o IronPDF, você obtém recursos que oSAP Crystal Reportsnão oferece:

Fusão de PDFs

var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");

Segurança de PDF

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(reportHtml);

pdf.MetaData.Title = "Quarterly Sales Report";
pdf.MetaData.Author = "Finance Department";

pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "view123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure_report.pdf");

Assinaturas digitais

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);

Marcas d'água

using IronPdf.Editing;

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");

Resumo da comparação de recursos

RecursoSAP Crystal ReportsIronPDF
Instalação :
Método de instalaçãoMSI + extensão do Visual StudioNuGet
ImplantaçãoExecutar MSI na máquina de destinoxcopy / publicar
Suporte à plataforma :
.NET Core / .NET 5+Não suportadoSim (.NET 6/8/9)
Nativo de 64 bitsSim (o fim de 32 bits depois do SP 39, dez 2025)Sim
Linux / DockerNão suportado (apenas Windows)Sim
Azure / AWSApenas VMs WindowsSimples
: Desenvolvimento :
Formato do modelo.rpt (binário)HTML/CSS
Curva de AprendizagemSintaxe CrystalPadrões da Web
IntelliSenseNãoDó# completo
Renderização :
URL para PDFNãoSim
Suporte a CSSNãoCSS3 completo
JavaScriptNãoES2024 completo
: Funcionalidades do PDF :
Dividir PDFsNãoSim
Marcas d'águaLimitadoHTML completo
Assinaturas digitaisNãoSim
PDF/ANãoSim

Lista de verificação para migração

Pré-migração

  • Inventariar todos os arquivos .rpt
  • Faça uma captura de tela de cada layout de relatório para referência.
  • Documentar campos de fórmulas e cálculos
  • Liste todas as fontes de dados e parâmetros.
  • Identificar os requisitos de impressão
  • Obtenha a chave de licença do IronPDF em IronPDF

Atualizações de código

  • Remover pacotes Crystal Reports (CrystalDecisions.CrystalReports.Engine, etc.)
  • Remover a instalação do runtime da implantação
  • Instalar o pacoteNuGetIronPdf
  • Converter layouts .rpt para templates HTML/CSS
  • Converter fórmulas Crystal em código C#
  • Atualizar a ligação de dados de SetDataSource() para interpolação de strings HTML
  • Atualizar o código de impressão de PrintToPrinter() para pdf.Print()
  • Adicionar inicialização de licença na inicialização do aplicativo

Infraestrutura

  • Remover o Crystal Runtime dos servidores
  • Atualizar scripts de implantação
  • Remover o modo de compatibilidade de 32 bits
  • Atualizar imagens do Docker (se aplicável)

Testando

  • Comparar a saída em PDF com os relatórios originais
  • Verificar todos os cálculos
  • Testar todos os parâmetros
  • Testar a funcionalidade de impressão
  • Testes de desempenho
  • Teste de 64 bits

Observe: SAP Crystal Reports é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela SAP. Todos os nomes de produtos, logotipos e marcas são de propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.
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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.