冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

Spire.XLS for Java 13.3.1 已发布。本次更新增强了 Excel 到 PDF 的转换。此外,该版本还成功修复了许多已知问题,如自适应宽度效果跟微软Excel不一致的问题。详情请阅读以下内容。

问题修复:


下载 Spire.XLS for Java 13.3.1 请点击:

https://www.e-iceblue.cn/Downloads/Spire-XLS-JAVA.html

Spire.PDF for C++ 是一款独立 PDF 控件,用于 C++ 程序中创建、读取、写入、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。

Spire.PDF for C++ 支持的功能十分全面,例如文档安全性设置,提取 PDF 文本、附件、图片,创建 PDF 文件包,PDF 合并和拆分,添加骑缝章,更新 Metadata,设置 Section,绘制图形、插入图片、导入数据等等。除此以外,Spire.PDF 还可以将 TXT 文本、图片、HTML 和 SVG 高质量地转换为 PDF 文件格式。

Spire.Presentation for C++ 是一款专业的 PowerPoint® 组件,使用该组件,开发者可以在 C++ 平台上对 PowerPoint® 文档进行生成、读取、写入、修改和转换等操作。 作为一个独立的控件,Spire.Presentation for C++ 的运行无需要安装 Microsoft PowerPoint。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。

Spire.Presentation for C++ 支持 PPT、PPS、PPTX、PPSX 格式的 PowerPoint® 文档,主要支持的功能有写入文本,插入图片,添加图形、表格、动画效果、音频和视频等元素到幻灯片。Spire.Presentation for C++ 也支持将幻灯片转换为 JPG、PDF、XPS、OFD、SVG、HTML 格式文件。

Spire.XLS for C++ 是一款专业的 C++ Excel 组件,可以用在各种 C++ 框架及应用程序中。Spire.XLS for C++ 提供了一个对象模型 Excel API,使开发人员可以快速地在 C++ 平台上完成对 Excel 的各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换。

Spire.XLS for C++ 是一个独立的 Excel 组件,不依赖于 Microsoft Office Excel。它同时支持旧版的 Excel 97-2003(.xls)格式文档和新版的 Excel 2007、Excel 2010、Excel 2013、Excel 2016、Excel 2019(.xlsx, .xlsb, .xlsm)以及 Open Office(.ods)格式文档。与自己开发 Excel 程序或使用 Microsoft Automation 相比,它具有速度快和可靠性高等优点。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。

Spire.Doc for C++ 是一款专门对 Word 文档进行操作的 C++ 类库。这款控件的主要功能在于帮助开发人员轻松快捷高效地创建、编辑、转换、及比较Microsoft Word 文档。作为一款独立的 Word C++ 控件,Spire.Doc for C++ 的运行系统(服务器端或客户端)均无需安装 Microsoft Word,但是它却可以将 Microsoft Word 文档的操作功能集成到任何开发人员的 C++ 应用程序中。

Spire.Doc for C++ 能执行多种 Microsoft Word 文档处理任务的 C++ API。支持 Word97-2003、Word2007、Word2010、Word2013、Word2016 以及 Word2019。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。能在 Word 97/2003/2007/2010/2013 和 XML、RTF、TXT、XPS、EPUB、EMF、HTML、ODT 等格式文件之间进行双向转换,还能将 Word 文件高质量地转换为 PDF、OFD、PCL 和 SVG 文件格式。

随着 PDF 文档类型的日益多样化,您可能会需要对机密信息进行保护。尽管 PDF 的许多其他安全选项可用于确保机密信息的安全,但最常见的方法是为PDF文档添加自定义水印。在本文中,您将学习如何使用 Spire.PDF for C++ 在 C++ 中为 PDF 添加单行或多行文本水印。

安装 Spire.PDF for C++

有两种方法可以将 Spire.PDF for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire. PDF for C++ 集成到 C++ 程序中

将单行文本水印添加到 PDF

