Olá,
1. O espeço entre linhas é definido automaticamente pelo driver de impressão de acordo com o tamanho da fonte. Porém, se você diz que a impressora está saltando uma linha, pode ser problema com o tamanho do texto que você está tentando imprimir. Tente alterar não apenas o tamanho da fonte, mas também a propriedade PaperSize e o ScaleWidth da página. Cuidado com concatenação de textos em impressão. Se você tem uma string1 e uma string2 e precisa imprimí-las em uma única linha, mas deseja usar doi comandos Print, você obrigatoriamente precisa usar um ponto-e-vírgula no final da primeira intrução:
Printer.Print String1;
Printer.Print String2
Outra coisa, não use Chr$(13) no final de uma instrução Print, pois isso faz com que a impressora forçe um salto de linha (não são todas as impressoras que respondem a isso dessa forma, mas por via das dúvidas, não faça);
2. Tente usar um tamanho personalizado de papel, um pouco maior que o real para "enganar" o driver de impressão e o gerenciador do VB. Lembro que no Word, em alguns casos, para imprimir em A4 sem cortar a impressão e manter uma margem reduzida, eu precisava informar que o papael tinha 30,4 cm e não 29,4 como é o padrão.
3. Para alinha um número ou um texto qualquer à direita como métod oPrint, basta usar uma das funções mais velhas do BASIC (isso vem da época que o BASIC era apenas interpretado...bons tempos aqueles em que o computador obedecia a gente...), a instrução RSet:
Dim Mascara As String
Mascara = Space(14) '<--Você pode alterar a mascara para quanto precisar.
RSet Mascara = "100,01"
Printer.Print Tab(50); Mascara
Isso fará com que a impressão saia alinhada à direita em uma string de 14 caracteres que irá começar na coluna 40 da folha. É claro que você pode alterar tanto o tamanho da mascara quanto a posição do Tab;
4. Para imprimir no rodapé o que você está querendo, você terá que controlar em uma variável não apenas o número da página, mas também terá que saber de antemão quantas páginas o seu relatório irá ter. Você pode calcular se souber quantas linhas cabem em cada página e quantas linhas você terá que imprimir (não esqueça de contar as linhas em branco, como linhas a serem impressas!);
5. Para configurar a impressão antes de imprimir, adicione ao seu projeto a CommonDialog control e use o método ShowPrint.
Espero ter ajudado.
um abraço,
Sandro.