¿no estamos complicando la cosa?
Edito: Acabo de leer de nuevo el mensaje y parace que no quiere usar QuickReport... y ¿reportman que es gratuito?
- Diseñas un Quickreport (en tiempo de diseño) con qrdbtext justo donde deben ir para que cada dato salga en su casilla.
- El tema de papel, mejor te olvidas, usa un A4 y un pié de página de 12 cm. (29 cm que tiene el folio menos 17 cm que ocupa la factura). Listo, en cada folio va una factura.
- El quickreport tendrá como origen de datos una consulta, por ejemplo parametrizada, es decir que le puedas decir que imprima la factura nº 321.
- El botón sobre tu ventana, hará algo similar a esto:
Código Delphi
[-]
var qr : Tquickreport1;
begin
qr := Tquickreport1.Create(self);
query1.parambyname('nFactura').AsXXXX := 'el número de factura a imprimir';
query1.Open;
qr.print;
Como ves, el botón crea el quickreport, abre la consulta donde estaran los datos a imprimir, y por último, imprime directamente sin mostrar la presentación en pantalla.
Podrías usar un TDialogPrinter para pedir el número de copias a imprimir.
Saludos