Spire.PDF for C++ 不提供负责在 PDF 文件中插入水印的接口或类。但您可以在每页上绘制类似“机密”、“请勿复制”或“草稿”的文本,以模拟水印效果。以下是向 PDF 文档添加单行文本水印的步骤。

  • C++
#include "Spire.Pdf.o.h";

using namespace std;
using namespace Spire::Pdf;

int main()
{
	//指定输入文件和输出文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.pdf";
	wstring outputFilePath = L"Output\\添加单行文本水印.pdf";

	//创建PdfDocument对象
	PdfDocument* doc = new PdfDocument();

	//加载PDF文件
	doc->LoadFromFile(inputFilePath.c_str());

	//创建true字体类型
	PdfTrueTypeFont* font = new PdfTrueTypeFont(L"宋体", 50.0f, PdfFontStyle::Bold, true);

	//创建一个笔刷
	boost::intrusive_ptr<PdfBrush> brush = PdfBrushes::GetDarkGray();

	//指定水印文本
	wstring text = L"请勿复制";

	//测量文本大小
	SizeF textSize = font->MeasureString(text.c_str());

	//计算两个偏移量,用于计算坐标系的平移量
	float offset1 = (float)(textSize.GetWidth() * sqrt(2) / 4);
	float offset2 = (float)(textSize.GetHeight() * sqrt(2) / 4);

	//遍历文档中的页面
	for (size_t i = 0; i < doc->GetPages()->GetCount(); i++)
	{
		//获取特定页面
		boost::intrusive_ptr <PdfPageBase> page = doc->GetPages()->GetItem(i);

		//设置页面透明度
		page->GetCanvas()->SetTransparency(0.8);

		//将坐标系转换为指定坐标
		page->GetCanvas()->TranslateTransform(page->GetCanvas()->GetSize()->GetWidth() / 2 - offset1 - offset2, page->GetCanvas()->GetSize()->GetHeight() / 2 + offset1 - offset2);

		//逆时针旋转坐标系45度
		page->GetCanvas()->RotateTransform(-45);

		//在页面上绘制水印文本
		page->GetCanvas()->DrawString(text.c_str(), font, brush, 0, 0, new PdfStringFormat(PdfTextAlignment::Left));
	}

	//保存文档
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

C++ 在 PDF 文档中添加文本水印

将多行文本水印添加到 PDF

要实现平铺水印效果,可以使用 PdfTilingBrush 类。平铺笔刷生成一个图案,用它重复填充某个图形区域即可实现平铺效果。以下是向 PDF 文档添加平铺文本水印的步骤。

  • C++
#include "Spire.Pdf.o.h";

using namespace std;
using namespace Spire::Pdf;

static void InsertTiledTextWatermark(PdfPageBase* page, wstring watermarkText, PdfTrueTypeFont* font, int rowNum, int columnNum)
{
	//测量文本大小
	SizeF textSize = font->MeasureString(watermarkText.c_str());

	//计算两个偏移量,用于计算坐标系的平移量
	float offset1 = (float)(textSize.GetWidth() * sqrt(2) / 4);
	float offset2 = (float)(textSize.GetHeight() * sqrt(2) / 4);

	//获取页面高度和宽度
	float height = page->GetActualSize()->GetHeight();
	float width = page->GetActualSize()->GetWidth();

	//创建平铺笔刷
	PdfTilingBrush* brush = new PdfTilingBrush(new SizeF(width / columnNum, height / rowNum));
	brush->GetGraphics()->SetTransparency(0.5f);
	brush->GetGraphics()->TranslateTransform(brush->GetSize()->GetWidth() / 2 - offset1 - offset2, brush->GetSize()->GetHeight() / 2 + offset1 - offset2);
	brush->GetGraphics()->RotateTransform(-45);

	//在画笔上绘制水印文本
	brush->GetGraphics()->DrawString(watermarkText.c_str(), font, PdfBrushes::GetRed(), 0, 0, new PdfStringFormat(PdfTextAlignment::Left));

	//使用平铺笔刷绘制一个矩形(覆盖整个页面)
	page->GetCanvas()->DrawRectangle(brush, new RectangleF(new PointF(0, 0), page->GetActualSize()));
}

int main()
{
	//指定输入文件和输出文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.pdf";
	wstring outputFilePath = L"Output\\添加多行文本水印.pdf";

	//创建PdfDocument对象
	PdfDocument* doc = new PdfDocument();

	//加载PDF文件
	doc->LoadFromFile(inputFilePath.c_str());

	//指定水印文本
	wstring text = L"请勿复制";

	//创建true字体类型
	PdfTrueTypeFont* font = new PdfTrueTypeFont(L""宋体"", 20.0f, PdfFontStyle::Bold, true);

	//遍历文档中的页面
	for (size_t i = 0; i < doc->GetPages()->GetCount(); i++)
	{
		//调用自定义方法插入多行文本水印
		boost::intrusive_ptr<Spire::Pdf::PdfPageBase> page = doc->GetPages()->GetItem(i);
		InsertTiledTextWatermark(page.get(), text.c_str(), font, 3, 3);
	}

	//保存文档
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

C++ 在 PDF 文档中添加文本水印

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

将文档作为附件添加到 PDF 为您带来了很多便利。例如,您可以将多个文档作为单个文档传输;您可以在 PDF 文档中打开另一个文件,而无需从其他位置查找该文档;您可以降低丢失 PDF 中引用文档的可能性。

Spire.PDF for C++ 允许您以两种方式附加文件:

本文将向您展示如何使用 Spire.PDF for C++ 在 C++ 中添加或删除 PDF 文档中的常规附件和注释附件。

安装 Spire.PDF for C++

有两种方法可以将 Spire.PDF for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire. PDF for C++ 集成到 C++ 程序中

向 PDF 添加常规附件

要添加常规附件,可以使用 PdfDocument->GetAttachments()->Add() 方法。以下是详细步骤。

  • C++
#include "Spire.Pdf.o.h";

using namespace Spire::Pdf;
using namespace std;

int main() {

    //指定输入文件路径
    wstring inputPdfPath = L"C:\\Users\\Administrator\\Desktop\\AI创意赛.pdf";
    wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\参赛人员名单.xlsx";

    //指定输出文件路径
    wstring outputFilePath = L"Output\\添加附件.pdf";

    //创建PdfDocument对象
    PdfDocument* doc = new PdfDocument();

    //加载示例PDF文件
    doc->LoadFromFile(inputPdfPath.c_str());

    //基于外部文件创建PdfAttachment对象
    PdfAttachment* attachment = new PdfAttachment(inputFilePath.c_str());

    //将附件添加到PDF
    doc->GetAttachments()->Add(attachment);

    //保存到文件
    doc->SaveToFile(outputFilePath.c_str());
    delete doc;
}

C++ 在 PDF 文档中添加或删除附件

向 PDF 添加注释附件

注释附件由 PdfAttachmentAnnotation 类表示。您需要基于外部文件创建该类的实例,然后使用 PdfPageBase->GetAnnotationsWidget()->Add() 方法将其添加到特定页面。以下是详细步骤。

  • C++
#include "Spire.Pdf.o.h";

using namespace Spire::Pdf;
using namespace std;

int main() {

    //指定输入文件路径
    wstring inputPdfPath = L"AI创意赛.pdf";
    wstring inputFilePath = L"赛制规则及流程安排.docx";

    //指定输出文件路径
    wstring outputFilePath = L"Output\\添加注释附件.pdf";

    //创建PdfDocument对象
    PdfDocument* doc = new PdfDocument();

    //加载示例PDF文件
    doc->LoadFromFile(inputPdfPath.c_str());

    //获取特定页面
    boost::intrusive_ptr <PdfPageBase> page = doc->GetPages()->GetItem(0);

    //在PDF上绘制标签
    wstring label = L"现场相关事宜安排见附件:";
    PdfTrueTypeFont* font = new PdfTrueTypeFont(L"宋体", 13.0f, PdfFontStyle::Bold, true);
    float x = 35;
    float y = doc->GetPages()->GetItem(0)->GetActualSize()->GetHeight() - 220;
    page->GetCanvas()->DrawString(label.c_str(), font, PdfBrushes::GetRed(), x, y);

    //转换要附加到流的文件
    ifstream is1(inputFilePath.c_str(), ifstream::in | ios::binary);
    is1.seekg(0, is1.end);
    int length1 = is1.tellg();
    is1.seekg(0, is1.beg);
    char* buffer1 = new  char[length1];
    is1.read(buffer1, length1);
    Stream* stream = new Spire::Pdf::Stream((unsigned char*)buffer1, length1);
    boost::intrusive_ptr <SizeF> size = font->MeasureString(label.c_str());
    RectangleF* bounds = new RectangleF((float)(x + size->GetWidth() + 5), (float)y, 10, 15);

    //基于文件创建PdfAttachmentAnnotation对象
    PdfAttachmentAnnotation* annotation = new PdfAttachmentAnnotation(bounds, L"赛制规则及流程安排.docx", stream);
    annotation->SetColor(new PdfRGBColor(Spire::Pdf::Color::GetDarkOrange()));
    annotation->SetFlags(PdfAnnotationFlags::ReadOnly);
    annotation->SetIcon(PdfAttachmentIcon::Graph);
    annotation->SetText(L"单击此处打开文件");

    //将附件注释添加到PDF
    page->GetAnnotationsWidget()->Add(annotation);

    //保存文件
    doc->SaveToFile(outputFilePath.c_str());
    delete doc;
}

C++ 在 PDF 文档中添加或删除附件

删除 PDF 中的常规附件

Spire.PDF for C++ 提供 PdfDocument->GetAttachments() 方法用于返回 PDF 文档的常规附件集合。然后您可以使用 PdfAttachmentCollection->RemoveAt() 方法或 PdfAttachmentCollection->Clear() 方法删除特定附件或所有附件。详细步骤如下。

  • C++
#include "Spire.Pdf.o.h";

using namespace Spire::Pdf;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputPdfPath = L"C:\\Users\\Administrator\\Desktop\\示例文档.pdf";

	//指定输出文件路径
	wstring outputFilePath = L"Output\\删除附件.pdf";

	//创建PdfDocument对象
	PdfDocument* doc = new PdfDocument();

	//加载PDF文件
	doc->LoadFromFile(inputPdfPath.c_str());

	//获取所有附件
	boost::intrusive_ptr <PdfAttachmentCollection> attachments = doc->GetAttachments();

	//删除所有附件
	attachments->Clear();

	//删除指定附件
	//attachments->RemoveAt(0);

	//保存文件
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

删除 PDF 中的注释附件

注释是基于页面的元素。 您可以使用 PdfPageBase->GetAnnotationsWidget() 方法从特定页面获取注释,并确定某个注释是否为注释附件。之后,使用 PdfAnnotationCollection->Remove() 方法从注释集合中删除注释附件。 以下是详细步骤。

  • C++
#include "Spire.Pdf.o.h";

using namespace Spire::Pdf;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputPdfPath = L"C:\\Users\\Administrator\\Desktop\\示例文档.pdf";

	//指定输出文件路径
	wstring outputFilePath = L"Output\\删除附件.pdf";

	//创建PdfDocument对象
	PdfDocument* doc = new PdfDocument();

	//加载PDF文件
	doc->LoadFromFile(inputPdfPath.c_str());

	//获取所有附件
	PdfAttachmentCollection* attachments = doc->GetAttachments();

	//删除所有附件
	attachments->Clear();

	//删除指定附件
	//attachments->RemoveAt(0);

	//保存文件
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

背景颜色或图片可以使文档更加美观和引人注目。如果您正在创建一个用于营销、教育或演示的文档,添加一个具有吸引力的背景色或图片将非常有用。在本文中,我们将演示如何使用 Spire.Doc for C++ 以编程方式给 Word 文档添加背景色或背景图。

安装 Spire.Doc for C++

有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.Doc for C++ 集成到 C++ 程序中

给 Word 添加背景色

使用 Spire.Doc for C++,向 Word 文档添加背景颜色非常简单。您只需要将文档的背景类型设置为颜色,然后指定一种颜色作为背景即可。详细步骤如下。

  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
	//初始化 Document 类的一个实例
	intrusive_ptr <Document> document = new Document();
	//加载 Word 文档
	document->LoadFromFile(L"鲁迅.docx");

	//获取文档的背景
	intrusive_ptr <Background> background = document->GetBackground();
	//将背景类型设置为颜色
	background->SetType(BackgroundType::Color);
	//设置背景颜色
	background->SetColor(Color::GetAliceBlue());

	//保存结果文档
	document->SaveToFile(L"添加背景颜色.docx", FileFormat::Docx2013);
	document->Close();
}

C++ 为 Word 文档添加背景色或背景图

给 Word 添加渐变背景

要添加渐变背景,您需要将背景类型设置为渐变,指定渐变颜色,然后设置渐变着色变体和样式。详细步骤如下。

  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
	//初始化 Document 类的一个实例
	intrusive_ptr <Document> document = new Document();
	//加载 Word 文档
	document->LoadFromFile(L"鲁迅.docx");

	//获取文档的背景
	intrusive_ptr <Background> background = document->GetBackground();
	//设置背景类型为渐变
	background->SetType(BackgroundType::Gradient);

	//指定两种渐变颜色
	background->GetGradient()->SetColor1(Color::GetWhite());
	background->GetGradient()->SetColor2(Color::GetLightBlue());

	//设置渐变着色变体和样式
	background->GetGradient()->SetShadingVariant(GradientShadingVariant::ShadingDown);
	background->GetGradient()->SetShadingStyle(GradientShadingStyle::Horizontal);

	//保存结果文档
	document->SaveToFile(L"添加渐变背景.docx", FileFormat::Docx2013);
	document->Close();
}

