Spire.Doc 10.2.11已发布。此次更新新增document.AutoUpdateStylesByTemplate = false来禁止自动更新文档样式,同时还修复了一些在转换Word到PDF时出现的问题。详情请阅读以下内容。
新功能:
问题修复:
通常,一个 Excel 文档可能包含多个名称相似的工作表,例如 Sheet1、Sheet2、Sheet3。为了使文档更有条理,同时方便搜索,建议重命名这些工作表并设置不同的选项卡颜色。在本文中,您将学习如何使用 Spire.XLS for Java 以编程方式完成此任务。
首先,您需要将 Spire.Xls.jar 文件作为依赖项添加到您的 Java 程序中。可以从此链接下载 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>
详细步骤如下:
import com.spire.xls.*;
import java.awt.*;
public class RenameSheetandSetTabColor {
public static void main(String[] args) {
//创建Workbook对象
Workbook workbook = new Workbook();
//加载示例Excel文档 workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\input.xlsx");
//获取第一个工作表
Worksheet worksheet = workbook.getWorksheets().get(0);
//重命名第一个工作表并设置其选项卡颜色
worksheet.setName("Data");
worksheet.setTabColor(Color.red);
//获取第二个工作表
worksheet = workbook.getWorksheets().get(1);
//重命名第二个工作表并设置其标签颜色
worksheet.setName("Chart");
worksheet.setTabColor(Color.green);
//获取第三张工作表
worksheet = workbook.getWorksheets().get(2);
//重命名第三个工作表并设置其标签颜色
worksheet.setName("Summary");
worksheet.setTabColor(Color.blue);
//保存文档
workbook.saveToFile("RenameSheet.xlsx", ExcelVersion.Version2010);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.PDF 8.2.2已发布。该版本支持从 PDF 表单域获取 JavaScript 字符串,并增强了PDF到图片的转换功能。此外还修复了使用 PDF-Exchange查看器打开受权限密码保护的文档时产生错误等已知问题。详情请阅读以下内容:
新功能:
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(@"input.pdf", FileFormat.PDF);
PdfFormWidget fw = doc.Form as PdfFormWidget;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < fw.FieldsWidget.Count; i++)
{
PdfField pdfField = fw.FieldsWidget[i];
if (pdfField is PdfCheckBoxWidgetFieldWidget)
{
PdfCheckBoxWidgetFieldWidget checkBoxField = pdfField as PdfCheckBoxWidgetFieldWidget;
PdfJavaScriptAction mousedown = (PdfJavaScriptAction)checkBoxField.Actions.MouseDown; sb.Append(mousedown.Script.ToString());
}
}
string result = @"js-output.txt";
File.WriteAllText(result, sb.ToString());
问题修复:
将 HTML 文件转换为图像文件格式(如 PNG 或 JPEG)在存档和长期存储方面具有显著优势。原始 HTML 由可编辑的代码组成,依赖于 CSS 和 JavaScript 等外部资源,而图像则不同,它提供了固定的、不可更改的内容表现形式。因此,图像是保存网页在特定时间点的准确外观的理想选择。
本文将介绍如何使用 Spire.Doc for Java 将 HTML 文件和字符串转换为图像文件。
首先,您需要在 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>
Spire.Doc for Java 提供高效的 HTML 转图片功能,只需三步即可完成转换:首先使用 Document.loadFromFile() 加载 HTML 文件,再通过 Document.saveToImages() 将其转换为 BufferedImage 对象数组,最后可遍历数组将图像按需保存为 PNG、JPG 或 BMP 等常见格式。
使用 Java 将 HTML 文件转换为图片的步骤:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.ImageType;
import com.spire.doc.documents.XHTMLValidationType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ConvertHtmlFileToImage {
public static void main(String[] args) throws IOException {
// 创建一个 Document 对象
Document document = new Document();
// 加载一个 HTML 文件
document.loadFromFile("C:\\Users\\Administrator\\Desktop\\Html.html", FileFormat.Html, XHTMLValidationType.None);
// 获取第一个节
Section section = document.getSections().get(0);
// 设置页面边距
section.getPageSetup().getMargins().setAll(2);
// 将文档转换为 BufferedImage 数组
BufferedImage[] images = document.saveToImages(ImageType.Bitmap);
// 遍历图像
for (int index = 0; index < images.length; index++)
{
// 指定输出文件名
String fileName = String.format("C:\\Users\\Administrator\\Desktop\\Output\\image_%d.png", index);
// 将每个图像保存为 PNG 文件
File file= new File(fileName);
ImageIO.write(images[index], "PNG", file);
}
// 释放资源
document.dispose();
}
}

在动态应用场景中,您可能需要通过编程方式生成或修改 HTML 内容,例如根据用户输入或数据库查询动态创建 HTML 字符串。针对这一需求,Spire.Doc for Java 提供了强大的解决方案:通 Paragraph.appendHTML() 方法,您可以直接将 HTML 内容无缝插入文档段落,实现高效灵活的文档处理。
使用 Java 将 HTML 字符串转换为图片的步骤:
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.ImageType;
import com.spire.doc.interfaces.IParagraph;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ConvertHtmlStringToImage {
public static void main(String[] args) throws IOException {
// 创建一个 Document 对象
Document document = new Document();
// 添加一个节
Section section = document.addSection();
// 设置页面边距
section.getPageSetup().getMargins().setAll(2);
// 添加一个段落
IParagraph paragraph = section.addParagraph();
// 从文件中读取 HTML 字符串
String htmlFilePath = "C:\\Users\\Administrator\\Desktop\\Html.html";
String htmlString = new String(Files.readAllBytes(Paths.get(htmlFilePath)), "UTF-8");
// 将 HTML 字符串附加到段落中
paragraph.appendHTML(htmlString);
// 将文档转换为 BufferedImage 数组
BufferedImage[] images = document.saveToImages(ImageType.Bitmap);
// 遍历图像
for (int index = 0; index < images.length; index++)
{
// 指定输出文件名
String fileName = String.format("C:\\Users\\Administrator\\Desktop\\Output\\image_%d.png", index);
// 将每个图像保存为 PNG 文件
File file= new File(fileName);
ImageIO.write(images[index], "PNG", file);
}
// 释放资源
document.dispose();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Java 5.2.3已发布。该版本支持在段落中查找所有匹配的字符串,并增强了Word到PDF以及HTML到Word的转换功能。此外还修复了加载Word文件时程序抛出“Operation is not valid due to the current state of the object”等已知问题。详情请阅读以下内容:
新功能:
Document document = new Document();
document.loadFromFile("Sample.docx");
Section s = document.getSections().get(0);
Paragraph para = s.getParagraphs().get(0);
//第一种方式
TextSelection[] textSelections = para.findAllString("The", false, true);
for (TextSelection selection : textSelections)
{
//高亮
selection.getAsOneRange().getCharacterFormat().setHighlightColor(new Color(255, 255, 0));
}
//第二种方式
Pattern c = Pattern.compile("The");
TextSelection[] textSelections = para.findAllPattern(c);
for (TextSelection selection : textSelections)
{
TextRange[] results = selection.getAsRange();
for (TextRange result : results)
{
//高亮
result.getCharacterFormat().setHighlightColor(Color.yellow);
}
}
问题修复:
TIFF 是一种常用的高位彩色图像格式,广泛应用于各领域和行业。在 Spire.PDF for Java 的格式转换功能中,支持TIFF格式;可实现 PDF 转为 TIFF 以及将 TIFF 转为 PDF。本文将通过 Java 应用程序代码介绍实现 TIFF 转为 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.graphics.PdfImage;
public class TiffToPDF {
public static void main(String[] args) {
//创建PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//添加一页
PdfPageBase page = pdf.getPages().add();
//从TIFF图像创建一个PdfImage对象
PdfImage tiff = PdfImage.fromFile("sample.tiff");
//将图片绘制到PDF页面
page.getCanvas().drawImage(tiff, 0, 0, 580, 800);
//保存文档
pdf.saveToFile("TiffToPdf.pdf", FileFormat.PDF);
}
}转换结果:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
当打开一个密码保护的 PDF 时,我们必须输入密码。但有时我们需要在打开 PDF 文件之前知道它是否有密码保护。 Spire.PDF for Java 提供了一个方法 PdfDocument.isPasswordProtected() 来验证 PDF 文档是否受密码保护。本文将通过 Java 应用程序来展示如何验证。
首先,您需要在 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.*;
public class DetectPDF {
public static void main(String[] args) {
//定义文件路径
String filePath ="test.pdf";
//检测PDF文档是否受密码保护
boolean result = PdfDocument.isPasswordProtected(filePath);
//输出判定结果
if(result)
{
System.out.println("文档已加密");
}
else
{
System.out.println("文档未加密");
}
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.PDF for Java 5.2.3已发布。该版本支持将TIFF文件转换为PDF以及将OFD文件转换为PDF,还增强了PDF到HTML,PDF到图片,PDF到PDFA1B,PDF到PDFA2A的转换功能。此外还修复了程序在查找PDF文本时抛出“NullPointerException”等已知问题。详情请阅读以下内容。
新功能:
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.getPages().add();
PdfImage myTiff = PdfImage.fromFile("TiffToPdf.tiff");
page.getCanvas().drawImage(myTiff, 60, 60, 260, 150);
doc.saveToFile("output.pdf", FileFormat.PDF);
boolean isPasswordProtected = PdfDocument.isPasswordProtected(inputFile);
OfdConverter converter = new OfdConverter(inputFile);
converter.toPdf(outputFile);
问题修复:
多栏 PDF 常用于杂志、报纸、研究文章等。使用 Spire.PDF for Java,您可以轻松地通过代码创建多栏 PDF。本文将向您展示如何在 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>12.9.0</version>
</dependency>
</dependencies>
详细步骤如下:
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class TwoColumnPDF {
public static void main(String[] args) throws Exception {
//创建一个pdf文档
PdfDocument doc = new PdfDocument();
//添加新页面
PdfPageBase page = doc.getPages().add();
//设置位置和宽度
float x = 0;
float y = 15;
float width = 600;
//创建pen
PdfPen pen = new PdfPen(new PdfRGBColor(Color.black), 1f);
//在PDF页面上画线
page.getCanvas().drawLine(pen, x, y, x + width, y);
//定义段落文本
String s1 = "Spire.PDF for Java是一款专门对PDF文档进行操作的Java类库。该类库的主要功能在于帮助开发人员在Java应用程序"
+ "(J2SE和J2EE)中生成PDF文档和操作现有PDF文档,并且运行环境无需安装Adobe Acrobat。同时兼容大部分国产操作系统,"
+ "能够在中标麒麟和中科方德等国产操作系统中正常运行";
String s2 = "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格式";
//获取页面的宽度和高度
double pageWidth = page.getClientSize().getWidth();
double pageHeight = page.getClientSize().getHeight();
//创建实体画笔对象
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));
//创建true type字体对象
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Times New Roman",Font.PLAIN,14));
//通过PdfStringFormat类设置文本对齐方式
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
//绘制文本
page.getCanvas().drawString(s1, font, brush, new Rectangle2D.Double(0, 20, pageWidth / 2 - 8f, pageHeight), format);
page.getCanvas().drawString(s2, font, brush, new Rectangle2D.Double(pageWidth / 2 + 8f, 20, pageWidth / 2 - 8f, pageHeight), format);
//保存文档
String output = "output/createTwoColumnPDF.pdf";
doc.saveToFile(output, FileFormat.PDF);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.Doc 10. 1现已发布。此次更新增强了使用NewEngine转换Word到PDFA以及转换Word到图片的功能,同时还修复无法嵌入私有字体的问题。具体修复内容如下。
问题修复: