RE:*** USO DE TEXT_IO.PUT_LINE ***
Te doy una idea, el paquete text_io, es solo entrada y salida de texto, no contiene formato, pero en impresoras matriciales se puede configurar secuencias de escape segun el lenguaje que use cada impresora para establecer tamaño de letra, fuentes, negrita, margenes de pagina, interlineado, etc. Estas instrucciones vienen en cada manual de impresoras matriciales donde se detallan las secuencias que se deben enviar a la impresora para que las interprete.
Por ejemplo:
En el manual dice ESC+H para negrita y ESC+Q para quitarle negrita
Entonces envias el codigo ASCII del ESC y la letra H concatenadas:
Text_io.put_line(lpt_file, chr(27)||'H'); -- Establece negrita
Text_io.put_line('REPORTE DE VENTAS'); -- TItulo
Text_io.put_line(lpt_file, chr(27)||'Q'); -- Deshago negrita
Es probable que solo sirva en impresoras matriciales, pero tengo entendido que toda impresora trae su codigo de secuencias de texto.