C++ 为 Word 文档添加背景色或背景图

给 Word 添加背景图片

为 Word 文档添加背景图片,需要设置背景类型为图片,然后插入图片作为背景。详细步骤如下。

  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
	//初始化 Document 类的一个实例
	intrusive_ptr <Document> document = new Document();
	//加载 Word 文档
	document->LoadFromFile(L"鲁迅.docx");

	//获取文档的背景
	intrusive_ptr <Background> background = document->GetBackground();
	//设置背景类型为图片
	background->SetType(BackgroundType::Picture);

	//设置背景图片
	background->SetPicture(L"背景图.jpeg");

	//保存结果文档
	document->SaveToFile(L"添加背景图.docx", FileFormat::Docx2013);
	document->Close();
}

C++ 为 Word 文档添加背景色或背景图

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

PDF 是当今使用的最通用且功能最丰富的文件格式之一。与 Word 相比,PDF 文档在各种设备上打开时丢失格式的可能性极低。此外,PDF在文档安全、归档和传输方面相比Word具有绝对的优势。这些就是我们为什么要将 Word 转换为 PDF 的一些原因。在本文中,您将学习如何将 Word 转换为 PDF 以及如何使用 Spire.Doc for C++ 在 C++ 中设置转换选项。

安装 Spire.Doc for C++

