السلام عليكم وكل عام وأنتم بخير, وبعد:
الطريقة التقليدية للطباعة في جافا والتي أستخدمها حتى الآن هي تحقيق الواجهة Printaple واستخدام الصف PrinterJob الموجود في الحزمة java.awt.print وللتمكن من اجراء الطباعة عليك تحقيق الطريقة print والتي أحد وسطائها غرض من الصف Graghics وباستخدام الطريقة drawString من هذا الغرض تتمكن من طباعة النص الذي مررته لهذه الطريقة ولكن عليك تحديد موقع ظهور هذا النص في الورقة بتحديد الابعاد بالبكسل، واليك هذا المثال ليوضح ما قلته:
[code]import java.awt.*;
import java.awt.print.*;
public class Printer implements Printable {
public static void main(String[] args)
{
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new Printer());
if (job.printDialog())
{
try
{ job.print(); }
catch (Exception e)
{ System.out.print(e.toString()); }
}
}
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException
{
g.setFont(new Font("Arial", Font.PLAIN, 16));
g.drawString("Printing in JAVA is easy!!!!!!!",
100, 100);
return Printable.PAGE_EXISTS;
}
}هذا المثال مناسب لطباعة نص صغير ولكن المشكلة عندما تريد طباعة عدة نصوص وبتنسيق معين فهذه الطريقة صعبة جدا حيث انك مضطر لتحديد موقع كل عبارة أو جملة بالبكسل، وهو ما أعاني منه الان .
والطلب هو طريقة أخرى أكثر مرونة تمكنك من طباعة البيانات كما هي . ولكم جزيل الشكر.