Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF (Formato de documento portátil) son ampliamente utilizados para el intercambio de documentos, y ser capaz de leer programáticamente su contenido es valioso en diversas aplicaciones. Las siguientes bibliotecas están disponibles para leer PDF en C++: Poppler, Mupdf, Haru free PDF library, Xpdf, Qpdf.
En este artículo, sólo exploraremos cómo leer archivos PDF en C++ utilizando la herramienta de línea de comandos Xpdf. Xpdf ofrece una serie de utilidades para trabajar con archivos PDF, incluida la extracción de contenido de texto. Integrando Xpdf en un programa C++, podemos extraer el texto de los archivos PDF y procesarlo mediante programación.
Xpdf es un paquete de software de código abierto que proporciona una colección de herramientas y bibliotecas para trabajar con PDF (Formato de documento portátil) archivos. El paquete Xpdf incluye varias utilidades de línea de comandos y bibliotecas C++ que permiten diversas funcionalidades relacionadas con PDF, como el análisis sintáctico, el renderizado, la extracción de texto, etc. Algunos componentes clave de Xpdf son: pdfimages, pdftops, pdfinfo, pdfimages. Aquí, vamos a utilizar pdftotext
para leer documentos PDF.
pdftotext
es una herramienta de línea de comandos que extrae el contenido de texto de archivos PDF y lo muestra como texto sin formato. Esta herramienta es especialmente útil cuando se necesita extraer la información textual de los PDF para su posterior procesamiento o análisis. Mediante las opciones, también puede especificar de qué página o páginas extraer el texto.
Para realizar un proyecto de lector de PDF para extraer texto, necesitamos que se den los siguientes requisitos previos:
En primer lugar, vamos a añadir los archivos de cabecera necesarios en nuestro archivo main.cpp en la parte superior:
#include <cstdlib>
#include <iostream>
#include <fstream>
Escribamos el código C++ que invoca la herramienta de línea de comandos Xpdf para extraer el contenido de texto del documento PDF. Vamos a utilizar el siguiente archivo input.pdf:
El ejemplo de código es el siguiente:
// Incluir biblioteca C
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main() {
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
if (status == 0) {
cout << "Text extraction successful." << endl;
} else {
cout << "Text extraction failed." << endl;
return 1;
}
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) {
string textContent;
string line;
while (getline(outputFile, line)) {
textContent += line + "\n";
}
outputFile.close();
cout << "Text content extracted from PDF document:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
return 1;
}
return 0;
}
En el código anterior, definimos la variable pdfPath
para guardar la ruta al archivo PDF de entrada. Asegúrese de sustituirla por la ruta adecuada a su documento PDF de entrada real.
También definimos la variable outputFilePath
para guardar la ruta al archivo de texto de salida que generará Xpdf.
El código ejecuta el comando pdftotext
mediante la función system
, pasando la ruta del archivo PDF de entrada y la ruta del archivo de texto de salida como argumentos de la línea de comandos. La variable status
captura el estado de salida del comando.
Si pdftotext
se ejecuta correctamente (indicado por un estado de 0)procedemos a abrir el fichero de texto de salida utilizando ifstream
. A continuación, leemos el contenido del texto línea por línea y lo almacenamos en la cadena textContent
.
Por último, enviamos el contenido del texto extraído a la consola desde el archivo de salida generado. Si no necesita el archivo de texto de salida editable o desea liberar espacio en disco, al final del programa simplemente bórrelo utilizando el siguiente comando antes de finalizar la función principal:
remove(outputFilePath.c_str());
Compila el código C++ y ejecuta el ejecutable. Si se añade pdftotext
a la ruta del sistema de variables de entorno, su comando se ejecutará correctamente. El programa genera el archivo de texto de salida y extrae el contenido de texto del documento PDF. A continuación, el texto extraído se muestra en la consola.
IronPDF es una popular biblioteca PDF de C# que proporciona potentes funcionalidades para trabajar con documentos PDF. Permite a los desarrolladores crear, editar, modificar y leer archivos PDF mediante programación;
La lectura de documentos PDF con la biblioteca IronPDF es un proceso sencillo. La biblioteca ofrece varios métodos y propiedades que permiten a los desarrolladores extraer texto, imágenes, metadatos y otros datos de páginas PDF. La información extraída puede utilizarse para su posterior procesamiento, análisis o visualización dentro de la aplicación.
El siguiente ejemplo de código leer archivo PDF mediante IronPDF:
//Convertir documentos PDF en imágenes o miniaturas
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracción de contenido de imagen y texto de documentos Pdf
// abrir un PDF encriptado a 128 bits
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Obtener todo el texto para ponerlo en un índice de búsqueda
string text = pdf.ExtractAllText();
// Obtener todas las imágenes
var allImages = pdf.ExtractAllImages();
// O incluso encontrar el texto y las imágenes precisas para cada página del documento
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
Para obtener información más detallada sobre cómo leer documentos PDF, visite el enlace aquí.
En este artículo, aprendimos a leer el contenido de un documento PDF en C++ utilizando la herramienta de línea de comandos Xpdf. Al integrar Xpdf en un programa C++, podemos extraer mediante programación el contenido de texto de archivos PDF en un segundo. Este enfoque nos permite procesar y analizar el texto extraído dentro de nuestras aplicaciones C++.
IronPDF es una potente biblioteca de C# que facilita la lectura y manipulación de archivos PDF. Sus amplias funciones, su facilidad de uso y su fiable motor de renderizado lo convierten en una opción muy popular entre los desarrolladores que trabajan con documentos PDF en sus proyectos de C#
IronPDF es gratuito para el desarrollo y proporciona un prueba gratuita para uso comercial. Más allá de esto, es necesario con licencia con fines comerciales.
9 productos API .NET para sus documentos de oficina