
Crear PDFs con PHP sin utilizar librerías externas implica generar el código PDF directamente, aprovechando el estándar de formato PDF para estructurar el contenido. Esto significa escribir el archivo PDF como una serie de objetos y comandos que definen el texto, las imágenes, y la estructura del documento.
Aspectos clave:
1. Estructura del PDF: Un PDF se compone de una cabecera, el cuerpo (que contiene los objetos), una tabla de referencias cruzadas, y un tráiler. El cuerpo es donde residen los objetos que definen el contenido.
Must Read
2. Objetos: Los objetos pueden ser diccionarios, streams, arrays, cadenas, o números. Cada objeto tiene un ID único y una generación. Los diccionarios, por ejemplo, definen propiedades y relaciones entre objetos. Un stream puede contener texto comprimido o datos de imagen.
3. Comandos: Son instrucciones que definen cómo se renderiza el contenido. Comandos comunes incluyen `BT` (Begin Text), `ET` (End Text), `Tf` (Set Font), `Tj` (Show Text), y `re` (Rectangle).

4. Fontes: Se deben definir las fontes utilizadas, ya sea usando las 14 fuentes estándar de PDF (Helvetica, Times, Courier, etc.) o incrustando fontes personalizadas, lo cual es más complejo.
5. Compresión: Para reducir el tamaño del archivo, es recomendable comprimir los streams de texto e imágenes usando algoritmos como FlateDecode.
Ejemplo simple (fragmento):

%PDF-1.7
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
Este fragmento define la cabecera y un objeto de catálogo básico.
Otro ejemplo (fragmento de texto):

BT
/F1 12 Tf
100 700 Td
(Hola Mundo) Tj
ET
Este fragmento define un bloque de texto con la fuente "F1", tamaño 12, posición 100, 700, y el texto "Hola Mundo".
Aplicación real:
Aunque complejo, crear PDFs sin librerías es útil en situaciones donde se requiere un control absoluto sobre el formato y el contenido del PDF, o cuando las restricciones del entorno de hosting impiden la instalación de librerías externas. También es útil para aprender profundamente el funcionamiento interno del formato PDF.