Spire.Email 4.7已发布。本次更新修复了使用筛选条件语句查询邮件时程序报错的问题。详情请阅读以下内容。
问题修复:
Spire.Doc 9.7.14已发布。本次更新增强了转换Word 到PDF/图片,以及转换RTF/HTML到PDF的功能。此外,该版本还修复了加载和比较Word文档时出现的问题。详情请阅读以下内容。
问题修复:
本文将介绍如何使用Spire.PDF for Java判断PDF文档是否为PDF文件包。
原PDF文档:

import com.spire.pdf.PdfDocument;
public class DetectPortfolio {
public static void main(String []args){
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//加载PDF文档
doc.loadFromFile("https://cdn.e-iceblue.cn/Portfolio.pdf");
//判断该PDF是否为PDF文件包
boolean value = doc.isPortfolio();
if (value)
{
System.out.println("此文档是PDF文件包");
}
else
{
System.out.println("此文档不是PDF文件包");
}
}
}
运行结果:

在上篇文章中,我们介绍了如何使用 Spire.Doc for Java 加载,操作和保存现有WPS文字文档。在本文中,我们将介绍如何新建WPS文字文档。
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;
import java.awt.*;
import java.io.*;
public class CreateWpsWord {
public static void main(String[] args) throws IOException {
//创建Document实例
Document document = new Document();
//添加节到文档
Section section = document.addSection();
//添加三个段落至该节
Paragraph para1 = section.addParagraph();
para1.appendText("Spire.Doc for Java");
Paragraph para2 = section.addParagraph();
para2.appendText("Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中。"+
"作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Microsoft Office。");
Paragraph para3 = section.addParagraph();
para3.appendText("Spire.Doc for Java 能执行多种 Word 文档处理任务,包括生成、读取、转换和打印 Word 文档,插入图片,添加页眉和页脚,创建表格,添加表单域和邮件合并域,"+
"添加书签,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接、数字签名,加密和解密 Word 文档,添加批注,添加形状等。");
//将第一段作为标题,设置标题段落格式
ParagraphStyle style1 = new ParagraphStyle(document);
style1.setName("titleStyle");
style1.getCharacterFormat().setBold(true);
style1.getCharacterFormat().setTextColor(Color.BLUE);
style1.getCharacterFormat().setFontName("Lucida Sans Unicode");
style1.getCharacterFormat().setFontSize(12f);
document.getStyles().add(style1);
para1.applyStyle("titleStyle");
//设置其余两个段落的格式
ParagraphStyle style2 = new ParagraphStyle(document);
style2.setName("paraStyle");
style2.getCharacterFormat().setFontName("Lucida Sans Unicode");
style2.getCharacterFormat().setFontSize(11f);
document.getStyles().add(style2);
para2.applyStyle("paraStyle");
para3.applyStyle("paraStyle");
//设置标题段落居中对齐
para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//设置第二、第三段落的段首缩进
para2.getFormat().setFirstLineIndent(25f);
para3.getFormat().setFirstLineIndent(25f);
//设置第一、第二段落的段后间距
para1.getFormat().setAfterSpacing(10f);
para2.getFormat().setAfterSpacing(10f);
//保存文档
ByteArrayOutputStream bos = new ByteArrayOutputStream();
document.saveToStream(bos, FileFormat.Doc);
//将流写入WPS文件
FileOutputStream fos = new FileOutputStream("CreateWPS.wps");
fos.write(bos.toByteArray());
//关闭流
bos.close();
fos.close();
}
}
结果文档:

本文将通过使用Spire.Barcode for .NET展示如何在创建一维条码及二维条码时,设置条码数据文本不可见,即创建后的条码效果图中不展示数据文本信息,只需通过设置 settings.ShowText = false; 即可,如需设置文本数据可见,则设置 settings.ShowText = true;。
1、创建一维条码时设置数据文本不可见
using Spire.Barcode;
using System.Drawing;
namespace CreateBarcode
{
class Program
{
static void Main(string[] args)
{
BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
settings.Type = BarCodeType.Codabar;//指定条码类型
settings.Data = "123456789";//设置条码数据
settings.ShowText = false;//设置数据文本不显示
/*settings.ShowText = true;//显示数据文本
settings.ShowTextOnBottom = true;//设置数据文本显示在条码底部*/
settings.X = 0.8f;//设置黑白条宽度
settings.ImageHeight = 50;//设置生成的条码图片高度
settings.ImageWidth = 70;//设置生成的条码图片宽度
settings.HasBorder = true;//设置边框可见
settings.BorderColor = Color.PaleTurquoise;//设置条码边框颜色
settings.BorderWidth = 1;//设置条码边框宽度
settings.BackColor = Color.Beige;//设置条码背景色
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
//创建图片并保存为PNG格式
Image image = barCodeGenerator.GenerateImage();
image.Save("CreateBarcode.png");
}
}
}
Imports Spire.Barcode
Imports System.Drawing
Namespace CreateBarcode
Class Program
Private Shared Sub Main(args As String())
Dim settings As New BarcodeSettings() '创建BarcodeSettings实例
settings.Type = BarCodeType.Codabar '指定条码类型
settings.Data = "123456789" '设置条码数据
settings.ShowText = False'设置数据文本不显示
'settings.ShowText = true; '显示数据文本
'settings.ShowTextOnBottom = true; '设置数据文本显示在条码底部
settings.X = 0.8F'设置黑白条宽度
settings.ImageHeight = 50'设置生成的条码图片高度
settings.ImageWidth = 70'设置生成的条码图片宽度
settings.HasBorder = True'设置边框可见
settings.BorderColor = Color.PaleTurquoise'设置条码边框颜色
settings.BorderWidth = 1'设置条码边框宽度
settings.BackColor = Color.Beige'设置条码背景色
Dim barCodeGenerator As New BarCodeGenerator(settings) '创建BarCodeGenerator实例
'创建图片并保存为PNG格式
Dim image As Image = barCodeGenerator.GenerateImage()
image.Save("CreateBarcode.png")
End Sub
End Class
End Namespace
条码效果图:

2、创建二维码时,设置数据文本不可见
using Spire.Barcode;
using System.Drawing;
namespace CreateQRCode
{
class Program
{
static void Main(string[] args)
{
//创建BarcodeSettings对象
BarcodeSettings settings = new BarcodeSettings();
settings.Type = BarCodeType.QRCode;//设置条码类型为二维码
settings.Data = "123456789";//设置二维码数据
settings.Data2D = "123456789";//设置显示文本
settings.ShowText = false;//设置二维码数据文本不显示
/*settings.ShowText = true;//显示数据文本
settings.ShowTextOnBottom = true;//数据文本显示在二维码底部*/
settings.QRCodeDataMode = QRCodeDataMode.Numeric;//设置数据类型为数字
settings.QRCodeECL = QRCodeECL.H;//设置二维码错误修正级别
settings.X = 3.0f;//设置宽度
BarCodeGenerator generator = new BarCodeGenerator(settings);//实例化BarCodeGenerator类的对象
//生成二维码图片并保存为PNG格式
Image image = generator.GenerateImage();
image.Save("QRCode.png");
}
}
}
Imports Spire.Barcode
Imports System.Drawing
Namespace CreateQRCode
Class Program
Private Shared Sub Main(args As String())
Dim settings As New BarcodeSettings()'创建BarcodeSettings对象
settings.Type = BarCodeType.QRCode'设置条码类型为二维码
settings.Data = "123456789" '设置二维码数据
settings.Data2D = "123456789" '设置显示文本'设置二维码数据文本不显示
settings.ShowText = False
'settings.ShowText = true; '显示数据文本
'settings.ShowTextOnBottom = true; '数据文本显示在二维码底部
settings.QRCodeDataMode = QRCodeDataMode.Numeric'设置数据类型为数字
settings.QRCodeECL = QRCodeECL.H'设置二维码错误修正级别
settings.X = 3F'设置宽度
Dim generator As New BarCodeGenerator(settings) '实例化BarCodeGenerator类的对象
'生成二维码图片并保存为PNG格式
Dim image As Image = generator.GenerateImage()
image.Save("QRCode.png")
End Sub
End Class
End Namespace
二维码效果图:

