2011-02-12 66 views
0

我正在使用以下代码进行打印JTable转为PDF。不幸的是,打印的页面没有左边距,也没有打印表格标题。将裕量设置为打印到pdf

我为此使用iText,不想为此使用任何其他API。 我该如何解决这个问题?

private void print() { 
    Document document = new Document(); 
    try { 
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("jTable.pdf")); 

     document.open(); 
     PdfContentByte cb = writer.getDirectContent(); 

     cb.saveState(); 
     Graphics2D g2 = cb.createGraphicsShapes(800, 500); 

     Shape oldClip = g2.getClip(); 
     g2.clipRect(0, 0, 800, 500); 

     jTable.print(g2); 
     g2.setClip(oldClip); 

     g2.dispose(); 
     cb.restoreState(); 
    } catch (Exception e) { 
     System.err.println(e.getMessage()); 
    } 
    document.close(); 
    } 

回答

0

使用g2.translate()调用print()之前转移表内容