Spire.Presentation for Java 4.1.6已发布。该版本增强了转换PPT 到 图片/PDF/HTML的功能,修复了加载PPT时出现的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
PDF 注释是添加到文档中的注解或标记,可以用于添加评论、给出解释、给予反馈等。文档共同创作者之间经常用注释就文档内容进行沟通。然而,当与注释相关的问题已经处理完毕或文件已经定稿时,就有必要删除文档中的注释,使文件更加简洁和专业。本文将介绍如何使用 Spire.PDF for Java 通过程序删除 PDF 注释。
首先,您需要在 Java 程序中添加 Spire.Pdf.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.pdf</artifactId>
<version>11.11.11</version>
</dependency>
</dependencies>
注释是页面级的文档元素,因此删除指定注释需要先获取该注释所在的页面,然后再使用 PdfPageBase.getAnnotationsWidget().removeAt() 方法删除该注释。详细操作步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
public class RemoveAnnotation {
public static void main(String[] args) {
//创建PdfDocument的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("C:/注释.pdf");
//获取文档第一页
PdfPageBase page = pdf.getPages().get(0);
//删除第一个注释
page.getAnnotationsWidget().removeAt(0);
//保存文档
pdf.saveToFile("删除注释.pdf");
}
}
Spire.PDF for Java 中的 PdfPageBase.getAnnotationsWidget().clear() 方法可以删除指定页面的所有注释。详细操作步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
public class RemoveAllAnnotationPage {
public static void main(String[] args) {
//创建PdfDocument的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("C:/注释.pdf");
//获取文档第一页
PdfPageBase page = pdf.getPages().get(0);
//删除该页所有注释
page.getAnnotationsWidget().clear();
//保存文档
pdf.saveToFile("删除一页所有注释.pdf");
}
}
在删除 PDF 文档中的所有注释时,我们需要循环遍历文档中的所有页面并删除每一页的所有注释。详细步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
public class RemoveAllAnnotations {
public static void main(String[] args) {
//创建PdfDocument的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("C:/注释.pdf");
//循环遍历文档中的页面
for (PdfPageBase page : (Iterable extends PdfPageBase>) pdf.getPages()) {
//删除每页的所有注释
page.getAnnotationsWidget().clear();
}
//保存文档
pdf.saveToFile("删除所有注释.pdf");
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
本文介绍如何使用Spire.PDF for Java获取PDF中图片的坐标信息。
import com.spire.pdf.exporting.PdfImageInfo;
import java.awt.geom.Rectangle2D;
public class GetCoordinateOfImage {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载一个PDF文档
doc.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\Images.pdf");
//获取第一页
PdfPageBase page = doc.getPages().get(0);
//获取第一页上的图片信息
PdfImageHelper imageHelper = new PdfImageHelper();
PdfImageInfo[] imageInfo = imageHelper.getImagesInfo(page);
//遍历图片信息
for (int i = 0; i < imageInfo.length; i++) {
//获取指定图片的边界属性
Rectangle2D rect = imageInfo[i].getBounds();
//获取左上角坐标
System.out.println(String.format("第%d张图片的左上角坐标为:(%f, %f)", i+1, rect.getX(), rect.getY()));
}
}
}

在PPT中,当多个形状重叠排列时,可设置形状置于顶层或底层、设置形状上移一层或下移一层。下面通过使用Spire.Presentation for Java来演示如何实现。
测试文档如下,需要将图片形状置于顶层:

import com.spire.presentation.*;
public class ShapeArrange {
public static void main(String[] args) throws Exception{
//加载PPT测试文档
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
//获取指定幻灯片及形状
ISlide slide = ppt.getSlides().get(1);
IShape shape1 = slide.getShapes().get(0);
shape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.BringToFront);//置于顶层
//shape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.BringForward);//上移一层
//shape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack);//置于底层
//shape1.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendBackward);//下移一层
//保存文档
ppt.saveToFile("result.pptx",FileFormat.PPTX_2013);
ppt.dispose();
}
}
设置效果:

