Spire.PDF for Java 9.2.1 已发布。该版本支持转换 PDF 到 PPT 以及转换有打开密码的PDF 到 PDFA,同时还支持压缩有打开密码的 PDF。此外,本次更新还增强了 PDF 到 Excel 和 PDFA2B 的转换。本次更新还修复了一些已知问题。详情请阅读以下内容。
新功能:
PdfDocument pdfDocument =new PdfDocument();
pdfDocument.loadFromFile("https://cdn.e-iceblue.cn/input.pdf");
pdfDocument.saveToFile("output.pptx", FileFormat.PPTX);PdfStandardsConverter converter=new PdfStandardsConverter("input.pdf", "password");
converter.toPdfA2A("output.pdf");PdfCompressor compressor = new PdfCompressor("input.pdf","password");
compressor.getOptions().getImageCompressionOptions().setImageQuality(ImageQuality.Low);
compressor.compressToFile("output.pdf");问题修复:
Spire.PDF for C++ 是一个专业的 PDF 库,供开发人员在任何类型的 C++ 应用程序中阅读、创建、编辑和转换 PDF 文档。本文演示了如何以两种不同的方式将 Spire.PDF for C++ 集成到您的 C++ 应用程序中。
步骤1
在 Visual Studio 2022 中创建一个 C++ 项目。

步骤2
在解决方案资源管理器中右键单击“引用”,然后在弹出菜单中选择“管理 NuGet 包”。

单击“浏览”,搜索“spire.pdf.cpp”,并将其安装到您的项目中。

步骤3
在解决方案资源管理器中右键单击“源文件”,选择“添加”,然后选择“新建项”。

创建一个 .cpp 文件

步骤4
单击刚刚创建的 .cpp 文件以编写代码。 在开始之前,您需要通过将以下代码行添加到您的程序来包含头文件“Spire.Pdf.o.h”
#include "Spire.Pdf.o.h"下面的代码示例向您展示了如何使用 Spire.PDF for C++ 创建一个简单的 PDF 文件。

步骤1
下载 Spire.PDF for C++ 包并将其解压到本地磁盘上的某个位置,以获得以下文件。

步骤2
在 Visual Studio 2022 中创建一个 C++ 项目。

步骤3
将产品包中的“include”文件夹和“lib”文件夹复制到您的项目中,并将它们保存在 .sln 文件所在的同一文件夹下。

步骤4
右键单击项目名称并选择“属性”。

配置输出目录。根据您选择的构建模式(调试或发布),可以将输出目录设置为“..\lib\x64\debug”或“..\lib\x64\release”。

步骤5
在解决方案资源管理器中右键单击“源文件”,选择“添加”,然后选择“新建项”。

创建一个 .cpp 文件

步骤6
单击刚才创建的 .cpp 文件以编写代码。开始之前,您需要在程序中包含以下两行代码。
#include "../include/Spire.Pdf.o.h"
#pragma comment(lib,"../lib/x64/debug/Spire.Pdf.Cpp.lib")下面的代码示例向您展示了如何使用 Spire.PDF for C++ 创建一个简单的 PDF 文件。

