faturas_4docs/Download Faturas/CustomPdfSplitter.cs
Giuliano Paschoalino 6b0a5d61d3 Refatoração e melhorias gerais no processamento de faturas
- Alterado namespace para `Download_Faturas.Tests` e adicionados cabeçalhos de copyright.
- Refatoração para uso de recursos modernos do C# (ex.: inicializações simplificadas, métodos estáticos).
- Adicionados comentários XML e arquivo `stylecop.json` para padronização.
- Melhorias em testes de integração, incluindo ajustes na lógica de comparação e manipulação de CSV.
- Refatoração das classes `Fatura` e `FaturaOld` para encapsulamento e redução de duplicação.
- Adicionado suporte a conversores JSON personalizados (`DefaultDateTimeConverter`, `FloatArrayOrSingleConverter`).
- Melhorias no arquivo `Program.cs` com novos métodos auxiliares e tratamento de erros.
- Adicionadas classes auxiliares para manipulação de PDFs (`PDFSplitter`, `CustomPdfSplitter`).
- Ajustes nos arquivos de projeto para geração de documentação XML e inclusão do `StyleCop.Analyzers`.
- Correções em valores de consumo e demanda nos arquivos CSV.
- Melhor tratamento de erros e mensagens de log para facilitar o diagnóstico.
2025-11-28 11:21:22 -03:00

39 lines
1.5 KiB
C#

// <copyright file="CustomPdfSplitter.cs" company="Smart Energia">
// Copyright (c) Smart Energia. All rights reserved.
// </copyright>
namespace Download_Faturas
{
using System.Data.OleDb;
using System.Globalization;
using System.Net.Http.Headers;
using System.Reflection;
using System.Reflection.Metadata.Ecma335;
using System.Runtime.Intrinsics.X86;
using System.Text;
using System.Text.Json;
using System.Text.RegularExpressions;
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
/// <summary>
/// Custom PDF splitter that allows specifying a function to create the next PDF writer.
/// </summary>
/// <remarks>
/// Initializes a new instance of the <see cref="CustomPdfSplitter"/> class.
/// </remarks>
/// <param name="pdfDocument">The PDF document to split.</param>
/// <param name="nextWriter">A function that returns the next PdfWriter given a PageRange.</param>
public class CustomPdfSplitter(PdfDocument pdfDocument, Func<PageRange, PdfWriter> nextWriter) : PdfSplitter(pdfDocument)
{
/// <summary>
/// Gets the next PDF writer for the specified page range.
/// </summary>
/// <param name="documentPageRange">The page range for which to get the next PDF writer.</param>
/// <returns>The next PDF writer.</returns>
protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
{
return nextWriter.Invoke(documentPageRange);
}
}
}