1.Spire.Doc for Java 服务的介绍
Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中。作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Microsoft Office。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。Spire.Doc for Java 支持 WPS 生成的 Word 格式文档(.wps, .wpt)。
Spire.Doc for Java 能执行多种 Word 文档处理任务,包括生成、读取、转换和打印 Word 文档,插入图片,添加页眉和页脚,创建表格,添加表单域和邮件合并域,添加书签,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接、数字签名,加密和解密 Word 文档,添加批注,添加形状等。
Spire.Doc for Java 几个简单应用:
eg1:文档转换——以Word转PDF为例
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>11.8.1</version>
</dependency>
</dependencies>
import com.spire.doc.*;
public class WordToPDF
{
public static void main(String[] args) {
//实例化Document类的对象
Document doc = new Document();
//加载Word
doc.loadFromFile("测试.docx");
//保存为PDF格式
doc.saveToFile("WordToPDF.pdf",FileFormat.PDF);
}
}
结果:
eg2:文档操作——在Word中嵌入多媒体(视频、音频)文件
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>11.8.1</version>
</dependency>
</dependencies>
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;
import com.spire.doc.fields.DocPicture;
import java.awt.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class EmbedMediaFile {
public static void main(String[] args)throws IOException {
//实例化Document类的对象,并添加Section
Document doc = new Document();
Section section = doc.addSection();
//定义段落样式
ParagraphStyle style1 = new ParagraphStyle(doc);
style1.setName("Style");
style1.getCharacterFormat().setFontName("Calibri");
style1.getCharacterFormat().setFontSize(18);
style1.getCharacterFormat().setBold(true);
style1.getCharacterFormat().setTextColor(new Color(123,104,238));
doc.getStyles().add(style1);
//添加段落1,嵌入视频文件
Paragraph para1 = section.addParagraph();
para1.appendText("嵌入视频文件:");
para1.applyStyle(style1.getName());
InputStream stream1 = new FileInputStream("Video.mp4");
DocPicture pic1 = new DocPicture(doc);
pic1.loadImage("logo1.png");
para1.appendOleObject(stream1, pic1, "mp4");
//添加一个空白段落2
Paragraph para2 = section.addParagraph();
//添加段落3,嵌入音频文件
Paragraph para3 = section.addParagraph();
para3.appendText("嵌入音频文件:");
para3.applyStyle(style1.getName());
InputStream stream2 = new FileInputStream("Audio.mp3");
DocPicture pic2 = new DocPicture(doc);
pic2.loadImage("logo2.png");
para3.appendOleObject(stream2, pic2, "mp3");
//保存文档
doc.saveToFile("Result.docx", FileFormat.Docx_2013);
}
}
结果:
eg3:水印操作——添加文本水印和图片水印
import com.spire.doc.*;
import com.spire.doc.documents.WatermarkLayout;
import java.awt.*;
public class WordTextWatermark {
public static void main(String[] args) {
//创建一个Document实例
Document document = new Document();
//加载示例 Word 文档
document.loadFromFile("示例文档.docx");
//获取第一节
Section section = document.getSections().get(0);
//创建一个 TextWatermark 实例
TextWatermark txtWatermark = new TextWatermark();
//设置文本水印格式
txtWatermark.setText("内部使用");
txtWatermark.setFontSize(40);
txtWatermark.setColor(Color.red);
txtWatermark.setLayout(WatermarkLayout.Diagonal);
//将文本水印添加到示例文档
section.getDocument().setWatermark(txtWatermark);
//保存文件
document.saveToFile("添加文本水印.docx", FileFormat.Docx);
}
结果:
import com.spire.doc.*;
public class WordImageWatermark {
public static void main(String[] args) throws Exception{
//创建一个Document实例
Document document = new Document();
//加载示例 Word 文档
document.loadFromFile("示例文档.docx");
//创建一个 PictureWatermark 实例
PictureWatermark picture = new PictureWatermark();
//设置图像水印格式
picture.setPicture("logo.png");
picture.setScaling(100);
picture.isWashout(false);
//将图像水印添加到示例文档中
document.setWatermark(picture);
//保存文件
document.saveToFile("添加图像水印.docx",FileFormat.Docx );
}
}
结果:
2.Spire.XLS for Java服务介绍
Spire.XLS for Java 支持多种 Excel 文件格式,包括 Excel 97-2003 格式(.xls),以及 Excel 2007、2010、2013、2016 和 2019 格式(.xlsx, .xlsb, .xlsm),此外,它还支持 Open Office(.ods)格式。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。
Spire.XLS for Java 提供了一系列丰富的操作 Excel 的功能,例如创建、读取、编辑、转换和打印 Excel 工作表,查找和替换数据,创建图表,创建自动筛选器,读取和插入超链接,合并或取消合并单元格,合并 Excel 文档,组合或取消组合 Excel 行和列,冻结或取消冻结窗口,数字签名,加密或解密 Excel 工作表等。
Spire.XLS for Java的几个简单应用
eg1:文档转换——将Excel转为PDF
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>13.8.1</version>
</dependency>
</dependencies>
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
public class ConvertExcelToPdf {
public static void main(String[] args) {
//创建一个Workbook实例并加载Excel文件
Workbook workbook = new Workbook();
workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx");
//设置转换后的PDF页面高宽适应工作表的内容大小
workbook.getConverterSetting().setSheetFitToPage(true);
//将生成的文档保存到指定路径
workbook.saveToFile("output/ExcelToPdf", FileFormat.PDF);
}
}
结果:
eg2:图片操作——Excel中插入和提取图片
import com.spire.xls.ExcelPicture;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class InsertImage {
public static void main(String[] args){
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文档
workbook.loadFromFile("Input.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//添加图片到工作表的指定位置
ExcelPicture pic = sheet.getPictures().add(4, 1,"image.jpg");
//设置图片的宽度和高度
pic.setWidth(500);
pic.setHeight(300);
//保存文档
workbook.saveToFile("InsertImage.xlsx", ExcelVersion.Version2013);
}
}
结果:
import com.spire.xls.ExcelPicture;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ReadImage {
public static void main(String[] args) throws IOException {
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文档
workbook.loadFromFile("InsertImage.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//获取工作表中第一张图片并保存到指定路径
ExcelPicture pic = sheet.getPictures().get(0);
BufferedImage loImage = pic.getPicture();
ImageIO.write(loImage,"jpg",new File("output/ReadImage.jpg"));
}
}
结果:
eg3:水印——添加文本水印和图片水印
import com.spire.xls.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import static java.awt.image.BufferedImage.TYPE_INT_ARGB;
public class ExcelWatermark {
public static void main(String[] args) {
//加载示例文档
Workbook workbook = new Workbook();
workbook.loadFromFile("Sample.xlsx");
//设置文本和字体大小
Font font = new Font("仿宋", Font.PLAIN, 40);
String watermark = "内部专用";
for (Worksheet sheet : (Iterable<Worksheet>) workbook.getWorksheets()) {
//调用DrawText() 方法插入图片
BufferedImage imgWtrmrk = drawText(watermark, font, Color.pink, Color.white, sheet.getPageSetup().getPageHeight(), sheet.getPageSetup().getPageWidth());
//将图片设置为页眉
sheet.getPageSetup().setLeftHeaderImage(imgWtrmrk);
sheet.getPageSetup().setLeftHeader("&G");
//将显示模式设置为Layout
sheet.setViewMode(ViewMode.Layout);
}
//保存文档
workbook.saveToFile("Watermark.xlsx", ExcelVersion.Version2010);
}
private static BufferedImage drawText (String text, Font font, Color textColor, Color backColor,double height, double width)
{
//定义图片宽度和高度
BufferedImage img = new BufferedImage((int) width, (int) height, TYPE_INT_ARGB);
Graphics2D loGraphic = img.createGraphics();
//获取文本size
FontMetrics loFontMetrics = loGraphic.getFontMetrics(font);
int liStrWidth = loFontMetrics.stringWidth(text);
int liStrHeight = loFontMetrics.getHeight();
//文本显示样式及位置
loGraphic.setColor(backColor);
loGraphic.fillRect(0, 0, (int) width, (int) height);
loGraphic.translate(((int) width - liStrWidth) / 2, ((int) height - liStrHeight) / 2);
loGraphic.rotate(Math.toRadians(-45));
loGraphic.translate(-((int) width - liStrWidth) / 2, -((int) height - liStrHeight) / 2);
loGraphic.setFont(font);
loGraphic.setColor(textColor);
loGraphic.drawString(text, ((int) width - liStrWidth) / 2, ((int) height - liStrHeight) / 2);
loGraphic.dispose();
return img;
}
}
结果:
3.Spire.Presentation for Java服务的介绍
Spire.Presentation for Java 是一个专业的 PowerPoint API,它允许开发人员在 Java 应用程序中创建、读取、写入、转换和保存 PowerPoint 文档。作为一款独立的 Java 组件,Spire.Presentation for Java 的运行环境无需安装 Microsoft PowerPoint。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。
Spire.Presentation for Java 支持功能十分丰富,如添加/编辑/删除幻灯片,创建图表、表格,添加项目符号,加密和解密 PPT,添加水印,插入超链接、音频和视频,段落设置,文档属性设置,插入/提取图片,提取文本,设置动画,添加页眉和页脚,添加/删除批注,创建 SmartArt 等。
Spire.Presentation for Java几个简单应用
eg1:转换——PPT转XPS
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>8.7.3</version>
</dependency>
</dependencies>
import com.spire.presentation.*;
public class PPTtoXPS {
public static void main(String[] args) throws Exception{
//创建Presentation类的对象
Presentation ppt = new Presentation();
//加载幻灯片文档
ppt.loadFromFile("input.pptx");
//保存为XPS格式
ppt.saveToFile("ToXPS.xps",FileFormat.XPS);
ppt.dispose();
}
}
结果:
eg2:PPT添加、隐藏、删除幻灯片
import com.spire.presentation.*;
public class Slides {
public static void main(String[] args) throws Exception {
//创建一个PowerPoint文档并加载示例文档
Presentation presentation = new Presentation();
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pptx");
//在文档末尾添加新幻灯
presentation.getSlides().append();
//在第二页插入空白幻灯片
presentation.getSlides().insert(1);
//保存文档
presentation.saveToFile("output/AddSlide.pptx", FileFormat.PPTX_2010);
}
}
结果:
import com.spire.presentation.*;
public class Slides {
public static void main(String[] args) throws Exception {
//创建一个PowerPoint文档并加载示例文档
Presentation presentation = new Presentation();
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pptx");
//隐藏第二张幻灯片
presentation.getSlides().get(1).setHidden(true);
//保存文档
presentation.saveToFile("output/Hideslide.pptx", FileFormat.PPTX_2010);
}
}
结果:
import com.spire.presentation.*;
public class Slides {
public static void main(String[] args) throws Exception {
//创建一个PowerPoint文档并加载示例文档
Presentation presentation = new Presentation();
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pptx");
//删除第二张幻灯片
presentation.getSlides().removeAt(1);
//保存文档
presentation.saveToFile("output/Removeslide.pptx", FileFormat.PPTX_2010);
}
}
结果:
eg3:水印——給PPT添加文档水印
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class watermark {
public static void main(String[] args) throws Exception {
//创建presentation对象并加载示例文档
Presentation presentation = new Presentation();
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pptx");
//设置文本水印的宽和高
int width= 400;
int height= 300;
//定义一个长方形区域
Rectangle2D.Double rect = new Rectangle2D.Double((presentation.getSlideSize().getSize().getWidth() - width) / 2,
(presentation.getSlideSize().getSize().getHeight() - height) / 2, width, height);
//添加一个shape到定义区域
IAutoShape shape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect);
//设置shape样式
shape.getFill().setFillType(FillFormatType.NONE);
shape.getShapeStyle().getLineColor().setColor(Color.white);
shape.setRotation(-45);
shape.getLocking().setSelectionProtection(true);
shape.getLine().setFillType(FillFormatType.NONE);
//添加文本到shape
shape.getTextFrame().setText("内部使用");
PortionEx textRange = shape.getTextFrame().getTextRange();
//设置文本水印样式
textRange.getFill().setFillType(FillFormatType.SOLID);
textRange.getFill().getSolidColor().setColor(Color.pink);
textRange.setFontHeight(50);
//保存文档
presentation.saveToFile("output/result.pptx", FileFormat.PPTX_2010);
}
}
结果:
4.Spire.PDF for Java服务的介绍
Spire.PDF for Java 是一款专门对 PDF 文档进行操作的 Java 类库。该类库的主要功能在于帮助开发人员在 Java 应用程序(J2SE 和 J2EE)中生成 PDF 文档和操作现有 PDF 文档,并且运行环境无需安装 Adobe Acrobat。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。
Spire.PDF for Java 支持的功能非常丰富,例如 PDF 文档安全性设置,提取文本和图片,合并和拆分 PDF,画文本、图片、形状、条形码到 PDF,打印 PDF,创建和填充表单,添加和删除层,重叠 PDF 页面,添加文本/图片水印,添加、更新、删除 PDF 书签,添加表格,压缩 PDF 文档等。此外,Spire.PDF for Java 还支持将 PDF 文档高质量地转换为 XPS、图片、Excel、SVG、Word、HTML、OFD 和 PDF/A 格式,以及将 SVG、XPS 和 HTML 文档高质量地转换为 PDF 格式。
Spire.PDF for Java几个简单应用
eg1:文档转换——PDF转Excel
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>9.7.8</version>
</dependency>
</dependencies>
import com.spire.pdf.*;
public class PDFtoExcel {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.loadFromFile("test.pdf");
//保存为Excel
pdf.saveToFile("PDFToXLS.xlsx", FileFormat.XLSX);
}
}
结果:
eg2:水印——PDF添加文档水印
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class insertSingleTextWaterMark {
public static void main(String[] args) {
//创建PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("人的注意力很容易分散.pdf");
//循环遍历 PDF 文档中的所有页面以逐个添加水印
String text = "草稿";
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", Font.BOLD, 50));
float set1 = (float) (font.measureString(text).getWidth() * Math.sqrt(2)/4);
float set2 = (float) (font.measureString(text).getHeight() * Math.sqrt(2)/4);
for (int i = 0; i < pdf.getPages().getCount(); i++){
//获取一个页面
PdfPageBase page = pdf.getPages().get(i);
//设置水印文字的透明度
page.getCanvas().setTransparency(0.8f);
//设置坐标的偏移量
page.getCanvas().translateTransform(page.getCanvas().getSize().getWidth()/2 - set1 - set2, page.getCanvas().getSize().getHeight()/2 + set1 - set2);
//设置水印文字的旋转角度
page.getCanvas().rotateTransform(-45);
//将水印绘制在该页面上
page.getCanvas().drawString(text, font, PdfBrushes.getDarkGray(), 0, 0);
}
//保存文档
pdf.saveToFile("单一文字水印.pdf");
}
}
结果:
eg3:PDF添加图片水印
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.htmlconverter.qt.Size;
import java.awt.*;
import java.awt.geom.*;
public class insertTiledTextWatermark {
public static void main(String[] args) {
//创建PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文件
pdf.loadFromFile("人的注意力很容易分散.pdf");
//循环遍历PDF文档中的所有页面以逐个添加水印
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", Font.BOLD, 20));
for (int i = 0; i < pdf.getPages().getCount(); i++){
PdfPageBase pageBase = pdf.getPages().get(i);
insertTextWatermark(pageBase, font, "请勿复制", 3, 3);
}
//保存文档
pdf.saveToFile("平铺文字水印.pdf");
}
static void insertTextWatermark(PdfPageBase page, PdfTrueTypeFont font, String watermark, int row, int column) {
//计算两个偏移变量的值以用于计算坐标的平移量
float set1 = (float)(font.measureString(watermark).getWidth() * Math.sqrt(2)/4);
float set2 = (float)(font.measureString(watermark).getHeight() * Math.sqrt(2)/4);
//创建一个平铺笔刷
PdfTilingBrush brush = new PdfTilingBrush(new Dimension((int) (page.getActualSize().getWidth()/column), (int) (page.getActualSize().getHeight()/row)));
brush.getGraphics().setTransparency(0.3f);
brush.getGraphics().save();
brush.getGraphics().translateTransform(brush.getSize().getWidth()/2 - set1 - set2, brush.getSize().getHeight()/2 + set1 - set2);
brush.getGraphics().rotateTransform(-45);
//绘制水印文本到平铺笔刷
brush.getGraphics().drawString(watermark, font, PdfBrushes.getViolet(), 0, 0);
brush.getGraphics().restore();
//使用该平铺笔刷绘制水印
page.getCanvas().drawRectangle(brush, new Rectangle(new Point(0, 0), new Dimension((int)(page.getActualSize().getWidth()), (int)(page.getActualSize().getHeight()))));
}
}
结果:
5.Spire.Barcode for Java服务的介绍
Spire.Barcode for Java 是一款基于 Java 语言开发的,专门对条形码进行操作的类库。这款产品的主要功能在于帮助开发人员轻松快捷高效地生成、读取和扫描一维条码和二维条码。
Spire.Barcode for Java 使用者可以仅通过一两行代码来创建自己需要的条形码类型及数据,并整合应用到开发程序上。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。Spire.Barcode 支持各种常见的图片格式,比如 Bitmap,JPG,PNG,EMF,TIFF,GIF 和 WMF。
Spire.Barcode for Java几个简单应用
eg1:创建条形码
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.barcode</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
import com.spire.barcode.BarCodeGenerator;
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeSettings;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class CreateBarcode {
public static void main(String[] args) throws IOException {
BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
settings.setType(BarCodeType.Code_128);//指定条码类型
settings.setData("123456789123");//设置条码数据
settings.setData2D("123456789123");//设置条码显示数据
settings.setShowText(true);//显示数据文本
settings.setShowTextOnBottom(true);//设置数据文本显示在条码底部
settings.setX(0.8f);//设置黑白条宽度
settings.setImageHeight(50);//设置生成的条码图片高度
settings.setImageWidth(70);//设置生成的条码图片宽度
settings.hasBorder(true);//设置边框可见
settings.setBorderColor(new Color(135,206,250));//设置条码边框颜色
settings.setBorderWidth(1);//设置条码边框宽度
settings.setBackColor(new Color(240,255,255));//设置条码背景色
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
ImageIO.write(bufferedImage, "png", new File("Code_128.png"));//保存条码为PNG图片
}
}
结果:
eg2:识别条形码
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeScanner;
public class SpireBarcode_test {
public static void main(String[] args) throws Exception {
//使用scan方法从图片中识别Code 128条形码
String[] datas = BarcodeScanner.scan("C:\\code128.jpg", BarCodeType.Code_128);
System.out.print(datas[0]);
}
}
eg3:生成QR二维码
//创建BarcodeSettings实例
BarcodeSettings settings = new BarcodeSettings();
//设置条码类型为QR二维码
settings.setType(BarCodeType.QR_Code);
//设置二维码数据
settings.setData("Hello 123456789");
//设置二维码显示数据
settings.setData2D("Hello 123456789");
//设置数据类型
settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);
//设置二维码模型宽度
settings.setX(1.0f);
//设置二维码纠错级别
settings.setQRCodeECL(QRCodeECL.H);
//创建BarCodeGenerator实例
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
//根据settings生成图像数据,保存至BufferedImage实例
BufferedImage bufferedImage = barCodeGenerator.generateImage();
//保存为PNG图片
ImageIO.write(bufferedImage, "png", new File("QRCode.png"));
System.out.println("Complete!");
结果: