本文介绍使用Spire.Presentation for Java删除PPT幻灯片中的图片。
import com.spire.presentation.*;
public class RemoveImages {
public static void main(String[] args) throws Exception{
//加载PPT文档
Presentation ppt = new Presentation();
ppt.loadFromFile("sample.pptx");
//获取指定幻灯片
ISlide slide = ppt.getSlides().get(1);
//遍历幻灯片中的形状
for( int i = 0; i< slide.getShapes().getCount();i++){
IShape shape = slide.getShapes().get(i);
//删除图片
if(shape instanceof SlidePicture){
SlidePicture pic = (SlidePicture) shape;
slide.getShapes().remove(pic);
}
}
//保存文档
ppt.saveToFile("removeimgs.pptx", FileFormat.PPTX_2013);
ppt.dispose();
}
}
图片删除效果:

Spire.XLS for Java 3.7.5现已发布。此版本支持转换Excel到Tiff,同时它也修复了一些在Excel转PDF/图片/XML时出现的问题。更多详情参见下文。
新功能:
worksheet.saveToTiff(name);
worksheet.saveToTiff(name,starRow,startColumn,endRow,endColumn);
问题修复:
Spire.PDF for Java支持删除指定PDF子书签、指定PDF父书签及其子书签以及删除所有PDF书签,本文将介绍如何使用Spire.PDF for Java删除PDF书签。
原PDF文档:

import com.spire.pdf.PdfDocument;
public class DeleteBookmarks {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.loadFromFile("AddBookmarks-zh.pdf");
//删除第一个子书签
pdf.getBookmarks().get(0).removeAt(0);
//删除第一个书签及其子书签
//pdf.getBookmarks().removeAt(0);
//删除所有书签
//pdf.getBookmarks().clear();
//保存结果文档
pdf.saveToFile("DeleteBookmarks-cn.pdf");
}
}
删除第一个子书签后的结果PDF文档:

该文将介绍如何使用Spire.XLS for Java在Excel工作表中添加文本水印和图片水印。Excel 水印在正常模式下不可见,仅在页面布局模式或打印预览模式可见。
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;
}
}Excel工作表添加文本水印效果图:

Spire.PDF 6.7.12已发布。该版本新增了将PDF转为Excel是支持图表的功能,并修复了打印PDF文件、绘制页面内容以及获取图片时出现的一些问题。新功能及问题修复详情如下。
新功能:
问题修复:
本文介绍使用Spire.PDF for Java来读取PDF中的书签。
import com.spire.pdf.*;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfBookmarkCollection;
import java.io.FileWriter;
import java.io.IOException;
public class GetBookmark {
public static void main(String[] args) {
//加载包含书签的PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("AddBookmarks.pdf");
//获取书签集合
PdfBookmarkCollection bookmarkCollection = pdf.getBookmarks();
//实例化StringBuilder类
StringBuilder stringbuilder = new StringBuilder();
//定义方法获取书签
GetBookmarkTitle(bookmarkCollection, stringbuilder);
//声明txt文件,并将获得的多级书签写入到文件.txt
FileWriter writer;
try {
writer = new FileWriter("读取的书签.txt");
writer.write(stringbuilder.toString());
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
pdf.dispose();
}
//定义方法获取书签标题
static void GetBookmarkTitle(PdfBookmarkCollection bookmarkCollection, StringBuilder stringbuilder)
{
if (bookmarkCollection.getCount()> 0)
{
for(int i = 0 ; i< bookmarkCollection.getCount(); i++ )
{
PdfBookmark parentBookmark = bookmarkCollection.get(i);
stringbuilder.append(parentBookmark.getTitle());
//递归文档多级书签
GetBookmarkTitle(parentBookmark, stringbuilder);
}
}
}
}
书签读取结果:

Spire.Presentation for Java 3.7.9于今日发布。该版本具备了一些新功能,比如,它支持获取PPT的节。除此之外,它也解决了一些在PPT转PDF/Image,加载及操作PPT文档时遇到的问题。详情见下文。
新功能:
SectionList list= presentation.getSectionList();
list.get(0).getName();
IAutoShape autoShape=presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE,new Rectangle2D.Double(100,100,100,100));
autoShape.setClick(ClickHyperlink.getLastVievedSlide());
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
Excel 工作表中的批注是基于单元格的附加内容,可隐藏或以对话框显示在单元格旁。Excel 批注通常用于对单元格中的内容进行解释,也可以用于对阅读者进行提示等。批注添加到单元格中后,用户还可以对其进行显示、隐藏等设置,同时还可以对其进行编辑或删除等操作。本文将介绍如何使用 Spire.XLS for Java 通过代码编辑或删除 Excel 工作表中的批注。
首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作为一个依赖项。您可以从此链接下载 JAR 文件。如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>16.9.2</version>
</dependency>
</dependencies>
添加批注但 Excel 工作表中的单元格后,我们可能需要对其进行更改。以下表格中的类和方法可以获取单元格中的批注,并设置新的批注文字或批注格式。
| 类或方法 | 说明 |
| ExcelCommentObject 类 | 代表 Excel 工作表中的批注。 |
| CellRange.getComment() 方法 | 返回一个代表指定单元格范围内的批注的对象。 |
| ExcelCommentObject.setText() 方法 | 设置批注的文字。 |
| ExcelCommentObject.setHeight() 方法 | 设置批注对话框的高度。 |
| ExcelCommentObject.setWidth() 方法 | 设置批注对话框的宽度。 |
| ExcelCommentObject.setAutoSize() 方法 | 设置批注对话框是否自动调整为适应文字的高度和宽度。 |
编辑 Excel 工作表中的批注的操作步骤如下:
import com.spire.xls.*;
public class modifyComment {
public static void main(String[] args) {
//创建Workbook类的对象
Workbook wb = new Workbook();
//载入Excel文件
wb.loadFromFile("新员工信息.xlsx");
//获取载入的工作簿的第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取指定单元格的批注并设置新的批注文本
sheet.getRange().get("A6").getComment().setText("Patrick下个月离职。");
sheet.getRange().get("A4").getComment().setText("Martin上个月业绩最好。");
//设置新批注的高度和宽度
sheet.getRange().get("A6").getComment().setHeight(100);
sheet.getRange().get("A6").getComment().setWidth(100);
sheet.getRange().get("A4").getComment().setAutoSize(true);
//保存文件
wb.saveToFile("编辑批注.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
删除 Excel 工作表中批注的详细操作步骤如下:
import com.spire.xls.*;
public class deleteComment {
public static void main(String[] args) {
//创建Workbook类的对象
Workbook wb = new Workbook();
//载入Excel文件
wb.loadFromFile("新员工信息.xlsx");
//获取载入的工作簿的第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取指定单元格的批注并删除
sheet.getRange().get("A4").getComment().remove();
//保存文件
wb.saveToFile("删除批注.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
本文将介绍如何使用Spire.PDF for Java修改PDF文档中的现有书签,例如修改书签标题、字体颜色和字体样式。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
public class EditBookmarks {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//加载PDF文档
doc.loadFromFile("Bookmarks-cn.pdf");
//获取第一个书签
PdfBookmark bookmark = doc.getBookmarks().get(0);
//修改书签的标题
bookmark.setTitle("新标题");
//修改书签的字体颜色
bookmark.setColor(new PdfRGBColor(new Color(255,0,0)));
//修改书签的字体样式
bookmark.setDisplayStyle(PdfTextStyle.Bold);
//修改第一个书签的子书签的字体颜色和字体样式
for (PdfBookmark childBookmark : (Iterable<PdfBookmark>) bookmark) {
childBookmark.setColor(new PdfRGBColor(new Color(0,0,255)));
childBookmark.setDisplayStyle(PdfTextStyle.Italic);
for (PdfBookmark childBookmark2 : (Iterable<PdfBookmark>) childBookmark) {
childBookmark2.setColor(new PdfRGBColor(new Color(160,160,122)) );
childBookmark2.setDisplayStyle(PdfTextStyle.Italic);
}
}
//保存文档
doc.saveToFile("EditBookmarks.pdf");
doc.close();
}
}
修改前后效果对比:

本文将介绍如何使用Spire.PDF for Java在Java程序中为PDF文档中的图片设置透明度:
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.geom.*;
import java.awt.*;
public class ImageTransparency {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument doc = new PdfDocument();
PdfSection section = doc.getSections().add();
// 加载图片
PdfImage image = PdfImage.fromFile("logo.png");
double imageWidth = image.getPhysicalDimension().getWidth() / 3;
double imageHeight = image.getPhysicalDimension().getHeight() / 3;
//添加一页
PdfPageBase page = section.getPages().add();
float pageWidth = (float) page.getCanvas().getClientSize().getWidth();
float y = 10;
//标题文字
y = y + 5;
PdfBrush brush = new PdfSolidBrush(new PdfRGBColor(new Color(255,69,0)));
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.BOLD,12));
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
String text = String.format("设置图片透明度");
page.getCanvas().drawString(text, font, brush, pageWidth / 2, y, format);
Dimension2D size = font.measureString(text, format);
y = y + (float) size.getHeight() + 6;
//设置图片透明度
page.getCanvas().setTransparency(0.2f, 0.2f, PdfBlendMode.Normal);
page.getCanvas().drawImage(image, 0, y, imageWidth, imageHeight);
page.getCanvas().save();
// 保存文档
doc.saveToFile("output/Transparency.pdf");
doc.close();
}
}
设置图片透明度的效果图:
