السلام عليكم :)
انا ابغى اطبع صفحه من الـ JTextArea و عندي الكود لطباعه الصفحه، لكن ابغى كود للـ PrintPreview للتأكد من الطباعه بشكل صحيح !!
فهل احد عنده مثل هذا الكود ؟؟
السلام عليكم :)
انا ابغى اطبع صفحه من الـ JTextArea و عندي الكود لطباعه الصفحه، لكن ابغى كود للـ PrintPreview للتأكد من الطباعه بشكل صحيح !!
فهل احد عنده مثل هذا الكود ؟؟
لو تسمح انا ابغى كود الطبع ؟؟؟
كود الطباعه:
//import the packages for using the classes in them into the program
import java.awt.*;
import java.awt.print.*;
import javax.swing.*;
/**
*A class for creating a printer option.
*/
public class Print implements Printable{
private Component componentToBePrinted;
public static void printComponent(Component c){
new Print©.print();
}
public Print(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©;
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(Component c){
RepaintManager currentManager = RepaintManager.currentManager©;
currentManager.setDoubleBufferingEnabled(true);
}
}و بعدين تكتب داخل الـ ActionListener للطباعه
Print.printComponent(textArea)
طبعا الـ textArea هو object من JTextArea ،،
طبعاً الكود من الاخ مدني (f) ...
هو يقول انك تقدر تطبع من اي شئ بواسطه هذا الكود ...
انا قدرت اطبع JTextArea و JTable
و على فكره انا لقيت PrintPreview بكتاب Swing 2nd لكن كان بطئ للغايه :(
هذا الموضوع مغلق.