java: spire.pdf.free 9.12.3 create pdf

embedded/2024/11/26 3:15:29/

可以用windows 系统中文字体,也可以从文件夹的字体文件

java">/*** encoding: utf-8* 版权所有 2024 ©涂聚文有限公司* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎* 描述:* # Author    : geovindu,Geovin Du 涂聚文.* # IDE       : IntelliJ IDEA 2023.1 Java 17* # Datetime  : 2024 - 2024/1/11 - 20:32* # User      : geovindu* # Product   : IntelliJ IDEA* # Project   : EssentialAlgorithms* # File      : simpleTable.java* # explain   : 学习  类**/package BLL;import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.tables.*;
import java.awt.*;
import java.awt.geom.Point2D;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;public class SimpleTable {/*** 生成表格示例*/public  void createtable(){try {String fontFile2 = "font/MHeiHK-Light.TTF";String path = "C:/WINDOWS/Fonts/simhei.ttf";//windows里的字体资源路径PdfDocument doc = new PdfDocument();//Set marginPdfUnitConvertor unitCvtr = new PdfUnitConvertor();PdfMargins margin = new PdfMargins();margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));margin.setBottom(margin.getTop());margin.setLeft(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));margin.setRight(margin.getLeft());// Create one pagePdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);float y = 10;//Draw text using private fontString fontFileName = "font/MHeiHK-Light.TTF";PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(fontFileName, 14f);//Draw titlePdfBrush brush1 = PdfBrushes.getBlack();PdfTrueTypeFont font1 = new PdfTrueTypeFont(trueTypeFont,12f);PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);page.getCanvas().drawString("国家列表", trueTypeFont, brush1, page.getCanvas().getClientSize().getWidth() / 2, y, format1);y = y + (float) font1.measureString("国家列表", format1).getHeight();y = y + 5;String[] data = {"国家;首都;洲域;面积;人口", "Argentina;Buenos Aires;South America;2777815;32300003", "Bolivia;La Paz;South America;1098575;7300000", "Brazil;Brasilia;South America;8511196;150400000", "Canada;Ottawa;North America;9976147;26500000", "Chile;Santiago;South America;756943;13200000", "Colombia;Bagota;South America;1138907;33000000", "Cuba;Havana;North America;114524;10600000", "Ecuador;Quito;South America;455502;10600000", "El Salvador;San Salvador;North America;20865;5300000", "Guyana;Georgetown;South America;214969;800000", "Jamaica;Kingston;North America;11424;2500000", "Mexico;Mexico City;North America;1967180;88600000", "Nicaragua;Managua;North America;139000;3900000", "Paraguay;Asuncion;South America;406576;4660000", "Peru;Lima;South America;1285215;21600000", "United States of America;Washington;North America;9363130;249200000", "Uruguay;Montevideo;South America;176140;3002000", "Venezuela;Caracas;South America;912047;19700000"};String[][] dataSource = new String[data.length][];for (int i = 0; i < data.length; i++) {dataSource[i] = data[i].split("[;]", -1);}PdfTable table = new PdfTable();//设置表头字体和样式PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体",Font.PLAIN, 12));table.getStyle().getHeaderStyle().setFont(font);table.getStyle().getHeaderStyle().setBackgroundBrush(PdfBrushes.getCadetBlue());PdfTrueTypeFont fontBody = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN,10));//设置偶数行字体table.getStyle().getDefaultStyle().setFont(fontBody);//设置奇数行字体table.getStyle().getAlternateStyle().setFont(fontBody);table.getStyle().setCellPadding(2);table.getStyle().setHeaderSource(PdfHeaderSource.Rows);table.getStyle().setHeaderRowCount(1);table.getStyle().setShowHeader(true);table.setDataSource(dataSource);PdfLayoutResult result = table.draw(page, new Point2D.Float(0, y));y = y + (float) result.getBounds().getHeight() + 5;PdfBrush brush2 = PdfBrushes.getGray();PdfTrueTypeFont font2 = new PdfTrueTypeFont(trueTypeFont,12f);page.getCanvas().drawString(String.format("国家* %1$s个:.", data.length - 1), font2, brush2, 5, y);//Save pdf file.doc.saveToFile("simpleTable.pdf");}catch (Exception exception){System.out.println(exception.toString());}}}

调用:

java">        //生成PDF文檔SimpleTable simpleTable=new SimpleTable();simpleTable.createtable();


http://www.ppmy.cn/embedded/140533.html

相关文章

数据结构哈希表-(开放地址法+二次探测法解决哈希冲突)(创建+删除+插入)+(C语言代码)

#include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define M 20 #define NULLDEL -1 #define DELDEY -2typedef struct {int key;int count; }HashTable;//创建和插入 void Insert(HashTable ha[], int m, int p, int key) {int i, HO, HI;HO key…

微服务系列概览

分布式和微服务的区别是什么&#xff1f; 分布式是把一个集中式系统拆分成多个系统&#xff0c;每一个系统单独对外提供部分功能&#xff0c;整个分布式系统整体对外提供一整套服务。对于访问分布式系统的用户来说&#xff0c;感知上就像访问一台计算机一样。 而分布式架构的…

Elasticsearch面试内容整理-安全与权限管理

在 Elasticsearch 中,安全与权限管理至关重要,特别是当系统处理敏感数据时。Elasticsearch 提供了一套全面的安全机制来确保数据的机密性、完整性和可用性。以下是 Elasticsearch 安全与权限管理的详细介绍。 安全组件概述 Elasticsearch 的安全功能由 Elastic Stack 提供的一…

C#开发最快的浏览器,打造极速浏览体验

在现代软件开发中&#xff0c;浏览器已成为我们日常生活中不可或缺的一部分。对于C#开发者来说&#xff0c;使用C#开发一个快速且功能齐全的浏览器是一个挑战&#xff0c;但也是一个展示技术实力的机会。本文将介绍如何使用C#和CefSharp库开发一个高性能的浏览器&#xff0c;以…

高可用系统建设指南

高可用系统建设指南 1. 容错设计 1.1 故障隔离 1.1.1 隔离层级与实战案例 a) 进程隔离 独立部署的服务进程进程级别的资源限制JVM参数优化示例&#xff1a; # JVM内存与GC配置 JAVA_OPTS"-Xms4g -Xmx4g -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:HeapDumpOnOutOfMem…

修复HIve表乱码问题

修改数据库编码 # 修改已存在的hive元数据库&#xff0c;字符编码格式为utf8mb4 mysql> alter database hive character set utf8mb4; # 进入hive元数据库 mysql> use hive;# 查看元数据库字符编码格式 mysql> show variables like character_set_database; 修改…

单片机电路基本知识

单片机电路基本知识 MCU(C51) 概念&#xff1a;应用实例家用电子&#xff0c;汽车电子&#xff0c;嵌入式系统&#xff0c;低成本&#xff0c;低功耗&#xff0c;小型化&#xff0c;通常使用c语言或者汇编语言&#xff0c;用于家用电器控制&#xff0c;智能家居&#xff0c;汽…

Windows RDP连接Ubuntu桌面

Windows RDP连接Ubuntu桌面 文章目录 Windows RDP连接Ubuntu桌面1. 安装 RDP 服务器2. 配置 Xfce4 桌面3. 配置 xrdp4. 启动 xrdp 服务&#xff1a;5. 允许通过防火墙&#xff08;可选&#xff09;6. 连接到RDP服务器7. 参考博客 1. 安装 RDP 服务器 在Ubuntu系统上&#xff0…