Spire.PDF for Java 4.7.8已发布。本次更新增强了转换PDF到Word/图片/PDF/A1A的功能,此外还修复了提取PDF文本时出现的问题。详情请阅读以下内容。
问题修复:
WPS Office 是目前国内常用的办公软件之一,包含 WPS 文字、WPS 表格、WPS 演示等模块,可以实现查看和编辑文字、表格、演示文档等功能。在这篇文章中,我们将介绍如何使用 Spire.Doc for Java 在 Java 应用程序中加载,操作和保存 WPS 文字文档。
首先,您需要在 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.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import java.awt.*;
import java.io.*;
public class LoadWpsWordFromFile {
public static void main(String[] args) throws IOException {
//加载WPS文字文档
Document document = new Document();
document.loadFromFile("Sample.wps", FileFormat.WPS);
//获取文档的第一个节
Section section = document.getSections().get(0);
//获取该节中第一个段落
Paragraph paragraph = section.getParagraphs().get(0);
//给该段落设置背景颜色
paragraph.getFormat().setBackColor(Color.pink);
//保存结果文档
document.saveToFile("Output.wps", FileFormat.WPS);
}
}主要步骤如下:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import java.awt.*;
import java.io.*;
public class LoadWpsWordFromStream {
//通过流加载WPS文字文档
FileInputStream inputStream = new FileInputStream(new File("Sample.wps"));
Document document = new Document();
document.loadFromStream(inputStream, FileFormat.WPS);
//获取文档的第一个节
Section section = document.getSections().get(0);
//获取该节中第一个段落
Paragraph paragraph = section.getParagraphs().get(0);
//给该段落设置背景颜色
paragraph.getFormat().setBackColor(Color.pink);
//将结果文档保存到流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
document.saveToStream(bos, FileFormat.WPS);
//将流写入WPS文字文档
FileOutputStream fos = new FileOutputStream("Output.wps");
fos.write(bos.toByteArray());
//关闭流
bos.close();
fos.close();
}
}原 WPS 文字文档:

结果文档:

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。
Spire.PDF 7.7.10已发布。本次更新增强了转换PDF到HTML/图片/SVG的功能,修复了打印和合并PDF文档时出现的问题。此外,该版本还修复了查找、替换和提取文本时出现的问题。详情请阅读以下内容。
问题修复:
在之前的文章中我们介绍了如何给Word中指定文字添加批注,在本文中,我们将介绍如何获取Word中指定批注所标记的文字。
原Word文档:

import com.spire.doc.Document;
import com.spire.doc.documents.CommentMark;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.Comment;
import com.spire.doc.fields.TextRange;
public class GetMarkedTextOfSpecificComment {
public static void main(String[] args){
//加载Word文档
Document doc = new Document();
doc.loadFromFile("https://cdn.e-iceblue.cn/Input.docx");
//获取文档中第一个批注
Comment comment = doc.getComments().get(0);
//获取该批注的开始标记和结束标记
Paragraph para = comment.getOwnerParagraph();
CommentMark start = comment.getCommentMarkStart();
CommentMark end = comment.getCommentMarkEnd();
//获取开始标记和结束标记在段落中的索引
int indexOfStart = para.getChildObjects().indexOf(start);
int indexOfEnd = para.getChildObjects().indexOf(end);
String markedText = "";
//根据索引获取批注的开始标记和结束标记之间的文字
for (int i = indexOfStart + 1; i < indexOfEnd; i++) {
if (para.getChildObjects().get(i) instanceof TextRange) {
TextRange range = (TextRange) para.getChildObjects().get(i);
markedText += range.getText();
}
}
//打印文字到控制台
System.out.println(markedText);
}
}
输出结果:

本文介绍使用Spire.Doc for Java给Word中的指定文本字符添加边框的方法。
import com.spire.doc.*;
import com.spire.doc.documents.BorderStyle;
import com.spire.doc.documents.TextSelection;
import java.awt.*;
public class TextrangeBoder {
public static void main(String[] args) {
//加载Word文档
Document document = new Document("inputfile.docx");
//查找文本
TextSelection[] textSelections1 = document.findAllString("Spire.Doc for Java", false, false);
//给文本字符串添加边框
for (TextSelection selection : textSelections1)
{
selection.getAsOneRange().getCharacterFormat().getBorder().setBorderType(BorderStyle.Single);
selection.getAsOneRange().getCharacterFormat().getBorder().setColor(Color.red);
selection.getAsOneRange().getCharacterFormat().getBorder().setLineWidth(2);
}
//保存文档
document.saveToFile("BorderToCharacter.docx", FileFormat.Docx_2013);
}
}
