学习bfo的Big Faceless PDF Library科学实践(一)常规应用

BFO
placeholder image
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.基本介绍

(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 运行;

2.Hello World

@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();
        }
    }
}

image.png

(已科学)

image.png

(未科学)

3.图片示例

@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();
    }
}

image.png


4.其它示例

image.png

(文字与图片)

image.png

(PathExample)

image.png


(阿里编码规范PDF内容提取)

5.其它说明

(1)Big Faceless PDF Library是bfo公司出的众多产品中的其中一款Java语言的产品;

(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;

(3)试用版功能齐全(它会在创建的每个页面中添加“DEMO”标记),本系列文章中的实现属于的科学使用,不需额外关注License,又不改动Jar的任何地方,同时又恰好没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

(5)科学实践版本为2025年的bfopdf-2.29.2.jar;

(6)相关示例输出文件下载:《示例输出.zip》;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区