Impressão de conteúdo de uma Textarea

Pessoal, eu estou prescisando fazer a impressão do conteúdo de uma textArea.

Fazer isso até que eu consigo através do código:

private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {                                            

// TODO add your handling code here:

java.awt.Toolkit tk;
java.awt.PrintJob pj;
java.awt.Frame fr = new java.awt.Frame();
 
String linha_texto;

fr.pack();
tk = fr.getToolkit();
pj = tk.getPrintJob(fr, "ponto", null);
java.awt.Graphics g;
java.awt.Graphics2D g2d;
g = pj.getGraphics();
g.setFont( new java.awt.Font("Draft10cpi", java.awt.Font.PLAIN, 10) );
try{
    jTextArea1.printAll(g);
g.dispose();
pj.end();
fr.dispose();
}catch(Exception e){
    javax.swing.JOptionPane.showMessageDialog(null, " "+e,"ERRO AO IMPRIMIR", javax.swing.JOptionPane.ERROR_MESSAGE);
}

}                                           

Mas o problema é que esse código imprime somente o conteúdo que está visível na textArea. Eu poderia refazer a minha consulta sql e buscar todos os dados novamente quando o usuário clicar no botão de imprimir e imprimir linha por linha ( g.drawString … ), mas isso sería “chover no molhado”, uma vez que eu já faço isso prá jogar os dados na textArea.

Algem sabe de algo que possa fazer com que eu imprima o conteúdo inteiro da textArea??

Outra solução sería obter o conteúdo da textArea linha a linha, mas esse componente só tem a propriedade getText(), que retorna o texto todo. E nesse caso o texto retornado não conserva as quebras de linha.

Alguem pode ajudar com uma das duas soluções???