- 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.
40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
// <copyright file="PDFSplitter.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>
|
|
/// Class for splitting PDF documents.
|
|
/// </summary>
|
|
public class PDFSplitter
|
|
{
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="PDFSplitter"/> class.
|
|
/// </summary>
|
|
/// <param name="pagina">The 1-based page number to extract; if null, the whole document is used.</param>
|
|
/// <param name="origem">Full path to the source PDF file to read.</param>
|
|
/// <param name="destino">Full path to the destination PDF file to create containing the extracted pages.</param>
|
|
public PDFSplitter(int? pagina, string origem, string destino)
|
|
{
|
|
FileStream document = new (origem, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
PdfDocument pdfDocument = new (new PdfReader(document));
|
|
var split = new CustomPdfSplitter(pdfDocument, pageRange => new PdfWriter(destino));
|
|
PdfDocument result = split.ExtractPageRange(new PageRange(pagina.ToString()));
|
|
document.Close();
|
|
result.Close();
|
|
}
|
|
}
|
|
} |