Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
Los archivos PDF son un formato muy utilizado para el intercambio de documentos debido a su capacidad para conservar el formato en distintas plataformas. En diversas aplicaciones, la lectura programática del contenido de archivos PDF resulta muy valiosa.
En este artículo, aprenderemos cómo ver texto de archivos PDF en C++ usando la herramienta de línea de comandos Xpdf
. Xpdf
proporciona un conjunto de utilidades de línea de comandos y bibliotecas de C++ para trabajar con archivos PDF, incluida la extracción de texto. Al integrar Xpdf
en nuestro programa de visor de PDF en C++, podemos visualizar eficientemente el contenido de texto de los archivos PDF y procesarlo de forma programática.
Xpdf
- Biblioteca en C++ y herramientas de línea de comandosXpdf es un conjunto de software de código abierto que ofrece una variedad de herramientas y bibliotecas para trabajar con archivos PDF. Incluye varias utilidades de línea de comandos y bibliotecas C++ que permiten funciones relacionadas con PDF, como el análisis sintáctico, el renderizado, la impresión y la extracción de texto. Las herramientas de línea de comandos de Xpdf también ofrecen formas de ver archivos PDF directamente desde el terminal.
Uno de los componentes clave de Xpdf es pdftotext
, que es principalmente conocido por extraer contenido de texto de archivos PDF. Sin embargo, cuando se utiliza en combinación con otras herramientas como pdftops
y pdfimages
, Xpdf
permite a los usuarios ver el contenido del PDF de diferentes maneras. La herramienta pdftotext
resulta valiosa para extraer información textual de PDFs para su posterior procesamiento o análisis, y ofrece opciones para especificar de qué páginas extraer texto.
Antes de empezar, asegúrese de que cumple los siguientes requisitos previos:
Un compilador de C++ como GCC o Clang instalado en su sistema. Usaremos Code::Blocks IDE para este propósito.
Abre Code::Blocks: Inicia el IDE de Code::Blocks en tu computadora.
Crear un nuevo proyecto: Haz clic en "Archivo" en el menú superior y selecciona "Nuevo" del menú desplegable. A continuación, haga clic en "Proyecto" en el submenú.
Elija el tipo de proyecto: En la ventana "Nuevo desde plantilla", elija "Aplicación de consola" y haga clic en "Ir". A continuación, seleccione el lenguaje "C/C++" y haga clic en "Siguiente".
Ingrese los detalles del proyecto: En el campo "Título del proyecto", asigne un nombre a su proyecto (por ejemplo, "PDFViewer"). Elija la ubicación en la que desea guardar los archivos del proyecto y haga clic en "Siguiente".
Primero, agreguemos los archivos de cabecera necesarios a nuestro archivo main.cpp:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
En la función main
, declaramos dos cadenas: pdfPath
y outputFilePath
. pdfPath
almacena la ruta al archivo PDF de entrada, y outputFilePath
almacena la ruta donde el texto extraído se guardará como un archivo de texto plano.
El archivo de entrada es el siguiente:
pdftotext
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
Aquí, construimos el comando pdftotext
utilizando las variables pdfPath
y outputFilePath
para abrir el archivo PDF y ver su contenido. La función system
se llama a continuación para ejecutar el comando, y su valor de retorno se almacena en la variable status
.
Comprobar el estado de la extracción de texto
if (status == 0)
{
cout << "Text extraction successful." << endl;
} else
{
cout << "Text extraction failed." << endl;
}
if (status == 0)
{
cout << "Text extraction successful." << endl;
} else
{
cout << "Text extraction failed." << endl;
}
Comprobamos la variable status
para ver si el comando pdftotext
se ejecutó correctamente. Si status
es igual a 0, significa que la extracción de texto fue exitosa, y mostramos un mensaje de éxito. Si el status
es diferente de cero, indica un error, y mostramos un mensaje de error.
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:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
}
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:" << endl;
cout << textContent << endl;
} else {
cout << "Failed to open output file." << endl;
}
En el código de ejemplo anterior, abrimos el outputFile
(el archivo de texto generado por pdftotext
), leemos su contenido línea por línea y lo almacenamos en la cadena textContent
. Por último, cerramos el archivo e imprimimos en la consola el contenido del texto extraído.
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());
remove(outputFilePath.c_str());
Construye el código utilizando la tecla rápida "Ctrl+F9". Una vez compilado correctamente, al ejecutar el ejecutable se extraerá el contenido del texto del documento PDF especificado y se mostrará en la consola. El resultado es el siguiente:
IronPDF .NET C# Library es una potente biblioteca de PDF para .NET C# que permite a los usuarios ver fácilmente archivos PDF dentro de sus aplicaciones en C#. Aprovechando el motor del navegador web Chromium, IronPDF renderiza y muestra con precisión el contenido PDF, incluidas imágenes, fuentes y formatos complejos. Con su interfaz fácil de usar y sus amplias funcionalidades, los desarrolladores pueden integrar IronPDF sin problemas en sus proyectos C#, permitiendo a los usuarios ver documentos PDF de forma eficaz e interactiva. Ya sea para mostrar informes, facturas o cualquier otro contenido PDF, IronPDF proporciona una solución sólida para crear visores de PDF ricos en funciones en C#.
Para instalar el paquete IronPDF NuGet en Visual Studio, siga estos pasos:
Abre Visual Studio: Inicia Visual Studio o cualquier otro IDE de tu preferencia.
Cree o abra su proyecto: Cree un nuevo proyecto en C# o abra uno existente donde desee instalar el paquete IronPDF.
Abra el Administrador de Paquetes NuGet: En Visual Studio, vaya a "Herramientas" > "Administrador de Paquetes NuGet" > "Administrar Paquetes NuGet para la Solución". Alternativamente, haga clic en el explorador de soluciones y, a continuación, seleccione "Administrar paquetes NuGet para la solución".
Buscar IronPDF: En la ventana "Administrador de paquetes NuGet", haga clic en la pestaña "Explorar" y luego busque "IronPDF" en la barra de búsqueda. Alternativamente, visite el Paquete NuGet de IronPDF y descargue directamente la última versión de "IronPDF".
Seleccionar paquete de IronPDF: Encuentra el paquete "IronPDF" y haz clic en él para seleccionarlo para tu proyecto.
Instalar IronPDF: Haga clic en el botón "Instalar" para instalar el paquete seleccionado.
:ProductInstall
:ProductInstall
Con IronPDF, podemos realizar operaciones como extraer texto e imágenes de documentos PDF y mostrarlos en la consola para su visualización. El siguiente código ayuda a realizar esta tarea:
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Extracting Image and Text content from Pdf Documents
// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get all text to put in a search index
string text = pdf.ExtractAllText();
// Get all Images
var allImages = pdf.ExtractAllImages();
// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
int pageNumber = index + 1;
text = pdf.ExtractTextFromPage(index);
List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
//...
}
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Extracting Image and Text content from Pdf Documents
' open a 128-bit encrypted PDF
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Get all text to put in a search index
Private text As String = pdf.ExtractAllText()
' Get all Images
Private allImages = pdf.ExtractAllImages()
' Or even find the precise text and images for each page in the document
For index = 0 To pdf.PageCount - 1
Dim pageNumber As Integer = index + 1
text = pdf.ExtractTextFromPage(index)
Dim images As List(Of AnyBitmap) = pdf.ExtractBitmapsFromPage(index)
'...
Next index
Para obtener información más detallada sobre IronPDF, por favor visite la documentación de IronPDF.
En este artículo, aprendimos a extraer y ver el contenido de un documento PDF en C++ utilizando la herramienta de línea de comandos Xpdf. Este enfoque nos permite procesar y analizar el texto extraído dentro de nuestras aplicaciones C++ sin problemas.
Información de Licencias de IronPDF es gratuito para uso en desarrollo, pero los PDF se generan con una marca de agua. Para eliminar la marca de agua y utilizar IronPDF con fines comerciales, puede adquirir una licencia.
También está disponible una licencia de prueba gratuita para pruebas con fines comerciales.