Leer pdfs

18/01/2007 - 09:53 por Juan Diego Bueno | Informe spam
Buenas grupo:

¿Conoceis alguna api, o solución (gratuita, of course) que permita
hacer una búsqueda sobre el texto de un pdf desde una aplicación
.net?. O de pago, mientras que la velocidad de búsqueda valga la pena
para hacer frente a su adquisición

Saludos
 

Leer las respuestas

#1 Francesc
18/01/2007 - 11:08 | Informe spam
Sí, tu propio codigo ;)

Primero debes agregar: (C#)

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);
}
}
}
}

Francesc Jaumot
España (Lérdia)


"Juan Diego Bueno" wrote:

Buenas grupo:

¿Conoceis alguna api, o solución (gratuita, of course) que permita
hacer una búsqueda sobre el texto de un pdf desde una aplicación
..net?. O de pago, mientras que la velocidad de búsqueda valga la pena
para hacer frente a su adquisición

Saludos


Preguntas similares