有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.Doc for C++ 集成到 C++ 程序中

将 Doc 或 Docx 转换为 PDF

Spire.Doc for C++ 提供的 Document->SaveToFile(LPCWSTR_S fileName, FileFormat fileFormat) 方法允许将 Word 另存为 PDF、XPS、HTML、RTF 等。如果您只想将 Word 文档另存为常规 PDF 而无需额外设置 , 请按照以下步骤操作。

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.docx";

	//指定输出文件路径和名称
	wstring outputPath = L"Output\\";
	wstring outputFile = outputPath + L"ToPDF.pdf";

	//创建Document对象
    intrusive_ptr<document> = new Document();

	//加载 Word 文件
    document->LoadFromFile(inputFilePath.c_str());

	//将文档保存为 PDF
	document->SaveToFile(outputFile.c_str(), FileFormat::PDF);
    document->Close();
}

C++ 将 Word 转换为 PDF

将 Word 转换为带有书签的 PDF

书签可以增强文档的可读性。从 Word 生成 PDF 时,您可能希望保留 Word 文档的现有书签或从标题创建书签。以下是将 Word 转换为带书签的 PDF 的步骤。

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.docx";

	//指定输出文件路径和名称
	wstring outputPath = L"Output\\";
	wstring outputFile = outputPath + L"ToPDF.pdf";

 //创建Document对象
 intrusive_ptr<Document> document = new Document();

 //加载 Word 文件
 document->LoadFromFile(inputFilePath.c_str());

 //创建 ToPdfParameterList 对象
 intrusive_ptr<ToPdfParameterList> = new ToPdfParameterList();

 //从 Word 标题创建书签
 parameters->SetCreateWordBookmarksUsingHeadings(true);

 //从 Word 中的现有书签创建 PDF 书签
 //parameters->SetCreateWordBookmarks(true);

 //将文档保存为 PDF
 document->SaveToFile(outputFile.c_str(), parameters);
 document->Close();
}

