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 天的临时许可证。
Spire.Doc for Java 4.12.7已发布。该版本增强了Word到PDF的转换,并且修复了docx 格式文件保存为 doc 格式时,时间字段未更新等已知问题。详情请阅读以下内容。
问题修复:
2022年元旦节即将到来,E-iceblue 携全体职工祝愿大家节日快乐、心想事成!
在节日期间(2021年12月10日至2022年1月15日),我们将推出今年最大的促销活动以增进销售额并扩大我们的客户群体。如果您对我们产品的测试很满意,请抓住机会,以比平时更低的价格购买许可证;如果您已经拥有许可证,活动期间续费将享有额外优惠。
如果您想使享受此优惠,请联系该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取报价或合同。
发布 Spire.OCR for .NET。这是一个专业的 OCR 库,允许开发人员在 .NET 平台上的读取常见图片格式上的文本,图标格式包括 JPG、PNG、GIF、BMP 、TIFF 等。
发布 Spire.Office for Android via Java。这是我们开发的企业级 Android API 的集合,用于在 Java Android 应用程序中处理 Word、Excel、PowerPoint 和 PDF 文档。
推出分级服务,以满足客户不同的服务需求。客户在购买或续订许可证时,可以按需选择免费服务、金牌服务或钻石服务。
Spire.PDF for Java 支持通过 PdfGrid 类和 PdfTable 类在 PDF 页面中绘制表格,在“Java 创建并格式并 PDF 表格”一文中介绍了如何绘制表格。本篇文章将介绍使用 PdfTableExtractor 类来提取 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>12.9.0</version>
</dependency>
</dependencies>
提取表格的主要步骤如下:
import com.spire.pdf.*;
import com.spire.pdf.utilities.PdfTable;
import com.spire.pdf.utilities.PdfTableExtractor;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractTable {
public static void main(String[] args)throws IOException {
//实例化PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.loadFromFile("test.pdf");
//创建StringBuilder类的实例
StringBuilder builder = new StringBuilder();
//创建PdfTableExtractor类的对象
PdfTableExtractor extractor = new PdfTableExtractor(pdf);
//遍历每一页
for (int page = 0; page < pdf.getPages().getCount(); page++)
{
//提取页面中的表格存入PdfTable[]数组
PdfTable[] tableLists = extractor.extractTable(page);
if (tableLists != null && tableLists.length > 0)
{
//遍历表格
for (PdfTable table : tableLists)
{
int row = table.getRowCount();//获取表格行
int column = table.getColumnCount();//获取表格列
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
//获取表格中的文本内容
String text = table.getText(i, j);
//将获取的text写入StringBuilder容器
builder.append(text+" ");
}
builder.append("\r\n");
}
}
}
}
//保存为txt文档
FileWriter fileWriter = new FileWriter("ExtractedTable.txt");
fileWriter.write(builder.toString());
fileWriter.flush();
fileWriter.close();
}
}表格内容读取结果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.PDF 7.12.1已发布。该版本带来了一些新功能。新增了.NET 6.0以及解密PDF方法,支持了获取附件所在的PDF页面。还增强了PDF到OFD,PDF到图片,XPS到PDF的转换功能。此外还修复了删除PDF文件中的图片结果文档变大等已知问题。详情请阅读以下内容。
新功能:
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.PDF for Java 4.12.1已发布。该版本支持转换PDF为线性PDF,并且支持转换PDF到Excel单元格文本不换行的功能。另外还增强了PDF到OFD,PDF到PDFA的转换功能。此外还修复了压缩PDF图片后图片内容不正确等已知问题。详情请阅读以下内容。
新功能:
PdfToLinearizedPdfConverter converter = new PdfToLinearizedPdfConverter(inputPath);
converter.toLinearizedPdf(OutputPath);
//第四个参数控制着是否让文本换行
doc.getConvertOptions().setPdfToXlsxOptions(new XlsxLineLayoutOptions(false, false, false, false));
问题修复:
通常在工作中比较常用到的 Microsoft Word 是属于国外的文档内容编辑软件,其编译技术均属国外;而 OFD 是一种我国的自主文件格式,在某些特定行业或企业的文档存储技术上是一种更为安全的选择。下面,将介绍使用 Spire.Doc for Java 来实现 Word 文档转换为 OFD 格式的方法及步骤。此外,您也可以使用 Java 技术实现将 PDF 转为 OFD。
首先,您需要在 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>14.9.5</version>
</dependency>
</dependencies>
文档转换只需要简单三行代码就可以实现,步骤如下:
import com.spire.doc.*;
public class WordToOFD {
public static void main(String[] args) {
//实例化Document类的对象
Document document = new Document();
//加载Word文档
document.loadFromFile("Guide.docx");
//保存为OFD格式
document.saveToFile("ToOFD.ofd", FileFormat.OFD);
}
}转换结果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Doc for Java 4.12.1已发布。该版本带来了一些新功能,比如:支持转换Word到OFD格式,支持设置修订作者,支持在进行比较时设置“忽略格式”。此外还增强了Word到PDF的转换功能,并且修复了获取的列表文本不正确等已知问题。详情请阅读以下内容。
新功能:
Document document = new Document();
document.loadFromFile("input.docx");
document.saveToFile("output.ofd", FileFormat.OFD);
Document doc = new Document();
doc.loadFromFile(inputFile);
doc.setTrackChanges(true);
TextRange range = doc.getLastParagraph().appendText("123413");
range.getInsertRevision().setAuthor("user");
doc.saveToFile(outputFile);
doc.dispose();
Document.compare(Document document, String author, CompareOptions options);
Document.compare(Document document, String author, Date date, CompareOptions options);
CompareOptions.setIgnoreFormatting(true);
问题修复: