Udskriv markering fra jtextarea
HejJeg har fundet følgende kode i et andet spørgsmål og det fungerer også fint nok, men ville være muligt at udvide programmet så man kan vælge kun at udskrive markeringen, hvis man altså har markeret noget?
Jeg bruger et JTextArea.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
class PrintUtility implements Printable
{
private Component componentToBePrinted;
public static void printComponent(Component c)
{
new PrintUtility(c).print();
}
public PrintUtility(Component componentToBePrinted)
{
this.componentToBePrinted = componentToBePrinted;
}
public void print()
{
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try
{
printJob.print();
}
catch(PrinterException pe)
{
System.out.println("Error printing: " + pe);
}
}
public int print(Graphics g, PageFormat pageFormat, int pageIndex)
{
if (pageIndex > 0)
{
return(NO_SUCH_PAGE);
}
else
{
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}
public static void disableDoubleBuffering(Component c)
{
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(Component c)
{
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}