¿Cómo generar un archivo PDF a partir de archivos de texto externos usando PHP?

En este artículo, aprenderemos cómo generar archivos PDF a partir de archivos de texto externos con PHP utilizando FPDF. Es una clase de PHP gratuita que contiene muchas funciones para crear y modificar archivos PDF. La clase FPDF incluye muchas características como formatos de página, encabezados de página, pies de página, salto de página automático, salto de línea, compatibilidad con imágenes, colores, enlaces y mucho más.

Acercarse:

  • Debe descargar la clase FPDF del sitio web de FPDF e incluirla en su script PHP.
    require('fpdf/fpdf.php');
  • Cree una instancia y use la clase FPDF según sus necesidades, como se muestra en los siguientes ejemplos.
    $pdf=new FPDF();

Ejemplo: el siguiente código genera un archivo PDF basado en archivos de texto externos, a saber, «cIntro.txt», «cStandard.txt» y «cPrototype.txt». Consulte los comentarios en el código para una mejor comprensión y personalización según las necesidades de la aplicación.

PHP

<?php
require('fpdf/fpdf.php');
  
class PDF extends FPDF {
  
    // Function to set the document header
    function Header() {
  
        global $title;
          
        // Sets font to Arial bold 15
        $this->SetFont('Arial', 'B', 15);
        
        // Calculate string length 
        $w = $this->GetStringWidth($title) + 6;
        $this->SetX((210 - $w) / 2);
        
        // Set drawing color
        $this->SetDrawColor(0, 80, 180);
        
        // It defines the grey color for filling
        $this->SetFillColor(105, 105, 105);
        
        // Sets the text color
        $this->SetTextColor(255, 0, 0);
        
        // Set the line width to 1 mm)
        $this->SetLineWidth(1);
        
        // Prints a cell Title
        $this->Cell($w, 9, $title, 1, 1, 'C', 1);
        
        // Line break
        $this->Ln(10);
    }
    
    // Function to set the document footer
    function Footer() {
  
        // Set Y Position from bottom
        $this->SetY(-20);
        
        // Sets font to Arial italic 10
        $this->SetFont('Arial', 'I', 10);
        
        // Sets the Text color in gray
        $this->SetTextColor(128);
        
        // Prints a cell with Page number
        $this->Cell(0, 10, 'Page ' 
            . $this->PageNo(), 0, 0, 'C');
    }
    
    // Function to set the title for a tutorial
    function tutorialTitle($num, $label) {
  
        // Sets font to Arial 12
        $this->SetFont('Arial', '', 12);
        
        // Sets to fill Background color with Light grey 
        $this->SetFillColor(211, 211, 211);
        
        // Prints a cell with Title for tutorial
        $this->Cell(0, 6, "Chapter $num : $label", 0, 1, 'L', 1);
        
        // Line break
        $this->Ln(4);
    }
    
    // Function to set the content from a external file 
    function tutorialContent($file) {
  
        // Read text file
        $f   = fopen($file, 'r');
        $txt = fread($f, filesize($file));
        fclose($f);
        
        // Sets the font to Times 12
        $this->SetFont('Times', '', 12);
        
        // It prints texts with line breaks
        $this->MultiCell(0, 5, $txt);
        
        //Puts a Line break
        $this->Ln();
        
        // Set font in italics
        $this->SetFont('', 'I');
        
        // Prints a cell
        $this->Cell(0, 5, '(end of content)');
    }
      
    function showTutorial($num, $title, $file) {
  
        // Add a new page
        $this->AddPage();
        $this->tutorialTitle($num, $title);
        $this->tutorialContent($file);
    }
}
  
// Initiate a PDF object
$pdf   = new PDF();
$title = 'C Programming Language';
  
// Sets the document title
$pdf->SetTitle($title);
  
// Sets the document author name
$pdf->SetAuthor('gfg author name');
  
$pdf->showTutorial(
    1, 
    'C Language Introduction', 
    'cIntro.txt'
);
  
$pdf->showTutorial(
    2, 
    'C Programming Language Standard', 
    'cStandard.txt'
);
  
$pdf->showTutorial(
    3, 
    'Importance of function prototype in C', 
    'cPrototype.txt'
);
  
$pdf->Output();
?>

Archivo “cIntro.txt”:

C es un lenguaje de programación procedimental. Fue desarrollado inicialmente por Dennis Ritchie en el año 1972.
Fue desarrollado principalmente como un lenguaje de programación de sistemas para escribir un sistema operativo.
Las características principales del lenguaje C incluyen acceso a memoria de bajo nivel, un conjunto simple de palabras clave y un estilo limpio, estas características hacen que el lenguaje C sea adecuado para programaciones de sistemas como un sistema operativo o desarrollo de compiladores.
Muchos lenguajes posteriores han tomado prestadas sintaxis/características directa o indirectamente del lenguaje C.
Al igual que la sintaxis de Java, PHP, JavaScript y muchos otros lenguajes, se basan principalmente en el lenguaje C.
C++ es casi un superconjunto del lenguaje C (Pocos programas pueden compilarse en C, pero no en C++).

Archivo “cEstándar.txt”:

El estándar C más reciente es ISO/IEC 9899:2011, también conocido como C11, ya que el borrador final se publicó en 2011. Antes del C11, existía el C99. El borrador final del C11 está disponible aquí. Consulte esto para obtener una historia completa de los estándares C.

¿Podemos conocer el comportamiento de todos los programas del estándar C?
El estándar C deja parte del comportamiento de muchas construcciones de C sin definir y algunas sin especificar para simplificar la especificación y permitir cierta flexibilidad en la implementación.
Por ejemplo, en C, el uso de cualquier variable automática antes de que se haya inicializado produce un comportamiento indefinido y el orden de evaluación de las subexpresiones no está especificado.
Esto libera específicamente al compilador para que haga lo que sea más fácil o más eficiente, en caso de que se envíe dicho programa.

Archivo “cPrototipo.txt”:

El prototipo de función le dice al compilador sobre la cantidad de parámetros que toma la función, los tipos de datos de los parámetros y el tipo de retorno de la función.
Al usar esta información, el compilador verifica los parámetros de la función y su tipo de datos con la definición de la función y la llamada a la función.
Si ignoramos el prototipo de función, el programa puede compilar con una advertencia y puede funcionar correctamente.
Pero algunas veces, dará un resultado extraño y es muy difícil encontrar tales errores de programación.
El programa anterior verifica la existencia del archivo, provisto desde la línea de comando, si el archivo dado existe, entonces el programa imprime «existe el archivo», de lo contrario, imprime el mensaje de error apropiado.
Proporcionemos un nombre de archivo, que no existe en el sistema de archivos, y verifiquemos la salida del programa en la arquitectura x86_64.

Producción:

Publicación traducida automáticamente

Artículo escrito por geetanjali16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *