1
Well I made a method to convert a text file into PDF, but it saves the PDF on the machine. I wanted that the method returns a array
without having to save the PDF to the machine or having to read the file again.
public byte[] Converte(string path)
{
FileInfo fl = new FileInfo(path);
fl.GetAccessControl(); //Dando acesso total ao fileinfo.
DirectoryInfo pir = new DirectoryInfo(fl.FullName.ToString());
string[] lines = System.IO.File.ReadAllLines(path); // Ler todas linhas do documento
Document doc = new Document(PageSize.A4);//criando e estipulando o tipo da folha usada
doc.SetMargins(40, 40, 40, 80);//estibulando o espaçamento das margens que queremos
doc.AddCreationDate();//adicionando as configuracoes
string caminho = fl.FullName.Replace(".txt", ".pdf"); // dando replace na extensão
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(caminho, FileMode.Create));
doc.Open(); //Abrindo documento
string dados = ""; //Criando string de dados para passar dados.
foreach (string line in lines)
{
Paragraph paragrafo = new Paragraph(dados); // Criando paragrafo para receber os valores das linhas.
paragrafo.Add(line.ToString()); // Passando valor da linha do txt para pdf
doc.Add(paragrafo); //Adicionando ao pdf
}
doc.Close(); // Fechando e salvando documento
//Criando um Array de Bytes para o pdf.
FileStream stream = System.IO.File.OpenRead(caminho);
byte[] fileBytes = new byte[stream.Length];
stream.Read(fileBytes, 0, fileBytes.Length);
stream.Close();
return fileBytes;
}