学习bfo的Big Faceless PDF Library科学实践(一)常规应用
BFO
admin 发布于:2025-09-15 09:17:30
阅读: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 类库;
特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
(1)最智能的 PDF 库,用于创建、编辑、显示和打印 Acrobat PDF 文档。PDF API 小巧、快速、易于使用且易于集成到您的项目中,并且完全用 Java 编写;
(2)保PDF 库可读取和写入所有版本的 Acrobat(包括 PDF 2.0)的 PDF,并拥有一系列动态功能,包括:全面支持 PDF 功能、嵌入 JPEG、PNG、GIF、TIFF 或 java.awt.Image 图像、多语言多字体等;
(3)提供Swing加载PDF文档的组件,将PDF转换为其它图片格式;
(4)具有可扩展性、线程安全性和极快的速度,可以在从小型 PC 到大型机的任何 Java 平台上运行;
(5)PDF 库不使用原生代码,无需安装其他软件包,并且可以轻松地在 Windows、Unix 或任何其他运行 Java 1.4 或更高版本的系统上通过 EJB、Servlet 或 JSP 运行;
@RunWith(JUnit4.class)
public class HelloWorldTest extends BaseTest {
@Test
public void test() {
PDF pdf = new PDF();
PDFPage page = pdf.newPage("A4");
// Create a new "style" to write in - Black 24pt Helvetica.
PDFStyle mystyle = new PDFStyle();
PDFFont font = new StandardFont(StandardFont.HELVETICA);
mystyle.setFont(font, 24);
mystyle.setFillColor(Color.black);
// Put something on the page.
page.setStyle(mystyle);
page.drawText("Hello, PDF-viewing World!", 100, page.getHeight()-100);
// Add some meta-info and set a "fit page" action to run when opened.
pdf.setInfo("Author", "Joe Bloggs");
pdf.setInfo("Title", "My First Document");
pdf.setInfo("Producer" , "666");
pdf.setAction(Event.OPEN, PDFAction.goToFit(page));
// Write the document to a file
try {
OutputStream fo = new FileOutputStream("resources/output/bfopdf/HelloWorld.pdf");
pdf.render(fo);
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
(已科学)
(未科学)
@RunWith(JUnit4.class)
public class ImageToPdfTest extends BaseTest {
@Test
public void test() throws IOException {
PDF pdf = new PDF();
InputStream in1 = new FileInputStream("resources/input/bfopdf/logo.png");
PDFImageSet imgs = new PDFImageSet(in1);
for (int j=0;j<imgs.getNumImages();j++) {
// For each page in the image set, create a new page in the
// PDF that's the same size, and display the image.
PDFImage img = imgs.getImage(j);
float w = img.getWidth();
float h = img.getHeight();
PDFPage page = pdf.newPage((int)w, (int)h);
PDFStyle style = new PDFStyle();
page.drawImage(img, 0, 0, w, h);
}
in1.close();
InputStream in2 = new FileInputStream("resources/input/bfopdf/africa.gif");
PDFImageSet imgs2 = new PDFImageSet(in2);
for (int j=0;j<imgs2.getNumImages();j++) {
// For each page in the image set, create a new page in the
// PDF that's the same size, and display the image.
PDFImage img = imgs2.getImage(j);
float w = img.getWidth();
float h = img.getHeight();
PDFPage page = pdf.newPage((int)w, (int)h);
PDFStyle style = new PDFStyle();
page.drawImage(img, 0, 0, w, h);
}
in2.close();
OutputStream fo = new FileOutputStream("resources/output/bfopdf/ImageToPDF.pdf");
pdf.render(fo);
fo.close();
}
}
(文字与图片)
(PathExample)
(阿里编码规范PDF内容提取)
(1)Big Faceless PDF Library是bfo公司出的众多产品中的其中一款Java语言的产品;
(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;
(3)试用版功能齐全(它会在创建的每个页面中添加“DEMO”标记),本系列文章中的实现属于的科学使用,不需额外关注License,又不改动Jar的任何地方,同时又恰好没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(5)科学实践版本为2025年的bfopdf-2.29.2.jar;
(6)相关示例输出文件下载:《示例输出.zip》;
点赞