想请问在jfreechart可以用array来画图或存图吗?如可以该如何写程序呢?如果不能那应该如何画重复的饼图在pdf呢?我想画的饼图在pdf是这样的。可以给些代码参考吗?
1条回答 默认 最新
- linpyi 2008-11-10 17:34关注
图片你可以放在一个Image[]数组里面
如何生成image就是jfreechart的事情了
你把jfreechart生成的image对象放在Image数组里面,然后传递给itext包进行生成PDF文件.
下面的代码调试成功,需要iText.jar(主要功能包),iTextAsian.jar(主要是用来输出汉字的亚洲语言包)
里面2张图片,我缩放了20%放在左下方50,450 200,450两个坐标位置,如果你需要多加几个一样的写法
至于生成的PDF位置你可以自己调,代码里面有写坐标位置,你可以具体查看下
[code="java"]
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfWriter;public class MakePdf1 {
public static void main(String[] args) {
Document document = new Document();
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(
"d:/HelloWorld.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
document.add(new Paragraph("Hello World!"));
Image img = Image.getInstance("d:/fruit1.jpg");
img.scalePercent(20);//按尺寸缩小比例
/*50是从左下角开始的横向坐标,450是从左下角开始的纵向坐标*/
img.setAbsolutePosition(50, 450);
cb.addImage(img);Image img1 = Image.getInstance("d:/fruit1.jpg"); img1.setAbsolutePosition(200, 450); img1.scalePercent(20); cb.addImage(img1); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } document.close(); System.out.println("over~"); }
}
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
- ¥15 vscode程序一直报同样的错,如何解决?
- ¥15 关于使用unity中遇到的问题
- ¥15 开放世界如何写线性关卡的用例(类似原神)
- ¥15 关于并联谐振电磁感应加热
- ¥15 this signal is connected to multiple drivers怎么解决
- ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
- ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
- ¥66 如何制作支付宝扫码跳转到发红包界面
- ¥15 pnpm 下载element-plus