Spire.Office 6.1已正式发布。本次更新带了一系列新的功能,例如:Spire.XLS 支持计算 MS Excel2019 新增公式,增加了在气泡图中不显示图表标题和转换Shape到图片等新功能;Spire.PDF 支持了自定义签名图片的功能;Spire.Presentation 支持嵌入 zip 对象到 PPTX 文件;Spire.PDFViewer 支持了显示页面标签的功能等等。此外,该版本还修复了大量问题。详情请阅读以下内容。
该版本涵盖了最新版的Spire.Doc, Spire.PDF, Spire.XLS, Spire.Presentation, Spire.Email, Spire.DocViewer, Spire.PDFViewer, Spire.Spreadsheet, Spire.OfficeViewer, Spire.DataExport, Spire.Barcode。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
功能优化:
新功能:
chart.HasChartTitle = false;
移除边框两种方式:设置picture.Line.Visible = false或设置Line.Weight = 0
Image img = shape.SaveToImage();
shape.SaveToImage(string fileName);
shape.SaveToImage(string fileName, ImageFormat imageFormat);
shape.SaveToImage(Stream fileStream);
shape.SaveToImage(Stream fileStream, ImageFormat imageFormat);
Workbook book = new Workbook();
book.LoadFromFile(input);
foreach (Worksheet sheet in book.Worksheets)
{
foreach (ExcelPicture picture in sheet.Pictures)
{
picture.Compress(30);
}
}
book.SaveToFile(result, ExcelVersion.Version97to2003);
问题修复:
问题修复:
新功能:
PdfSignature signature = new PdfSignature(doc, page, cert, "123456");
signature.ConfigureCustomGraphics(DrawGraphics);
private void DrawGraphics(PdfCanvas g)
{
PointF point1 = new PointF(10, 20);
PointF point2 = new PointF(25, 50);
PointF point3 = new PointF(60, 20);
PointF[] pntArr = { point1, point2, point3 };
PdfRGBColor color = new PdfRGBColor(Color.Red);
g.DrawPolygon(new PdfPen(color), pntArr);
g.DrawRectangle(new PdfPen(Color.Green), new RectangleF(70, 10, 20, 30));
g.DrawLine(new PdfPen(Color.Blue), new PointF(120, 50), new PointF(95, 5));
g.DrawLine(new PdfPen(Color.Blue), new PointF(100, 30), new PointF(130, 20));
}
问题修复:
新功能:
String zipPath= "C:/test.zip";
Presentation ppt = new Presentation();
byte[] data = File.ReadAllBytes(zipPath);
Rectangle rec = new Rectangle(80, 60, 100, 100);
//The first parameter needs to be passed the complete file name
IOleObject ole = ppt.Slides[0].Shapes.AppendOleObject("test.zip", data, rec);
ole.ProgId = "Package";
Image image = Image.FromFile(@"E:\demoProducts\Image\logo.png");
IImageData oleImage = ppt.Images.Append(image);
ole.SubstituteImagePictureFillFormat.Picture.EmbedImage = oleImage;
ppt.SaveToFile(@"result.pptx", Spire.Presentation.FileFormat.Pptx2013);
问题修复:
调整变化:
新功能:
问题修复:
新功能:
BarcodeScan task1 = new BarcodeScan();
task1.Scan(bitmap, rectangle, barcodeType);
问题修复:
Spire.XLS 11.1已发布。该本优化了转换Excel到HTML的速度,支持计算MS Excel2019的新增公式,增加了在气泡图中不显示图表标题和转换Shape到图片等新功能。此外,该版本还增强了转换Excel到PDF/HTML的功能并修复了加载保存文档时出现的问题。详情请阅读以下内容。
功能优化:
新功能:
chart.HasChartTitle = false;
移除边框两种方式:设置picture.Line.Visible = false或设置Line.Weight = 0
Image img = shape.SaveToImage();
shape.SaveToImage(string fileName);
shape.SaveToImage(string fileName, ImageFormat imageFormat);
shape.SaveToImage(Stream fileStream);
shape.SaveToImage(Stream fileStream, ImageFormat imageFormat);
Workbook book = new Workbook();
book.LoadFromFile(input);
foreach (Worksheet sheet in book.Worksheets)
{
foreach (ExcelPicture picture in sheet.Pictures)
{
picture.Compress(30);
}
}
book.SaveToFile(result, ExcelVersion.Version97to2003);
问题修复:
Spire.Barcode 5.1.4已发布。该本新增了BarcodeScan类实现可以创建不同的实例去调用Scan方法,修复了调用BarcodeScanner.Scan方法时出现的问题。详情请阅读以下内容。
新功能:
BarcodeScan task1 = new BarcodeScan();
task1.Scan(bitmap, rectangle, barcodeType);
问题修复:
Spire.Doc for Java 4.1.3已发布。该本新增了锁住内容控件的功能,增强了转换Word到PDF/HTML/SVG格式的功能,修复了加载Doc文档时出现的问题。详情请阅读以下信息。
新功能:
sd.getSDTProperties().setLockSettings(LockSettingsType.SDT_Locked);
sd.getSDTProperties().setLockSettings(LockSettingsType.SDT_Content_Locked);
问题修复:
本文我们将介绍如何使用Spire.Presentation for java将Excel工作表作为OLE对象插入到幻灯片。
import com.spire.presentation.*;
import com.spire.presentation.drawing.IImageData;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
public class embedExcelAsOLE {
public static void main(String[] args) throws Exception{
//新建PowerPoint文档
Presentation ppt = new Presentation();
//插入图片到PowerPoint文档
File file =new File("Excel.png");
BufferedImage image = ImageIO.read(file);
IImageData oleImage = ppt.getImages().append(image);
Rectangle rec = new Rectangle(80, 60, image.getWidth(), image.getHeight());
//加载Excel文档
String input = "Sample.xlsx";
File oldFile=new File(input);
//将Excel数据保存到流
FileInputStream inputStream = new FileInputStream(oldFile);
byte[] data = new byte[(int)oldFile.length()];
inputStream.read(data,0,data.length);
//根据Excel数据将OLE对象插入到PowerPoint文档
com.spire.presentation.IOleObject oleObject=ppt.getSlides().get(0).getShapes().appendOleObject("excel", data, rec);
oleObject.getSubstituteImagePictureFillFormat().getPicture().setEmbedImage(oleImage);
oleObject.setProgId("Excel.Sheet.12");
//保存文档
ppt.saveToFile("output/embedExcelAsOLE.pptx", FileFormat.PPTX_2013);
inputStream.close();
}
}
效果图:

Spire.PDF for Android 3.1.0已发布。该版本增强了转换SVG到PDF的功能,修复了获取PDF文档水印失败的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Introduce/pdf-for-android-via-java.html