Convertir PDF a archivo de texto usando PHP

Si necesitas leer datos de un archivo PDF convertido a archivo de texto usando PHP, el siguiente ejemplo resolverá ese problema. Es muy simple y conciso, fácil de realizar.

Este ejemplo utiliza la biblioteca pdfparser para leer archivos de texto e imágenes en archivos PDF (https://www.pdfparser.org).

1. Instalar la biblioteca pdfparser

En la carpeta de tu fuente, crea un archivo composer.json con el siguiente contenido:

{
“require”: {
“smalot/pdfparser”: “*”
}
}

Asegúrate de tener Composer instalado en tu computadora y luego ejecuta el comando para instalar las bibliotecas smalot y pdfparser:

composer update smalot/pdfparser

2. Realizar la lectura del archivo PDF

2.1. Crear archivo de selección de formulario, index.php

<form action=’result.php’ method=’post’ target=””>
<label>Select File:</label>
<p>
<input type=’file’ name=’file’ value=”>
</p>
<p><input type=’submit’ name=’submit’ value=’Submit’></p>
</form>

2.2 Exportar contenido para leer archivos PDF, result.php
★ Todo el contenido en una sola página:

require_once __DIR__.’/vendor/autoload.php’;

if (isset($_POST[‘submit’])) {
// file selected
$file = $_POST[‘file’];

if (empty($file)) {
header(“location:javascript://history.go(-1)”);
}

echo ‘<p>Result contents: </p>’;

$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile($file);

// All content on one page
echo ‘<p><b>All content on one page:</b> </p>’;
$text = $pdf->getText();
echo $text;
}

★ Varias páginas, el contenido de cada página:

echo ‘<p><b>Multi page: </b></p>’;
// Multi page
$pages = $pdf->getPages();

// Loop over each page to extract text.
foreach ($pages as $key => $page) {
echo ‘<p>Content of Page ‘ . $key . ‘: ‘ . $page->getText() . ‘</p>’;
}

★ Leer imagen:

 // Read image
echo ‘<p><b>All image:</b> </p>’;
$images = $pdf->getObjectsByType(‘XObject’, ‘Image’);

foreach( $images as $image ) {
echo ‘<img src=”data:image/jpg;base64,’. base64_encode($image->getContent()) .’” />’;
}

★ Página de detalles:

 echo ‘<p><b>Detail page: </b></p>’;
// Retrieve all details from the pdf file.
$details = $pdf->getDetails();

// Loop over each property to extract values (string or array).
foreach ($details as $property => $value) {
if (is_array($value)) {
$value = implode(‘, ‘, $value);
}
echo ‘<p>’ . $property . ‘ => ‘ . $value . ‘</p>’;
}
}

3. Resultado

Convierta PDF a archivo de texto usando el resultado de PHP:

Resultado después de convertir PDF a texto usando PHP

★ Por el contrario, puedes consultar cómo convertir texto a PDF usando PHP aquí

1 comentario en «Convertir PDF a archivo de texto usando PHP»

Deja un comentario