C++ 将 Word 转换为 PDF

将 Word 转换为 PDF 时嵌入字体

通过将 Word 文档中使用的字体嵌入到 PDF 文档中,可以确保 PDF 文档在任何未安装适当字体的设备上看起来都一样。在转换过程中将字体嵌入 PDF 的步骤如下。

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.docx";

	//指定输出文件路径和名称
	wstring outputPath = L"Output\\";
	wstring outputFile = outputPath + L"ToPDF.pdf";

	//创建Document对象
intrusive_ptr<document> = new Document();

//加载 Word 文件
document->LoadFromFile(inputFilePath.c_str());

//创建 ToPdfParameterList 对象
intrusive_ptr<ToPdfParameterList> parameters = new ToPdfParameterList();

//在生成的 PDF 中嵌入 Word 中使用的字体
parameters->SetIsEmbeddedAllFonts(true);

//将文档保存为 PDF
document->SaveToFile(outputFile.c_str(), parameters);
document->Close();
}

C++ 将 Word 转换为 PDF

将 Word 转换为 PDF 时设置图像质量

包含大量高质量图像的文档通常尺寸较大。当您将 Word 转换为 PDF 时,您可以决定是否压缩图像质量。以下是详细步骤。

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main() {

	//指定输入文件路径
	wstring inputFilePath = L"C:\\Users\\Administrator\\Desktop\\示例文档.docx";

	//指定输出文件路径和名称
	wstring outputPath = L"Output\\";
	wstring outputFile = outputPath + L"ToPDF.pdf";

	//创建 Document 对象
intrusive_ptr<document> = new Document();

//加载 Word 文件
document->LoadFromFile(inputFilePath.c_str());

//将图像压缩到原始质量的 40%
document->SetJPEGQuality(40);

//保持原始图像质量
//document->SetJPEGQuality(100);

//将文档保存为 PDF
document->SaveToFile(outputFile.c_str(), FileFormat::PDF);
document->Close();
}

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

Spire.Doc for Java 11.3.0 已发布。该版本增强了 Word 到 PDF 的转换。此外,本次更新还修复了许多已知问题,如修复了替换书签时程序抛异常java.lang.NullPointerException的问题。详情请阅读以下内容。

问题修复:


获取Spire.Doc for Java 11.3.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-Doc-JAVA.html