Spire.Cloud 8.2.2 已发布。在本次更新中,该版本修复了给文本添加下划线后刷新页面时报错的问题。详情请阅读以下内容。
问题修复:
当您在处理 Excel 文档时,可能经常需要从主工作簿复制数据并粘贴到单独的工作簿中。 为了提高工作效率,您可以在不同工作簿之间复制选定的单元格范围或整个工作表。本文演示了如何使用 Spire.XLS for .NET 将选定单元格范围从一个工作簿复制到另一个工作簿。
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLSSpire.XLS 提供了 Worksheet.Copy() 方法来将数据从源范围复制到目标范围。目标范围可以是同一工作簿内或来自不同工作簿的单元格范围。以下是将单元格范围从一个工作簿复制到另一个工作簿的步骤。
using Spire.Xls;
namespace CopyCellRange
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook对象
Workbook sourceBook = new Workbook();
//加载源 Excel 文档
sourceBook.LoadFromFile(@"C:\Users\Administrator\Desktop\测试文档.xlsx");
//获取源工作表
Worksheet sourceSheet = sourceBook.Worksheets[0];
//获取源单元格区域
CellRange sourceRange = sourceSheet.Range["A1:E4"];
//创建另一个Workbook对象
Workbook destBook = new Workbook();
//加载目标工作簿
destBook.LoadFromFile(@"C:\Users\Administrator\Desktop\目标文档.xlsx");
//获取目标工作表
Worksheet destSheet = destBook.Worksheets[0];
//获取单元格区域
CellRange destRange = destSheet.Range["B2:F5"];
//将数据从源范围复制到目标范围
sourceSheet.Copy(sourceRange, destRange);
//循环遍历源范围中的列
for (int i = 0; i < sourceRange.Columns.Length; i++)
{
//将列宽也从源范围复制到目标范围
destRange.Columns[i].ColumnWidth = sourceRange.Columns[i].ColumnWidth;
}
//将目标工作簿保存到 Excel 文件
destBook.SaveToFile("复制单元格范围.xlsx");
}
}
}Imports Spire.Xls
Namespace CopyCellRange
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个Workbook对象
Dim sourceBook As Workbook = New Workbook()
'加载源 Excel 文档
sourceBook.LoadFromFile("C:\Users\Administrator\Desktop\测试文档.xlsx")
'获取源工作表
Dim sourceSheet As Worksheet = sourceBook.Worksheets(0)
'获取源单元格区域
Dim sourceRange As CellRange = sourceSheet.Range("A1:E4")
'创建另一个Workbook对象
Dim destBook As Workbook = New Workbook()
'加载目标工作簿
destBook.LoadFromFile("C:\Users\Administrator\Desktop\目标文档.xlsx")
'获取目标工作表
Dim destSheet As Worksheet = destBook.Worksheets(0)
'获取单元格区域
Dim destRange As CellRange = destSheet.Range("B2:F5")
'将数据从源范围复制到目标范围
sourceSheet.Copy(sourceRange, destRange)
'循环遍历源范围中的列
For i As Integer = 0 To sourceRange.Columns.Length - 1
'将列宽也从源范围复制到目标范围
destRange.Columns(i).ColumnWidth = sourceRange.Columns(i).ColumnWidth
Next
'将目标工作簿保存到 Excel 文件
destBook.SaveToFile("复制单元格范围.xlsx")
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Java 11.2.3 已发布。本次更新新增支持设置内容控件的sdtAppearance属性。同时,此版本增强了 Word 到 PDF 的转换。此外,该版本还修复了许多已知问题,如:修复了应用程序在更新TableOfContents时抛"Unknown Source" 错误的问题。详情请阅读以下内容。
新功能:
Document doc = ConvertUnit.GetNewEngineDocument();
doc.loadFromFile(https://cdn.e-iceblue.cn/inputFile);
for (Object docObj : doc.getSections().get(0).getBody().getChildObjects())
{
if (docObj instanceof StructureDocumentTag) {
DocumentObject Obj = (DocumentObject)docObj;
SDTProperties sdtProperties = ((StructureDocumentTag)Obj).getSDTProperties();
switch (sdtProperties.getSDTType())
{
case Text:
sdtProperties.setAppearance(SdtAppearance.Hidden);
break;
case Rich_Text:
sdtProperties.setAppearance(SdtAppearance.BoundingBox);
break;
case Picture:
sdtProperties.setAppearance(SdtAppearance.Tags);
break;
case Check_Box:
sdtProperties.setAppearance(SdtAppearance.Default);
break;
}
}
}
doc.saveToFile(outputFile, FileFormat.Docx);
doc.dispose();问题修复:
Excel 电子表格是基于网格的文档,用于以有组织的方式组织信息。世界各地的人们都使用电子表格来创建表格,以满足商业或个人需求。多年来,Excel 电子表格在简化繁琐的数据管理过程方面发挥了重要作用。在本文中,您将学习如何使用 Spire.XLS for C++ 创建 Excel 文档,以及如何将数据写入 Excel 工作表。
有两种方法可以将 Spire.XLS for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
在 C++ 应用程序中集成 Spire.XLS for C++
Spire.XLS for C++ 提供了 Workbook 类和 Worksheet 类,分别表示 Excel 文档和工作表。 用户可以使用 Worksheet->GetRange(int row, int column) 方法访问特定的单元格。然后,使用 CellRange->SetText() 或 CellRange->SetNumberValue() 方法为单元格分配一个文本值或数字值。以下是详细步骤:
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//指定输出文件路径和名称
std::wstring outputPath = L"输出\\";
std::wstring outputFile = outputPath + L"将单个值写入单元格.xlsx";
//创建一个Workbook对象
intrusive_ptr<Workbook> workbook = new Workbook();
//获取第一个工作表
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//将文本和数字写入指定的单元格
sheet->GetRange(1, 1)->SetText(L"名字");
sheet->GetRange(1, 2)->SetText(L"年龄");
sheet->GetRange(1, 3)->SetText(L"部门");
sheet->GetRange(1, 4)->SetText(L"入职日期");
sheet->GetRange(1, 1)->SetText(L"名字");
sheet->GetRange(2, 1)->SetText(L"安欣");
sheet->GetRange(2, 2)->SetNumberValue(29);
sheet->GetRange(2, 3)->SetText(L"市场部");
sheet->GetRange(2, 4)->SetText(L"2018-02-26");
sheet->GetRange(3, 1)->SetText(L"李响");
sheet->GetRange(3, 2)->SetNumberValue(30);
sheet->GetRange(3, 3)->SetText(L"人力资源部");
sheet->GetRange(3, 4)->SetText(L"2017-07-13");
sheet->GetRange(4, 1)->SetText(L"高启强");
sheet->GetRange(4, 2)->SetNumberValue(35);
sheet->GetRange(4, 3)->SetText(L"策划部");
sheet->GetRange(4, 4)->SetText(L"2015-04-01");
//自动调整列宽
sheet->GetAllocatedRange()->AutoFitColumns();
//将样式应用于第一行
intrusive_ptr <CellStyle> style = dynamic_pointer_cast<CellStyle>(workbook->GetStyles()->Add(L"newStyle"));
style->GetFont()->SetIsBold(true);
sheet->GetRange(1, 1, 1, 4)->SetStyle(style);
//保存文件
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
Spire.XLS for C++ 提供了 Worksheet->InsertArray() 方法,允许程序员将向量写入工作表的指定单元格范围。在将数组写入工作表之前,您需要将它们转换为向量。将数组写入工作表的步骤如下:
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
using namespace std;
int main() {
//指定输出文件路径和名称
wstring outputPath = L"输出\\";
wstring outputFile = outputPath + L"将数组写入指定的单元格范围.xlsx";
//创建一个Workbook对象
intrusive_ptr<Workbook> workbook = new Workbook();
//获取第一个工作表
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//创建一维数组
wstring oneDimensionalArray[6] = { L"一月", L"二月", L"三月", L"四月", L"五月", L"六月" };
//将数组转换为向量
vector<LPCWSTR> vec;
for (size_t i = 0; i < sizeof(oneDimensionalArray) / sizeof(oneDimensionalArray[0]); i++)
{
vec.push_back(oneDimensionalArray[i].c_str());
}
//将向量插入工作表
sheet->InsertArray(vec, 1, 1, false);
//创建一个二维数组
wstring twoDimensionalArray[4][5] = {
{L"姓名", L"年龄", L"性别", L"部门.", L"联系方式."},
{L"李玉", L"25", L"女", L"广告部", L"835285"},
{L"高韵锦", L"24", L"男", L"运营策划部", L"835569"},
{L"陈书婷", L"26", L"女", L"销售部", L"834152"}
};
//获取行号和列号
int rowNum = sizeof(twoDimensionalArray) / sizeof(twoDimensionalArray[0]);
int columnNum = sizeof(twoDimensionalArray[0]) / sizeof(twoDimensionalArray[0][0]);
//将二维数组拆分为多个一维向量
for (size_t i = 0; i < rowNum; i++)
{
vector<LPCWSTR> vec_temp;
for (size_t j = 0; j < columnNum; j++)
{
vec_temp.push_back(twoDimensionalArray[i][j].c_str());
}
//将向量插入工作表
sheet->InsertArray(vec_temp, 4 + i, 1, false);
}
//自动调整列宽
sheet->GetAllocatedRange()->AutoFitColumns();
//将样式应用于第一行
intrusive_ptr <CellStyle> style = dynamic_pointer_cast<CellStyle>(workbook->GetStyles()->Add(L"newStyle"));
style->GetFont()->SetIsBold(true);
sheet->GetRange(1, 1, 1, 6)->SetStyle(style);
sheet->GetRange(4, 1, 4, 5)->SetStyle(style);
//保存文件
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Presentation 8.2.0 已发布。该版本修复了转换 PPT 到图片程序结束后内存不能被释放的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html
Spire.PDF 9.2.2 已发布。该版本新增 TextCompressionOptions 以支持设置压缩类型,同时还支持设置专色的颜色空间为 RGB。此外,本次更新还增强了 PDF 到 Excel 和图片以及 XPS 到 PDF 的转换。详情请阅读以下内容。
新功能:
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.Pages.Add();
PdfRGBColor c = Color.Purple;
//color space RGB
PdfSeparationColorSpace cs = new PdfSeparationColorSpace("MySpotColor", new PdfRGBColor(c.R, c.G, c.B));
//color space CMYK
PdfSeparationColorSpace cs = new PdfSeparationColorSpace("MySpotColor", new PdfRGBColor(c.C, c.M, c.Y, c.K));
//color space Grayscale
PdfSeparationColorSpace cs = new PdfSeparationColorSpace("MySpotColor", new PdfRGBColor(c.Gray));
PdfSeparationColor color = new PdfSeparationColor(cs, 1f);
PdfSolidBrush brush = new PdfSolidBrush(color);
page.Canvas.DrawPie(brush, 10, 30, 60, 60, 360, 360);
page.Canvas.DrawString("Tint=1.0", new PdfFont(PdfFontFamily.Helvetica, 10f), brush, new PointF(22, 100));
color = new PdfSeparationColor(cs, 0.5f);
brush = new PdfSolidBrush(color);
page.Canvas.DrawPie(brush, 80, 30, 60, 60, 360, 360);
page.Canvas.DrawString("Tint=0.5", new PdfFont(PdfFontFamily.Helvetica, 10f), brush, new PointF(92, 100));
color = new PdfSeparationColor(cs, 0.25f);
brush = new PdfSolidBrush(color);
page.Canvas.DrawPie(brush, 150, 30, 60, 60, 360, 360);
page.Canvas.DrawString("Tint=0.25", new PdfFont(PdfFontFamily.Helvetica, 10f), brush, new PointF(162, 100));
pdf.SaveToFile("SpotColorrgb.pdf");PdfCompressor compressor = new PdfCompressor(fileName);
compressor.Options.TextCompressionOptions.UnembedFonts = true;
compressor.CompressToFIle(outputName);问题修复:
Spire.Doc for C++ 是一个专业的 Word 库,供开发人员在任何类型的 C++ 应用程序中阅读、创建、编辑、比较和转换 Word 文档。 本文演示了如何以两种不同的方式将 Spire.Doc for C++ 集成到您的 C++ 应用程序中。
步骤1
在 Visual Studio 2022 中创建一个 C++ 项目。

步骤2
在解决方案资源管理器中右键单击“引用”,然后在弹出菜单中选择“管理 NuGet 包”。

单击“浏览”,搜索“spire.doc.cpp”,并将其安装到您的项目中。

步骤3
在解决方案资源管理器中右键单击“源文件”,选择“添加”,然后选择“新建项”。

创建一个 .cpp 文件

步骤4
单击刚刚创建的 .cpp 文件以编写代码。 在开始之前,您需要通过将以下代码行添加到您的程序来包含头文件“Spire.Doc.o.h”。
#include "Spire.Doc.o.h"下面的代码示例向您展示了如何使用 Spire.Doc for C++ 创建一个简单的 Word文件。

步骤1
下载 Spire. Doc for C++ 包并将其解压到本地磁盘上的某个位置,以获得以下文件。

步骤2
在 Visual Studio 2022 中创建一个 C++ 项目。

步骤3
将产品包中的“include”文件夹和“lib”文件夹复制到您的项目中,并将它们保存在 .sln 文件所在的同一文件夹下。

步骤4
右键单击项目名称并选择“属性”。

配置输出目录。根据您选择的构建模式(调试或发布),可以将输出目录设置为“..\lib\x64\debug”或“..\lib\x64\release”。

步骤5
在解决方案资源管理器中右键单击“源文件”,选择“添加”,然后选择“新建项”。

创建一个 .cpp 文件

步骤6
单击刚才创建的 .cpp 文件以编写代码。开始之前,您需要在程序中包含以下两行代码。
#include "../include/Spire.Doc.o.h"
#pragma comment(lib,"../lib/x64/debug/Spire.Doc.Cpp.lib")下列代码示例向您展示了如何使用 Spire.Doc for C++ 创建一个简单的 Word 文件。

Spire.Barcode 7.2.0已发布。本次更新修复了在ASP web应用中设置UseHttpHandlerMode=“True”时,QR码位置不正确的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.com/Download/download-barcode-for-net.html