小编aja*_*oti的帖子

如何在特定坐标处以pdf格式导出完整的JTable组件

在我的项目中,我必须使用所有自定义(如边框,颜色等)在pdf中打印JTable组件.对于这个要求,我搜索了一下,发现一个代码在pdfs中打印JTable.但是在打印之后我发现第一行和第一列的表格边框丢失了,而且我找不到在某个特定坐标处打印的方法.请看下面的具体代码: -

package com.jpmorgan.dqreport;

import java.awt.BorderLayout;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.io.FileOutputStream;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfWriter;

public class JTable2Pdf extends JFrame {
  private JTable table;

  public JTable2Pdf() {
    getContentPane().setLayout(new BorderLayout());
    createTable();
  }
  private void createTable() {
      Object[][] data = {
                {"Kathy", "Smith",
                 "SnowboardingXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", new Integer(5), new Boolean(false)},
                {"John", "Doe",
                 "Rowing", new Integer(3), new Boolean(true)},
                {"Sue", "Black",
                 "Knitting", new Integer(2), new Boolean(false)},
                {"Jane", "White",
                 "Speed reading", new Integer(20), new Boolean(true)},
                {"Joe", …
Run Code Online (Sandbox Code Playgroud)

java pdf swing jtable itext

5
推荐指数
2
解决办法
1万
查看次数

如何在pdf上打印bufferedImage

我正在研究pdf报告申请.运用

itext 5.3.3.jar jdk 1.6

我想在pdf上打印JTable.我正确地获得了JTable图像,但无法在pdf上获取图像.无论如何,我可以在pdf上打印BufferedImage.我用下面的代码: -

如果可能的话,尝试在pdf上编写bufferedImage.

private static void print(BufferedImage bi,JTable table) { 
    Document document = new Document(PageSize.A4.rotate()); 
    try { 
      PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("F:/jTable.pdf")); 

      document.open(); 
      PdfContentByte cb = writer.getDirectContent(); 
      PdfTemplate pdfTemplate = cb.createTemplate(table.getWidth(), table.getHeight()); 
      Image image = Image.getInstance(bi , null); 
      image.scaleToFit(table.getWidth(), table.getHeight()); 
      table.addNotify();
      table.validate();
      Graphics2D g2 = pdfTemplate.createGraphics(table.getWidth(), table.getHeight()); 
      table.print(g2);
      pdfTemplate.addImage(image); 
      /*g2.setColor(Color.BLACK); 
      g2.drawRect(x-2, y-2, table.getWidth()+2, table.getHeight()+2);*/ 
      //table.print(g2); 

      cb.addTemplate(pdfTemplate, 0,20); 



    } catch (Exception e) { 
      System.err.println(e.getMessage()); 
    } 
    document.close(); 
  } 
Run Code Online (Sandbox Code Playgroud)

但它告诉我类似下面的内容: -

图像必须具有绝对定位.线程"main"中的异常com.itextpdf.text.exceptions.IllegalPdfSyntaxException:不平衡的保存/恢复状态运算符.在com.itextpdf.text.pdf.PdfContentByte.sanityCheck(PdfContentByte.java:3083)在com.itextpdf.text.pdf.PdfContentByte.toPdf(PdfContentByte.java:248)在com.itextpdf.text.pdf.PdfFormXObject.( PdfFormXObject.java:88)在com.itextpdf.text.pdf.PdfTemplate.getFormXObject(PdfTemplate.java:247)在com.itextpdf.text.pdf.PdfWriter.addXFormsToBody(PdfWriter.java:1293)在com.itextpdf.text .pdf.PdfWriter.addSharedObjectsToBody(PdfWriter.java:1304)在com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1209)在com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:768 )在com.itextpdf.text.Document.close(Document.java:398)在com.swing.data.TableImage.print(TableImage.java:102)在com.swing.data.TableImage.main(TableImage.java: 52)

以下是测试代码: …

java pdf graphics swing itext

5
推荐指数
2
解决办法
1万
查看次数

怎样才能给出不同颜色的JTable单元边框(左,右,上,下)?

我们需要在pdf上绘制JTable.对于这个要求,我采用了JTable并直接打印到pdf上.但是我没有获得JTable的Left和Top边框.另外,我需要为表格切割单元格边框.无论如何,我可以为JTable中的单元格赋予不同的颜色边框吗?例如: -

Left Border = Grid Color
Top Border = Grid Color
Right Border = Black Color
Bottom Border =  Grid Color
Run Code Online (Sandbox Code Playgroud)

任何与此相关的建议都会非常有用吗?

java pdf swing border jtable

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×3

pdf ×3

swing ×3

itext ×2

jtable ×2

border ×1

graphics ×1