Primero debes agregar:
using System.Collections.Generic;
using System.Globalization;
using sharpPDF;
using sharpPDF.Enumerators;
y al igual que lees un fichero .txt o un .xml puedes leer y escribir un PDF. Aqui te pongo un ejemplo de escritura para que veas como se deberia hacer, mi fichero de datos es un xml pero puede ser un SQL tranquilamente... Ante dudas me lo dices:
/**
Genera el fichero PDF
**/
public static void GenerarPDF()
{
try
{
int i = 0;
int j = 0;
List<Libro> libros = new List<Libro>();
libros = ListarLibrosXMLReader();
libros.Sort();
pdfDocument myDoc = new pdfDocument("Informe de libros", "Vicenç", false);
pdfPage myPage = myDoc.addPage();
myPage.addText("Informe de libros", 30, 700, predefinedFont.csHelveticaOblique, 30, new pdfColor(predefinedColor.csCyan));
pdfTable myTable = new pdfTable();
myTable.borderSize = 1;
myTable.borderColor = new pdfColor(predefinedColor.csDarkBlue);
myTable.tableHeader.addColumn(new pdfTableColumn("Autor", predefinedAlignment.csCenter, 120));
myTable.tableHeader.addColumn(new pdfTableColumn("Titulo", predefinedAlignment.csCenter, 120));
myTable.tableHeader.addColumn(new pdfTableColumn("Precio(EUR)", predefinedAlignment.csCenter, 100));
myTable.tableHeader.addColumn(new pdfTableColumn("Stock", predefinedAlignment.csCenter, 80));
myTable.tableHeader.addColumn(new pdfTableColumn("Fecha", predefinedAlignment.csCenter, 100));
while (j < libros.Count)
{
if (i < 20)
{
pdfTableRow myRow = myTable.createRow();
myRow[0].columnValue = libros[j].Autor;
myRow[1].columnValue = libros[j].Titulo;
myRow[2].columnValue = libros[j].Precio.ToString();
myRow[3].columnValue = libros[j].Stock.ToString();
myRow[4].columnValue = libros[j].Fecha.ToShortDateString();
myTable.addRow(myRow);
myRow = myTable.createRow();
i++;
j++;
}
else
{
if (i == 20)
{
myTable.tableHeaderStyle = new pdfTableRowStyle(predefinedFont.csCourierBoldOblique, 10, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csLightCyan));
myTable.rowStyle = new pdfTableRowStyle(predefinedFont.csCourier, 8, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csWhite));
myTable.alternateRowStyle = new pdfTableRowStyle(predefinedFont.csCourier, 8, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csWhite));
myTable.cellpadding = 10;
myPage.addTable(myTable, 30, 650);
myPage = myDoc.addPage();
i = 0;
myTable = new pdfTable();
myTable.borderSize = 1;
myTable.borderColor = new pdfColor(predefinedColor.csDarkBlue);
myTable.tableHeader.addColumn(new pdfTableColumn("Autor", predefinedAlignment.csCenter, 120));
myTable.tableHeader.addColumn(new pdfTableColumn("Titulo", predefinedAlignment.csCenter, 120));
myTable.tableHeader.addColumn(new pdfTableColumn("Precio(EUR)", predefinedAlignment.csCenter, 100));
myTable.tableHeader.addColumn(new pdfTableColumn("Stock", predefinedAlignment.csCenter, 80));
myTable.tableHeader.addColumn(new pdfTableColumn("Fecha", predefinedAlignment.csCenter, 100));
}
}
}
if (i != 0)
{
myTable.tableHeaderStyle = new pdfTableRowStyle(predefinedFont.csCourierBoldOblique, 10, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csLightCyan));
myTable.rowStyle = new pdfTableRowStyle(predefinedFont.csCourier, 8, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csWhite));
myTable.alternateRowStyle = new pdfTableRowStyle(predefinedFont.csCourier, 8, new pdfColor(predefinedColor.csBlack), new pdfColor(predefinedColor.csWhite));
myTable.cellpadding = 10;
myPage.addTable(myTable, 30, 650);
}
myTable = null;
//Establecemos los numeros de pagina
pdfPageMarker marker = new pdfPageMarker(500, 30, predefinedMarkerStyle.csArabic);
marker.fontSize = 12;
marker.fontType = predefinedFont.csTimes;
marker.pattern = "Pagina #n# de #N#";
myDoc.pageMarker = marker;
myDoc.createPDF("libros.pdf");
}
catch (Exception ex)
{
//Console.WriteLine("Se ha producido el siguiente error al generar el pdf: " + ex.Message);
throw new LibreriaException("Se ha producido el siguiente error al generar el pdf: " + ex.Message);
}
}
}
}