XML é uma linguagem autodescritiva recomendada pelo W3C projetada para armazenar e transportar dados. Um desenvolvedor pode alterar o formato XML para qualquer outro formato legível por humanos, como PDF ou documento MS Word dentro do aplicativo .NET. Este artigo discutirá como converter dados XML em relatórios PDF e MS Word usando C# por meio de modelos simples.

Relatório XML para PDF em C#

Os seguintes tópicos são discutidos abaixo:

API .NET de geração de relatórios – XML para PDF e WORD

GroupDocs.Assembly for .NET é a API para automatizar a geração de relatórios dos dados XML usando o modelo DOCX ou TXT. Além disso, ele é compatível com JSON, CSV e outras fontes de dados para converter os dados em relatórios de diferentes formatos de arquivo.

Você pode baixar o instalador DLLs ou MSI da seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Assembly

Gerar relatório PDF a partir de dados XML em C#

3 etapas simples levarão você a converter dados XML no relatório PDF formatado.

  1. Carregue sua fonte de dados XML.
  2. Defina o modelo de acordo com os dados XML carregados.
  3. Por fim, forneça a fonte de dados XML e o modelo para um método de geração de relatório.

Dados XML

Os dados de amostra XML a seguir são usados para convertê-los no relatório PDF. Contém os dados dos gestores e seus respectivos clientes com mais alguns detalhes.

<Managers>
	<Manager>
		<Name>John Smith</Name>
		<Contract>
			<Client>
				<Name>A Company</Name>
			</Client>
			<Price>1200000</Price>
		</Contract>
		<Contract>
		...
		</Contract>
		...
	</Manager>
	<Manager>
		<Name>Tony Anderson</Name>
		...
	</Manager>
	...
</Managers>

Modelo

Defina o modelo no formato TXT ou DOCX de acordo com seus dados XML de origem. Estou usando o modelo abaixo mencionado que é criado de acordo com os dados XML dos gerentes mencionados acima. Isso fará com que o gerador de relatórios itere sobre os Gerentes e seus respectivos Clientes. Após a conclusão do modelo, você está quase pronto. Você pode usar o código abaixo para a geração do seu relatório.

<<foreach \[in managers\]>>Manager: <<\[Name\]>>
Contracts:
<<foreach \[in Contract\]>>- <<\[Client.Name\]>> ($<<\[Price\]>>)
<</foreach>>
<</foreach>>

C# Etapas para gerar relatório PDF a partir de XML

As etapas a seguir permitem automatizar a geração de relatórios PDF a partir de seus dados XML de acordo com o modelo definido.

  • Definir arquivo de dados XML, arquivo de modelo de texto e arquivos de relatório de saída em PDF.
  • Instanciar XMLDataSoure com arquivo de dados XML.
  • Crie DataSourceInfo com fonte de dados XML definida.
  • Chame o método AssembleDocument para gerar o relatório PDF.

O código a seguir implementa as etapas acima e gera um PDF da fonte de dados XML usando C#.

// Gerar relatório PDF a partir de dados XML usando o modelo TXT no CSharp
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
string xmlDataSource = @"dataPath/Managers.xml";
string templateFilePath = @"templatePath/xml-template.txt";
string reportFilePath = @"reportsPath/xml-to-pdf-report.pdf";
// Carregar fonte de dados XML
XmlDataSource dataSource = new XmlDataSource(xmlDataSource);
// Montar documento para gerar PDF
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "managers"));

Gerar relatório do MS Word a partir de dados XML em C

Na mesma linha, você também pode criar o relatório no formato MS Word DOC/DOCX usando os mesmos dados XML. Não haverá diferença no código do que discutimos acima, exceto que você precisa alterar o nome do arquivo de saída.

  • Carregue o arquivo de dados XML.
  • Definindo o template em formato TXT ou DOCX.
  • Defina o formato do documento do relatório de saída como DOCX.
  • Forneça o arquivo de dados XML, modelo e caminho do arquivo de saída para DocumentAssembler para converter o XML em DOCX.

O código a seguir converte o XML e gera o arquivo DOCX usando o modelo definido usando C#.

// Gere o relatório do MS Word a partir de dados XML usando o modelo de texto no CSharp
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
string xmlDataSource = @"dataPath/Managers.xml";
string templateFilePath = @"templatePath/xml-template.txt";
string reportFilePath = @"reportsPath/xml-to-word-report.docx";
// Carregar fonte de dados XML
XmlDataSource dataSource = new XmlDataSource(xmlDataSource);
// Montar documento para gerar relatório do Word
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "managers"));

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, você aprendeu a converter os dados XML em formato PDF como um relatório usando C# com o aplicativo .NET. Além disso, discutimos a geração de relatórios no formato DOC/DOCX a partir do mesmo XML utilizando o template. Depois de ler esta série de posts de geração de relatórios; Gere relatórios em PDF e MS Word de JSON, CSV, XML, você pode desenvolver seu próprio aplicativo .NET de criação de relatórios.

Para obter mais informações sobre GroupDocs.Assembly, opções e exemplos, visite documentação e o repositório GitHub. Para mais dúvidas, entre em contato conosco através do fórum.

Veja também