If you have a lot of text I think the only way you can do it is by popping up a window and writing the contents of the textarea to it, replacing the newlines with <br> and then printing the contents of the child window. Of course, a lot of people don't like popups and have blockers installed. but the better ones like the Google toolbar or Mozilla/Netscape's built-in bocker only block unrequested popups rather than those caused by clicking on a link or whatever.
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function printField() {
var s = document.theForm.ta.value;
var regExp=/\n/gi;
s = s.replace(regExp,'<br>');
pWin = window.open('','pWin','location=yes, menubar=yes, toolbar=yes');
pWin.document.open();
pWin.document.write('<html><head></head><body>');
pWin.document.write(s);
pWin.document.write('</body></html>');
pWin.print();
pWin.document.close();
pWin.close();
}
</script>
</head>
<body>
<form name="theForm" action="">
<textarea name="ta" rows="20" cols="50">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut lorem enim, varius non, luctus sit amet, pellentesque at, eros. Aliquam odio neque, auctor in, fringilla vitae, porttitor nec, purus. Aliquam non ipsum. Aliquam ut est sed ante egestas vestibulum. Mauris ultricies consectetuer ligula. Nunc aliquet quam quis odio. Proin nonummy tortor et elit. Sed sem risus, pretium non, malesuada et, sollicitudin vel, purus. Nullam venenatis. Phasellus feugiat vulputate magna.
Sed nec mauris. Etiam ac arcu. Proin dolor dolor, tempor vel, iaculis in, fermentum molestie, augue. Sed eget pede sit amet mi semper varius. Ut vestibulum turpis a sem. Suspendisse faucibus sem nec lacus. Praesent mauris wisi, nonummy at, porttitor id, sodales quis, nulla. Vivamus vel est dapibus ipsum viverra interdum. Nam auctor est et nunc. Praesent turpis. Mauris sed ante et felis commodo iaculis. Phasellus risus augue, interdum eget, porta at, lacinia non, velit.
Suspendisse potenti. Maecenas a eros id quam luctus sodales. Curabitur elementum ligula in libero. In libero lorem, blandit eget, tempor placerat, accumsan vel, quam. Pellentesque nisl. Quisque vestibulum leo sit amet sapien. Morbi at massa. Duis purus sapien, laoreet sed, laoreet sit amet, nonummy non, justo. Duis felis nibh, euismod vulputate, pretium id, venenatis nec, justo. Integer laoreet ligula in diam. Donec porta consequat lorem. Curabitur eu nisl vitae dolor molestie mattis.
Vestibulum tincidunt, dolor sed feugiat aliquam, erat libero vestibulum lectus, eget molestie velit est eget ligula. Nam purus. In hac habitasse platea dictumst. Etiam pretium fringilla nibh. Pellentesque lectus metus, pharetra nec, molestie a, viverra vitae, diam. Sed ultrices est non mi aliquam dictum. Duis ullamcorper dolor vitae lorem adipiscing lobortis. Proin vel metus a lectus varius viverra. Quisque at odio. Suspendisse pede felis, dictum in, volutpat eu, tempus sollicitudin, pede. Quisque sit amet metus.
Pellentesque et mauris. In hac habitasse platea dictumst. Nunc rhoncus, diam eu posuere mollis, elit ligula euismod leo, eget gravida neque quam sit amet nibh. Mauris ac diam. Morbi tincidunt vestibulum mauris. Vivamus venenatis nonummy arcu. Suspendisse potenti. Donec nonummy tortor vitae pede. Aenean tempus. Ut dignissim, arcu quis vehicula venenatis, wisi nibh gravida magna, ut mollis est libero vitae libero. Fusce at felis. Maecenas vitae augue. Proin egestas magna vitae elit. Aliquam eros. Nulla a felis. In convallis wisi id quam. Fusce mattis.
</textarea>
</form>
<a href="#" onclick="printField()">print text</a>
</body>
</html>