Spire.XLS for Java 4.12.2已发布。该版本支持将excel转换为OFD,并且支持“分类汇总”功能。该版本还增强了Excel到PDF,Excel到图片的转换功能。此外,还修复了合并单元格后“Wrap text”不生效等一些已知问题。详情请阅读以下内容。
新功能:
Workbook workbook = new Workbook();
workbook.loadFromFile("input.xlsx");
workbook.saveToFile("output.ofd", FileFormat.OFD);
Workbook workbook = new Workbook();
workbook.loadFromFile(inputFile);
Worksheet sheet = workbook.getWorksheets().get(0);
//选择数据范围
CellRange range = sheet.getRange().get("A1:B18");
//选择的分类汇总
sheet.subtotal(range, 0, new int[] { 1 }, SubtotalTypes.Sum, true, false, true);
//保存文档
workbook.saveToFile(outputFile, ExcelVersion.Version2010);
workbook.dispose();
问题修复:
Spire.Doc for Java 支持将 Office(Word/Excel/PowerPoint)、PDF、txt 等文件作为 OLE 对象插入到 Word 文档,双击该对象可直接访问或编辑嵌入的对象文件。除了以上常见的文件格式对象以外,也支持插入多媒体文件,如视频、音频等,本文将对此作详细介绍。
首先,您需要在 Java 程序中添加 Spire.Doc.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.doc</artifactId>
<version>13.12.2</version>
</dependency>
</dependencies>
代码中嵌入多媒体文件的方法是通过调用 appendOleObject(InputStream oleStream, DocPicture olePicture, String fileExtension) 方法来实现,该方法中的三个参数解释分别为:
主要代码步骤解析:
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("https://cdn.e-iceblue.cn/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("https://cdn.e-iceblue.cn/logo2.png");
para3.appendOleObject(stream2, pic2, "mp3");
//保存文档
doc.saveToFile("Result.docx", FileFormat.Docx_2013);
}
}嵌入后的文档效果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Doc 9.12.7已发布。该版本增强了Word到PDF以及HTML到Word的转换功能,另外还修复了更新文档字段后页码不正确的问题。详情请阅读以下内容。
问题修复:
Spire.XLS 11.12.2已发布。该版本支持设置 IPrstGeomShape 的边框,并增强了Excel到PDF的转换功能。另外还修复了在图表中添加椭圆形状后效果不正确等一些已知问题。详情请阅读以下内容。
新功能:
IPrstGeomShape triangle = sheet.PrstGeomShapes.AddPrstGeomShape(2, 2, 100, 100, PrstGeomShapeType.Triangle);
triangle.Line.ForeColor = Color.Green;
问题修复:
Microsoft Word提供了一个实时字数计数器,可在您输入时计算文档中的字数。 除此之外,Microsoft Word还可以计算页数、段落数和带或不带空格的字符数。本文将介绍如何使用Spire.Doc for Java通过编程的方式获取Word文档中的字数或字符数。
首先,您需要在Java程序中添加Spire.Doc.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.doc</artifactId>
<version>13.12.2</version>
</dependency>
</dependencies>
详细步骤如下:
import com.spire.doc.*;
public class countWordsNumber {
public static void main(String[] args) {
//创建一个Document实例
Document document = new Document();
//加载示例Word文档
document.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\Demo.docx");
//计算字数
System.out.println("WordCount: " + document.getBuiltinDocumentProperties().getWordCount());
//计算没有空格的字符数
System.out.println("CharCount: " + document.getBuiltinDocumentProperties().getCharCount());
//计算带空格的字符数
System.out.println("CharCountWithSpace: " + document.getBuiltinDocumentProperties().getCharCountWithSpace());
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Office for Java 4.11.3已发布。该版本带来了一些新功能,比如:Spire.PDF for Java支持转换PDF到透明背景图片的功能;Spire.XLS for Java支持获取Excel文件的创建时间和最后保存时间;Spire.Doc for Java增强了转换Word到PDF/图片/HTML,以及转换HTML到Word的功能。此外还修复了其它一些已知问题,详情请阅读以下内容。
获取Spire.Office for Java 4.11.3请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
PdfDocument doc = new PdfDocument();
doc.loadFromFile("https://cdn.e-iceblue.cn/input.pdf");
doc.getConvertOptions().setPdfToImageOptions(0);
BufferedImage image = doc.saveAsImage(0);
问题修复:
新功能:
BuiltInDocumentProperties properties1 = workbook.getDocumentProperties();
properties1.getCreatedTime();
properties1.getLastSaveTime();
问题修复:
问题修复:
Spire.Doc for .NET 支持将 Office(Word/Excel/PowerPoint)、PDF、txt 等文件作为 OLE 对象插入到 Word 文档,双击该对象可直接访问或编辑该文件;除了以上常见的文件格式对象,也支持插入多媒体文件,如视频、音频等,本文将对此作详细介绍。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中的 DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc代码中嵌入多媒体文件的方法是通过调用 AppendOleObject(Stream oleStream, DocPicture olePicture, string fileExtension) 方法来实现,该方法中的三个参数解释分别为:
主要代码步骤如下:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
using System.IO;
namespace EmbedMediaFile
{
class Program
{
static void Main(string[] args)
{
//实例化Document类的对象,并添加Section
Document doc = new Document();
Section section = doc.AddSection();
//定义段落样式
ParagraphStyle style1 = new ParagraphStyle(doc);
style1.Name = "Style";
style1.CharacterFormat.FontName = "Calibri";
style1.CharacterFormat.FontSize = 18;
style1.CharacterFormat.Bold = true;
style1.CharacterFormat.TextColor = Color.BlueViolet;
doc.Styles.Add(style1);
//添加段落1,嵌入视频文件
Paragraph para1 = section.AddParagraph();
para1.AppendText("嵌入视频文件:");
para1.ApplyStyle(style1.Name);
Stream s1 = File.OpenRead("Video.mp4");
DocPicture pic1 = new DocPicture(doc);
pic1.LoadImage(Image.FromFile("logo1.png"));
para1.AppendOleObject(s1, pic1, "mp4");
//添加一个空白段落2
Paragraph para2 = section.AddParagraph();
//添加段落3,嵌入音频文件
Paragraph para3 = section.AddParagraph();
para3.AppendText("嵌入音频文件:");
para3.ApplyStyle(style1.Name);
Stream s2 = File.OpenRead("Audio.mp3");
DocPicture pic2 = new DocPicture(doc);
pic2.LoadImage(Image.FromFile("logo2.png"));
para3.AppendOleObject(s2, pic2, "mp3");
//保存文档
doc.SaveToFile("Result.docx", FileFormat.Docx2013);
}
}
}Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing
Imports System.IO
Namespace EmbedMediaFile
Class Program
Private Shared Sub Main(args As String())
'实例化Document类的对象,并添加Section
Dim doc As New Document()
Dim section As Section = doc.AddSection()
'定义段落样式
Dim style1 As New ParagraphStyle(doc)
style1.Name = "Style"
style1.CharacterFormat.FontName = "Calibri"
style1.CharacterFormat.FontSize = 18
style1.CharacterFormat.Bold = True
style1.CharacterFormat.TextColor = Color.BlueViolet
doc.Styles.Add(style1)
'添加段落1,嵌入视频文件
Dim para1 As Paragraph = section.AddParagraph()
para1.AppendText("嵌入视频文件:")
para1.ApplyStyle(style1.Name)
Dim s1 As Stream = File.OpenRead("Video.mp4")
Dim pic1 As New DocPicture(doc)
pic1.LoadImage(Image.FromFile("logo1.png"))
para1.AppendOleObject(s1, pic1, "mp4")
'添加一个空白段落2
Dim para2 As Paragraph = section.AddParagraph()
'添加段落3,嵌入音频文件
Dim para3 As Paragraph = section.AddParagraph()
para3.AppendText("嵌入音频文件:")
para3.ApplyStyle(style1.Name)
Dim s2 As Stream = File.OpenRead("Audio.mp3")
Dim pic2 As New DocPicture(doc)
pic2.LoadImage(Image.FromFile("logo2.png"))
para3.AppendOleObject(s2, pic2, "mp3")
'保存文档
doc.SaveToFile("Result.docx", FileFormat.Docx2013)
End Sub
End Class
End Namespace嵌入后的文档效果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Office 6.12.1已发布。本次更新带来了一些新的功能,例如:Spire.PDF 新增了 .NET 6.0 以及解密 PDF 方法,支持了获取附件所在的 PDF 页面。此外,该版本还修复了大量已知的问题。详情请阅读以下内容。
该版本涵盖了最新版的 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
新功能:
pdf.Security.DecryptOwnerPassWord(string ownerPassword);
pdf.Security.DecryptUserPassWord();
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
int pageIndex = GetAttachmentPage(doc.Pages, attachmentName);
private int GetAttachmentPage(Spire.Pdf.Widget.PdfPageCollection pageCollection, string fileName)
{
if (string.IsNullOrEmpty(fileName))
{
throw new ArgumentException("fileName is null or empty");
}
for (int i = 0; i < pageCollection.Count; i++)
{
PdfPageBase page = pageCollection[i];
for (int j = 0; j < page.AnnotationsWidget.Count; j++)
{
Spire.Pdf.Annotations.PdfFileLinkAnnotationWidget pdfFileLinkAnnotationWidget = page.AnnotationsWidget[j] as Spire.Pdf.Annotations.PdfFileLinkAnnotationWidget;
if (pdfFileLinkAnnotationWidget != null)
{
if (fileName.Equals(pdfFileLinkAnnotationWidget.FileName))
{
return i;
}
}
}
}
return -1;
}
问题修复:
问题修复:
Spire.Doc 9.12.3已发布。该版本增强了Word到PDF的转换功能,并且修复了复制内容到新的文档可编辑区域消失等已知问题。详情请阅读以下内容。
问题修复:
前面我们介绍了如何在 .NET Core 应用程序中 使用 Spire.OCR for .NET 图文识别控件来扫描识别图片的文字。该文将介绍如何在 .NET Framework 项目中扫描识别图片中的文字信息。
步骤 1、在 Visual Studio 中创建一个 .NET Framework 控制台应用程序


步骤 2、创建一个控制台项目,将目标平台改为 x64。由于 Spire.OCR for .NET 仅支持 64 位操作系统系统,所以必须执行此步骤。

步骤 3、在程序中添加引用 Spire.OCR for .NET 中的 dll 文件
推荐通过 Nuget 安装 Spire.OCR for .NET。注:仅 Spire.OCR for .NET v1.8 及以上版本支持 .NET Framework 应用程序。

步骤 4、安装完成后,找到本地 NuGet 的下载目录,然后将 Spire.OCR 包里 runtimes\win-x64\native 目录下的 6 个 dll(该示例项目的完整目录是 E:\OCR\ ScanOCR\ packages\Spire.OCR.1.8.0\runtimes\win-x64\native),拷贝到项目的运行目录路径,如 bin\Debug。

步骤 5、代码示例
using Spire.OCR;
using System.IO;
namespace ScanOCR
{
class Program
{
static void Main(string[] args)
{
//创建一个OcrScanner类的实例
OcrScanner scanner = new OcrScanner();
//调用OcrScanner.Scan(string fileName)方法扫描图片上的文字
scanner.Scan("Sample.png");
//保存扫描获取的文字为.txt文档
File.WriteAllText("output.txt", scanner.Text.ToString());
}
}
}Imports Spire.OCR
Imports System.IO
Namespace ScanOCR
Class Program
Private Shared Sub Main(args As String())
'创建一个OcrScanner类的实例
Dim scanner As New OcrScanner()
'调用OcrScanner.Scan(string fileName)方法扫描图片上的文字
scanner.Scan("Sample.png")
'保存扫描获取的文字为.txt文档
File.WriteAllText("output.txt", scanner.Text.ToString())
End Sub
End Class
End Namespace如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。