编程教育资源分享平台

网站首页 > 后端开发 正文

C++ 将 Word 转换为 PDF

luoriw 2024-02-01 14:33:07 后端开发 32 ℃ 0 评论

Word转PDF是指将Microsoft Word文档(.doc或.docx格式)或金山WPS 文档转换为便携式文档格式(PDF)。这个操作可以使文档在不同操作系统和设备上都按统一的方式显示,并确保文档的格式和字体保持不变。Word转PDF特别适用于共享文档、电子邮件附件、打印或存档文档时,保证文档的完整性和可移植性。本文将从下面四个方面详细介绍如何将 Word 转换为 PDF 以及如何使用 Spire.Doc for C++ 在 C++ 中设置转换选项

  • 将 Doc 或 Docx 转换为 PDF
  • 将 Word 转换为带有书签的 PDF
  • 将 Word 转换为 PDF 时嵌入字体
  • 将 Word 转换为 PDF 时设置图像质量

安装 Spire.Doc for C++

可直接通过 NuGet 安装Spire.Doc for C++简单快捷,推荐使用。

dotnet add package Spire.Doc.Cpp

将 Doc 或 Docx 转换为 PDF

Spire.Doc for C++ 提供 Document->SaveToFile(LPCWSTR_S fileName, FileFormat fileFormat) 方法允许将 Word 另存为 PDF、XPS、HTML、RTF 等。只需三行代码即可完成word 文档到PDF的转换。

  • 创建 Doucment 对象。
  • 使用 Document->LoadFromFile() 方法加载示例 Word 文件。
  • 使用 Doucment->SaveToFile() 方法将文档保存为 PDF。
#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对象
	Document* document = new Document();

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

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

将 Word 转换为带有书签的 PDF

书签可以快速定位文档位置并增强文档可读性。Word 生成 PDF 时,您可能希望保留 Word 文档的现有书签或从标题创建书签。

#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对象
	Document* document = new Document();

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

	//创建 ToPdfParameterList 对象
	ToPdfParameterList* parameters = new ToPdfParameterList();

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

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

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

将 Word 转换为 PDF 时嵌入字体

若系统没有安装相应字体,有时会看到生成的PDF文档里面文字变成了乱码。通过将 Word 文档中使用的字体嵌入到 PDF 文档中,可以确保 PDF 文档在任何未安装适当字体的设备上正常显示。

#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对象
	Document* document = new Document();

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

	//创建 ToPdfParameterList 对象
	ToPdfParameterList* parameters = new ToPdfParameterList();

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

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

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

包含大量高质量图像的文档通常尺寸较大。将 Word 转换为 PDF 时,您可以压缩图像质量以控制PDF文件大小。

#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 对象
	Document* 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();
	delete document;
}

以上为Spire.Doc for C++ 将word文档保存为 PDF的简要操作。Spire.Doc for C++支持非常全面的C++操作Word文档,可以前往Word 组件QQ交流群 913816707 参与更多讨论。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表
最新留言