【教程】将面板和其他Swing组件绘制到PDF文档

jPDFWriter是一个Java™类库,可以帮助用户无需安装任何第三方驱动或软件即可直接从Java程序中创建PDF文件。该教程演示如何使用免费库jPDFWriter将JPanel和其他Swing组件打印或绘制到PDF文档。

关联产品

java代码示例:

public class PrintPanelToPDF implements Printable
{
    public static void main (String [] args)
    {
    	try
    	{
    	 // create a PDF Printer Job
    	 PDFPrinterJob printer = (PDFPrinterJob)PDFPrinterJob.getPrinterJob ();
    	 // set the printable object 
    	 printer.setPrintable (new PrintPanelToPDF());
    	 // set number of copies to 1 
    	 printer.setCopies (1);
    	 // print and save the document
    	 printer.print("C:\\test\\mydoc.pdf");
    	 // output done message 
    	 System.out.println("Done!");
    	}
    	catch (Throwable t)
    	{
    	 t.printStackTrace();
    	}
    }
 
    public int print (Graphics g, PageFormat pf, int pageIndex) 
    {
    	if (pageIndex == 0)
    	{
 
          // translate the graphics for margins
    	  g.translate(100, 100);
 
    	  // create a panel with a label and a textfield
    	  JPanel myPanel = new javax.swing.JPanel();
    	  myPanel.setName("myPanel");
    	  myPanel.setBorder(new javax.swing.border.EtchedBorder());
    	  myPanel.setBounds(new java.awt.Rectangle(0, 0, 300, 300));
    	  // create a label
    	  JLabel myLabel = new JLabel("MyLabel");
    	  myLabel.setText("Label");
    	  myLabel.setLocation(10, 10);
    	  myLabel.setSize(50, 20);
    	  myLabel.setVisible(true);
    	  // add label to panel
    	  myPanel.add(myLabel);
    	  // create a text field 
    	  JTextField myTextField = new JTextField();
    	  myTextField.setText("My Text");
    	  myTextField.setLocation(65, 10);
    	  myTextField.setSize(50, 20);
    	  myTextField.setVisible(true);
    	  // add text field to panel
    	  myPanel.add(myTextField);
    	 // you can add any swing component here
    	 // ..... 
    	 // revalidate and repaint the panel
    	 myPanel.revalidate();
         myPanel.repaint();
    	 // print the panel to the graphics on page 0
    	 myPanel.print (g);
    	 return Printable.PAGE_EXISTS;
    	}
    	else
    	{
    	 return Printable.NO_SUCH_PAGE;
    	}
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值