学习bfo的Big Faceless Graph Library科学使用
BFO
admin 发布于:2025-09-17 17:01:32
阅读:loading
BFO是开发用于处理 PDF 文档和图表的 Java API。它们体积小巧、速度快、文档丰富,并且持续改进。我们提供快速响应、友好的支持以及免费升级,有以下4款产品组件可以免费试用:
(1)Big Faceless PDF Library 用于创建、编辑、显示和打印 PDF 的 Java 类库;
(2)BFO Publisher 现代 HTML 到 PDF 转换器;
(3)Big Faceless Report Generator 一个将 XML 转换为 PDF 的 Java 工具;
(4)Big Faceless Graph Library 用于生成 2D 和 3D 图形和图表的 Java 类库;
特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
使用 Java 创建业界领先的图形和图表。该图表库基于完整的 3D 引擎,可以从任意视角快速绘制二维或带阴影的 3D 饼图、折线图、面积图和条形图,并保存为 PNG、Flash、PDF 或 SVG 文件,效果惊艳。
Big Faceless Graph Library 2.0 版基于 1.0 版的所有功能构建而成,我们相信它是市面上最全面的 Graph Library,比如它的主要功能包含有:
XML 和 JSP 标签库接口,可极其轻松地与 Web 项目集成;
用于图形创建的 SOAP 和 XML Web 服务接口;
非常全面的 API 和标签文档,包含数十个示例;
在您的标签中嵌入 JavaScript,轻松创建强大的翻转功能;
具有可调光源的全 3D 引擎可生成市场上最逼真的图形;
输出为 PNG、SVG、Macromedia Flash、PDF 或java.awt.Image用于小程序;
图表日期、货币、百分比、数字和离散数据开箱即用,可轻松扩展以完全控制轴;
混合条形图、折线图、蜡烛图、气泡图,全部在同一张图表上;
创建漏斗图;
在图表的任何位置(包括轴)添加文本、线条或自定义标记;
在一个图表上最多使用四个轴,包括对数轴;
在同一张图表上绘制数学函数、数据样本和适合数据的样条曲线;
速度很快——每秒可绘制多个 3D 图形为PDF 或 SVG;
图库有很多有趣的功能,最实用的是标签库接口,这使得在网页中嵌入图表变得轻而易举——就像创建 HTML 表格一样简单。大多数人会将图表嵌入为 PNG 格式,这意味着可以使用 JavaScript 创建翻转和操作,其方式与图像映射完全相同。如果您更喜欢矢量图像,只需更改 XML 中的一个单词即可创建 SVG 和 Flash。
一些从官网示例中整理的xml与pdf作为源文件,在此基础上运行输出报表PDF文件,以下是参考代码与示例输出:
public class BarGraphExample extends BaseTest {
@Test
public void main() throws IOException {
// Create 2 series
//
BarSeries series1 = new BarSeries("2001");
series1.setRoundBars(true);
series1.setBarWidth(0.8);
series1.set("apples", 5);
series1.set("bananas", 9);
series1.set("oranges", 2);
series1.set("grapes", 6);
series1.setBarLabels(new TextStyle("Helvetica", 10, Color.black, Align.BOTTOM), null);
BarSeries series2 = new BarSeries("2002");
series2.setBarWidth(0.8);
series2.setBarDepth(0.8);
series2.set("apples", 9);
series2.set("bananas", 10);
series2.set("oranges", 5);
series2.set("grapes", 3);
// Create the graph and add the series
//
AxesGraph graph = new AxesGraph();
graph.addSeries(series1);
graph.addSeries(series2);
// Set some options, including coloring the walls of the graph with stripes
//
graph.getAxis(Axis.LEFT).setWallPaint(new Paint[]{new Color(238, 238, 238), Color.white}, new Color(204, 204, 204), null);
graph.getAxis(Axis.BOTTOM).setWallPaint(new Paint[]{new Color(238, 238, 238), Color.white}, new Color(204, 204, 204), null);
graph.setBackWallPaint(new Paint[]{new Color(238, 238, 238), Color.white}, new Color(204, 204, 204), Axis.LEFT, Axis.BOTTOM, null);
graph.setLightVector(1, 0, -1);
graph.setXRotation(30);
graph.setYRotation(50);
graph.setAxis(Axis.ZAXIS, new ZAxis());
// Add a title
//
TextStyle style = new TextStyle("Default", 24, Color.black, Align.CENTER);
graph.addText("Fruit Consumption Graph", style);
// Write the file
//
ImageOutput image = new ImageOutput(500, 500);
graph.draw(image);
FileOutputStream out = new FileOutputStream("resources/output/bfograph/BarGraphExample.png");
image.writePNG(out, 0);
out.close();
}
}
(Java代码示例)
<?xml version="1.0"?>
<axesgraph width="600" height="600" xrotation="35" yrotation="50" backwallpaint="stripe(#F0F0F0,line=black,axis=left)">
<label font="30pt bold default" paddingbottom="10">Grade 3 Spelling Test Results</label>
<axis pos="left" type="int" wallpaint="stripe(#F0F0F0,line=black)"/>
<axis pos="z" type="zaxis" wallpaint="stripe(#F0F0F0,line=black)" toothlength="0.02"/>
<axis pos="bottom" type="bar" wallpaint="stripe(#F0F0F0,line=black)" align="top center" toothlength="0.02"/>
<barseries name="January" barwidth="0.8" bardepth="0.8" color="gradient(yellow,white)">
<data x="Peter" y="13"/>
<marker name="JanStar" x="0.1" y="12.5" type="star" color="#FF9900" bordercolor="#000000" size="24"/>
<data x="Frank" y="5"/>
<data x="Wendy" y="6"/>
<data x="Kate" y="10"/>
<data x="Simon" y="6"/>
</barseries>
<barseries name="February" barwidth="0.8" bardepth="0.8" color="gradient(white,red)">
<data x="Peter" y="14"/>
<data x="Frank" y="15"/>
<marker name="FebStar" x="1.1" y="14.5" type="star" color="#FF9900" bordercolor="#000000" size="24"/>
<data x="Wendy" y="8"/>
<data x="Kate" y="7"/>
<data x="Simon" y="4"/>
</barseries>
<barseries name="March" barwidth="0.8" bardepth="0.8" color="gradient(white,green)">
<data x="Peter" y="16"/>
<data x="Frank" y="12"/>
<data x="Wendy" y="10"/>
<data x="Kate" y="17"/>
<marker name="MarStar" x="3.1" y="16.5" type="star" color="#FF9900" bordercolor="#000000" size="24"/>
<data x="Simon" y="11" color="gradient(white,blue)"/>
<label x="Simon" y="11" font="10pt bold default" paddingtop="10" align="top center"> Absent for
initial test</label>
</barseries>
<key align="bottom">
<keyitem marker="star" color="#FF9933" bordercolor="#000000" size="24" fontsize="16">Monthly Star!</keyitem>
</key>
</axesgraph>
(XML图表模板)
(3D柱状图)
(蜡烛图)
(3D柱状图)
(PDF单据填充)
(3D饼图)
(其它更多)
(1)Big Faceless Graph Library是bfo公司出的众多产品中的其中一款Java语言的产品;
(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;
(3)试用版功能齐全(它会在创建的每个页面中添加“DEMO”标记),本系列文章中的实现属于的科学使用,不需额外关注License,又不改动Jar的任何地方,同时又恰好没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(5)科学实践版本为2025年的bfograph-2.4.9.jar;
(6)相关示例输出文件下载:《示例输出.zip》,所有的示例输出包含了PDF、svg、png等格式文件;
点赞