制作 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>12.9.0</version>
</dependency>
</dependencies>
Spire.PDF for Java 提供了 PdfSolidBrush 类以设置文本的绘制颜色,支持以特定的 RGB 值或 HTML 颜色代码来定义绘制颜色。详细操作步骤如下:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfSolidBrush;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
public class setFontColor {
public static void main(String[] args) {
//创建 PdfDocument 类的对象
PdfDocument doc = new PdfDocument();
//添加一个页面
PdfPageBase page = doc.getPages().add();
//设置位置
float y = 30;
//创建 PdfSolidBrush 类的对象并设置颜色
PdfRGBColor rgb1 = new PdfRGBColor(Color.green);
PdfSolidBrush brush1 = new PdfSolidBrush(rgb1);
//以RGB值设置颜色
PdfRGBColor rgb2 = new PdfRGBColor(0,197,205);
PdfSolidBrush brush2 = new PdfSolidBrush(rgb2);
//以HTML代码设置颜色
Color color = Color.decode("#A52A2A");
PdfSolidBrush brush3 = new PdfSolidBrush(new PdfRGBColor(color));
//创建 PdfTrueTypeFont 类的对象
Font font = new Font("华文中宋", java.awt.Font.BOLD, 14);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font);
//绘制文本
page.getCanvas().drawString("设置绘制颜色", trueTypeFont, brush1, 0, (y = y + 30f));
page.getCanvas().drawString("以RGB值设置颜色", trueTypeFont, brush2, 0, (y = y + 50f));
page.getCanvas().drawString("以HTML颜色代码设置颜色", trueTypeFont, brush3, 0, (y = y + 60f));
//保存文档
doc.saveToFile("设置字体颜色.pdf");
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Excel 中,我们可以通过调整数据列顺序来实现将批量数据进行布局调整,以达到表格设计美观性或者表格数据设计得严谨性等目的。本文,将通过使用 Spire.XLS for Java 来实现如何调整列顺序。以下是具体步骤及方法。
首先,您需要在 Java 程序中添加 Spire.XLS for 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.*;
public class ChangeColumnOrder {
public static void main(String[] args) {
//创建Workbook类的对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.loadFromFile( "test.xlsx");
//获取第一个工作表
Worksheet worksheet = workbook.getWorksheets().get(0);
//设置新的列顺序
int[] newColumnOrder = new int[]{3, 0, 1, 5, 7, 4,2,8,6};
//添加一个临时工作表
Worksheet newSheet = workbook.getWorksheets().add("temp");
//将数据从第一个工作表复制到临时工作表
newSheet.copyFrom(worksheet);
//循环遍历newColumnOrder数组
for (int i = 0; i < newColumnOrder.length; i++) {
//从临时工作表复制列到第一个工作表
newSheet.getColumns()[newColumnOrder[i]].copy(worksheet.getColumns()[i],true,true);
//将第一个工作表的某一列的宽度设置为临时工作表的宽度
worksheet.getColumns()[i].setColumnWidth(newSheet.getColumns()[newColumnOrder[i]].getColumnWidth());
}
//删除临时表格
workbook.getWorksheets().remove(newSheet);
//将工作簿另存为文件
workbook.saveToFile("ChangeColumnOrder.xlsx", FileFormat.Version2010);
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
XPS(XML Paper Specification)是一种固定布局的文档格式,旨在保持文档的保真度并提供与设备无关的文档外观。XPS 类似于 PDF,但 XPS 基于 XML 而不是 PostScript。如果想要将 Word 文档保存为固定布局的文件格式,XPS 是个不错的选择。本文将介绍如何使用 Spire. Doc for .NET 通过代码将 Word 文档转换为 XPS 文件。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc使用 Spire.Doc for .NET 将 Word 文档转换为 XPS 文件只需载入 Word 文档后保存为 XPS 格式文件即可,详细操作步骤如下:
using Spire.Doc;
namespace ConvertWordToXps
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将文档保存为XPS文件
doc.SaveToFile("Word转XPS.xps", FileFormat.XPS);
}
}
}Imports Spire.Doc
Namespace ConvertWordToXps
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将文档保存为XPS文件
doc.SaveToFile("Word转XPS.xps", FileFormat.XPS)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF for Java 8.8.3 已发布。本次更新新增支持创建无序列表,且调整了签名时间戳的内部安全性。同时该版本还增强了 PDF 到 Tiff 的转换。此外,一些已知问题也得到了修复。详情请阅读以下内容。
新功能:
public void DrawMarker(PdfUnorderedMarkerStyle style, String outputFile) {
PdfDocument doc = new PdfDocument();
PdfNewPage page = (PdfNewPage) doc.getPages().add();
PdfMarker marker = new PdfMarker(style);
String listContent = "Data Structure\n"
+ "Algorithm\n"
+ "Computer Newworks\n"
+ "Operating System\n"
+ "C Programming\n"
+ "Computer Organization and Architecture";
PdfUnorderedList list = new PdfUnorderedList(listContent);
list.setIndent(2);
list.setTextIndent(4);
list.setMarker(marker);
list.draw(page, 100, 100);
doc.saveToFile(outputFile, FileFormat.PDF);
doc.close();
}
public void PdfMarker_CustomImage() throws Exception {
String outputFile = "PdfMarker_CustomImage.pdf";
String inputFile_Img = "sample.png";
PdfDocument doc = new PdfDocument();
PdfNewPage page = (PdfNewPage) doc.getPages().add();
PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_Image);
marker.setImage(PdfImage.fromFile(inputFile_Img));
String listContent = "Data Structure\n"
+ "Algorithm\n"
+ "Computer Newworks\n"
+ "Operating System\n"
+ "C Programming\n"
+ "Computer Organization and Architecture";
PdfUnorderedList list = new PdfUnorderedList(listContent);
list.setIndent(2);
list.setTextIndent(4);
list.setMarker(marker);
list.draw(page, 100, 100);
doc.saveToFile(outputFile, FileFormat.PDF);
doc.close();
}
public void PdfMarker_CustomTemplate() throws Exception {
String outputFile = "PdfMarker_CustomTemplate.pdf";
String inputFile_Img = "sample.png";
PdfDocument doc = new PdfDocument();
PdfNewPage page = (PdfNewPage) doc.getPages().add();
PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_Template);
PdfTemplate template = new PdfTemplate(210, 210);
marker.setTemplate(template);
template.getGraphics().drawImage(PdfImage.fromFile(inputFile_Img), 0, 0);
String listContent = "Data Structure\n"
+ "Algorithm\n"
+ "Computer Newworks\n"
+ "Operating System\n"
+ "C Programming\n"
+ "Computer Organization and Architecture";
PdfUnorderedList list = new PdfUnorderedList(listContent);
list.setIndent(2);
list.setTextIndent(4);
list.setMarker(marker);
list.draw(page, 100, 100);
doc.saveToFile(outputFile, FileFormat.PDF);
doc.close();
}
public void PdfMarker_CustomString() throws Exception {
String outputFile = "PdfMarker_CustomString.pdf";
PdfDocument doc = new PdfDocument();
PdfNewPage page = (PdfNewPage) doc.getPages().add();
PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_String);
marker.setText("AAA");
String listContent = "Data Structure\n"
+ "Algorithm\n"
+ "Computer Newworks\n"
+ "Operating System\n"
+ "C Programming\n"
+ "Computer Organization and Architecture";
PdfUnorderedList list = new PdfUnorderedList(listContent);
list.setIndent(2);
list.setTextIndent(4);
list.setMarker(marker);
list.draw(page, 100, 100);
doc.saveToFile(outputFile, FileFormat.PDF);
doc.close();功能调整:
问题修复:
Spire.Office 7.8.4 已发布。该版本进行了一些功能更新,如:Spire.XLS支持获取单元格相关联的范围; Spire.Presentation增强了PPT到PDF的转换功能;Spire.PDF增强了 PDF 到 SVG 和图片,以及 OFD 到 PDF 的转换。此外,该版本还成功修复了大量已知问题。详情请阅读以下内容。
该版本涵盖了最新版的Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.DocViewer, Spire.Barcode, Spire.DataExport。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
sheet.Range["A1"].CurrentRegion;问题修复:
问题修复:
问题修复:
Spire.Presentation for Java 7.8.2 已发布。本次更新新增支持设置自动换片时间以及判断文档是否加密。此版本还增强了 PPT 到 HTML 和 PDF 的转换。此外,许多已知问题也得到了修复,如:拆分 PPT 文档后, “自动换片” 的选中状态不正确等问题。详情请阅读以下内容。
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile(inputFile);
for(int i=0;i < ppt.getSlides().getCount();i++)
{ ppt.getSlides().get(i).getSlideShowTransition().isAdvanceAfterTime(true);
//设置自动换片时间,isAdvanceAfterTime设置为TRUE才生效
ppt.getSlides().get(i).getSlideShowTransition().setAdvanceAfterTime(5000L);
}
ppt.saveToFile(outputFile,FileFormat.AUTO);ppt.isPasswordProtected(filepath)
ppt.isPasswordProtected(inputstream)
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
Spire.PDF 8.8.6 已发布。本次更新增强了 PDF 到 SVG 和图片,以及 OFD 到 PDF 的转换。此外,此版本还修复了一些已知问题,如:转换的 PDF/A3A 文档不符合标准和灰度转换后文件损坏等问题。详情请阅读以下内容。
问题修复:
Spire.XLS 12.8.1已发布。本次更新支持获取单元格相关联的范围。并增强了Excel到PDF的转换功能。此外,还修复了保存后,Excel文档中的图片被替换等已知问题。详情请阅读以下内容。
新功能:
sheet.Range["A1"].CurrentRegion;问题修复:
RTF(Rich Text Format)指富文本格式,是微软开发的一种跨平台文档格式,方便于不同的设备、系统查看的文本和图形文档。大多数文字处理软件都能读取和保存RTF文档。富文本格式包含多种页面格式选项,如自定义页边距、行距和跳格宽度等。富文本格式可以帮助使用者便捷地创建栏目、表格,以及以更易阅读的格式制作文档。本文将介绍如何使用 Spire.Doc for .NET 将 Word 文档转换为 RTF 文档或将 RTF 文档转换为 Word 文档。
首先,您需要添加 Spire.Doc for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.Doc使用 Spire.Doc for .NET 将 Word 文档转换为 RTF 文档非常简单,只需载入 Word 文档后保存问 RTF 文件即可。以下是操作步骤:
using Spire.Doc;
using System;
namespace ConvertWordToPng
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将Word文档保存为RTF文档
doc.SaveToFile("Word转RTF.rtf", FileFormat.Rtf);
}
}
}Imports Spire.Doc
Imports System
Namespace ConvertWordToPng
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将Word文档保存为RTF文档
doc.SaveToFile("Word转RTF.rtf", FileFormat.Rtf)
End Sub
End Class
End Namespace
操作步骤如下:
using Spire.Doc;
using System;
namespace ConvertWordToPng
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入RTF文档
doc.LoadFromFile(@"C:\示例.rtf", FileFormat.Rtf);
//将RTF文档保存为Word文档
doc.SaveToFile("RTF转Word.docx", FileFormat.Docx2013);
}
}
}Imports Spire.Doc
Imports System
Namespace ConvertWordToPng
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入RTF文件
doc.LoadFromFile("C:\示例.rtf", FileFormat.Rtf)
'将RTF文件保存为Word文档
doc.SaveToFile("RTF转Word.docx", FileFormat.Docx2013)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
与 Word 文档相比,图片格式的文件不需要安装 MS Word 就可以直接查看,便于在不同平台之间分享和预览文档内容。而且将 Word 文档转换为图片可以保护文档的原始外观,让文档不会因被他人编辑而破坏原有的排布等。本文将展示用 Spire.Doc for .NET 以编程的方式将 Word 文档转换为图片的操作方法。
首先,您需要添加 Spire.Doc for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.DocSpire.Doc for .NET 为大家提供了 Document.SaveToImages() 方法以将 Word 文档的页面分别转换为位图(Bitmap)或图元文件(Metafile)。之后,我们可以将位图或图元文件保存为 BMP、EMF、JPEG、PNG、GIF、WMF 等格式的图片。以下是将 Word 文档转换为 JPG 格式图片的操作步骤。
using Spire.Doc;
using Spire.Doc.Documents;
using System;
using System.Drawing;
using System.Drawing.Imaging;
namespace ConvertWordToJPG
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将整个文档的页面分别转换为图片
Image[] images = doc.SaveToImages(ImageType.Bitmap);
//在转换出的图片集合中循环
for (int i = 0; i < images.Length; i++)
{
//将图片保存的JPG文件
string outputfile = String.Format("图片-{0}.jpg", i);
images[i].Save(outputfile, ImageFormat.Jpeg);
}
}
}
}Imports Spire.Doc
Imports Spire.Doc.Documents
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Namespace ConvertWordToJPG
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将整个文档的页面分别转换为图片
Dim images() As Image = doc.SaveToImages(ImageType.Bitmap)
'在转换出的图片集合中循环
Dim i As Integer
For i = 0 To images.Length - 1 Step i + 1
'将图片保存的JPG文件
Dim outputfile As String = String.Format("图片-{0}.jpg", i)
images(i).Save(outputfile, ImageFormat.Jpeg)
Next
End Sub
End Class
End Namespace你可以用 Spire.Doc for .NET 将 Word 文档保存为一系列字节数组(Byte Array),然后再将这些字节数组分别写入 SVG 文件。以下是将 Word 文档转换为 SVG 文件的操作步骤。
using Spire.Doc;
using System;
using System.Collections.Generic;
using System.IO;
namespace CovnertWordToSVG
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入Word文档
doc.LoadFromFile(@"C:\示例.docx");
//将文档保存为一系列字节数组
Queue<byte[]> svgBytes = doc.SaveToSVG();
//循环遍历所有字节数组
for (int i = 0; i < svgBytes.Count; i++)
{
//将数组写入SVG文件
byte[][] bytes = svgBytes.ToArray();
string outputfile = String.Format("图片-{0}.svg", i);
FileStream fs = new FileStream(outputfile, FileMode.Create);
fs.Write(bytes[i], 0, bytes[i].Length);
fs.Close();
}
}
}
}Imports Spire.Doc
Imports System
Imports System.Collections.Generic
Imports System.IO
Namespace CovnertWordToSVG
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入Word文档
doc.LoadFromFile("C:\示例.docx")
'将文档保存为一系列字节数组
Dim svgBytes()> As Queue<Byte = doc.SaveToSVG()
'循环遍历所有字节数组
Dim i As Integer
For i = 0 To svgBytes.Count - 1 Step i + 1
'将数组写入SVG文件
Dim bytes()() As Byte = svgBytes.ToArray()
Dim outputfile As String = String.Format("图片-{0}.svg", i)
Dim fs As FileStream = New FileStream(outputfile, FileMode.Create)
fs.Write(bytes(i), 0, bytes(i).Length)
fs.Close()
Next
End Sub
End Class
End Namespace分辨率更高的图片能够将内容展示得更清楚,通过以下步骤,你可以在转换 Word 文档到 PNG 图片时,设置其分辨率。
using Spire.Doc;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using Spire.Doc.Documents;
namespace ConvertWordToPng
{
class Program
{
static void Main(string[] args)
{
//创建 Document 类的对象
Document doc = new Document();
//载入 Word 文档
doc.LoadFromFile(@"C:\示例.docx");
//将整个Word文档转换为位图集合
Image[] images = doc.SaveToImages(ImageType.Metafile);
//循环遍历位图集合中的位图
for (int i = 0; i < images.Length; i++)
{
//设置图片的分辨率
Image newimage = ResetResolution(images[i] as Metafile, 150);
//将图片保存为PNG文件
string outputfile = String.Format("图片-{0}.png", i);
newimage.Save(outputfile, ImageFormat.Png);
}
}
//设置图片分辨率
public static Image ResetResolution(Metafile mf, float resolution)
{
int width = (int)(mf.Width * resolution / mf.HorizontalResolution);
int height = (int)(mf.Height * resolution / mf.VerticalResolution);
Bitmap bmp = new Bitmap(width, height);
bmp.SetResolution(resolution, resolution);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(mf, Point.Empty);
}
return bmp;
}
}
}Imports Spire.Doc
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Spire.Doc.Documents
Namespace ConvertWordToPng
Class Program
Shared Sub Main(ByVal args() As String)
'创建 Document 类的对象
Dim doc As Document = New Document()
'载入 Word 文档
doc.LoadFromFile("C:\示例.docx")
'将整个Word文档转换为位图集合
Dim images() As Image = doc.SaveToImages(ImageType.Metafile)
'循环遍历位图集合中的位图
Dim i As Integer
For i = 0 To images.Length - 1 Step i + 1
'设置图片的分辨率
Dim Newimage As Image = ResetResolution(images(i) As Metafile, 150)
'将图片保存为PNG文件
Dim outputfile As String = String.Format("图片-{0}.png", i)
Newimage.Save(outputfile, ImageFormat.Png)
Next
End Sub
'设置图片分辨率
Public Shared Function ResetResolution(ByVal mf As Metafile, ByVal resolution As Single) As Image
Dim width As Integer = CType((mf.Width * resolution / mf.HorizontalResolution), Integer)
Dim height As Integer = CType((mf.Height * resolution / mf.VerticalResolution), Integer)
Dim bmp As Bitmap = New Bitmap(width, height)
bmp.SetResolution(resolution, resolution)
Imports (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(mf, PoInteger.Empty)
}
Return bmp
End Function
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。