Aspose.PDF for C++
通过 C++ API 创建、编辑和转换 PDF 文件
用于处理 PDF 文件的 C++ API,允许软件专业人员生成、修改、合并/拆分、提取和转换 PDF 文件。
Aspose.PDF for C++是一个非常强大的PDF文档处理C++库,使软件开发人员能够生成和操作 PDF 文档,无需使用 Adobe Acrobat 或任何第三方应用程序。 该库非常易于操作,可以轻松实现从头开始创建 PDF 文件的丰富功能。 该库可用于构建任何类型的 32 位和 64 位 C++ 应用程序,并且可以在服务器端和客户端上同样出色地执行。
Aspose.PDF for C++ 集成了用于创建、编辑、解析、操作和转换 PDF 文档的广泛功能,例如创建 PDF 表单和管理表单字段、在 PDFS 中插入或替换图像、向 PDF 添加文本 、自定义字体处理、设置页边距、管理页面大小、设置 PDF 过渡类型、添加和修改附件和注释、向 PDF 插入水印、添加和管理书签、分割 PDF 文档、PDF 合并、插入新页面、将页面转换为图像 、设置 PDF 文档的元数据等等。
Aspose.PDF for C++ 还支持广泛的安全功能,例如密码保护和数字签名,可用于保护 PDF 文档中的敏感信息。 该库还提供了多种用于优化和压缩 PDF 的选项,这有助于减小文件大小并使其更易于共享。 此外,该库完全支持各种格式选项,例如字体、颜色和对齐方式,使开发人员能够创建具有专业外观的文档。 总体而言,Aspose.PDF for C++ 是在 C++ 应用程序中处理 PDF 文档的最佳库之一。
C++ 版 Aspose.PDF 入门
安装 Aspose.PDF for C++ 的推荐方法是使用 NuGet。 为了顺利安装,请使用以下命令。
通过 NuGet 安装 Aspose.PDF for C++
NuGet\Install-Package Aspose.PDF -prerelease
您也可以直接从Aspose PDF 产品页面下载。
通过 C++ API 生成和编辑 PDF 文件
Aspose.PDF for C++ 完全支持在 C++ 应用程序内创建、阅读和修改 PDF 文档,无需在用户计算机上安装任何其他软件。 该库提供了简单直观的 PDF 创建方法,使开发人员可以轻松添加和删除页面、向新文档添加文本、图像和其他元素。 该库还提供了多种打开现有 PDF 文档的方法,例如通过指定文件名打开文档、从流中打开文档、打开加密文档、从内存缓冲区打开文档等等。
通过 C++ API 创建 PDF 文件
void CreatePDF() {
// String for path name.
String _dataDir("C:\\Samples\\");
// String for file name.
String filename("sample-new.pdf");
// Initialize document object
auto document = MakeObject();
// Add page
auto page = document->get_Pages()->Add();
// Add text to new page
auto textFragment = MakeObject(u"Hello World!");
page->get_Paragraphs()->Add(textFragment);
// Save updated PDF
String outputFileName = _dataDir + filename;
document->Save(outputFileName);
}
如何通过 C++ API 保护 PDF 文件?
Aspose.PDF for C++ 提供了各种重要功能来保护 C++ 应用程序中的 PDF 文档。 它支持通过应用密码以及使用数字签名来保护 PDF 文件内的敏感信息。 还可以更改现有 PDF 的密码,并确定源 PDF 是否受密码保护。 该库还允许只需几行代码即可加密和解密 PDF 文档。 您可以设置权限,例如限制用户更改文档内容、从 PDF 文件中提取图像或文本以及仅允许屏幕阅读等。
如何通过C++ API设置PDF文件的权限
void SecuringAndSigning::SetPrivilegesOnExistingPDF() {
// String for path name.
String _dataDir("C:\\Samples\\");
// Load a source PDF file
auto document = MakeObject(_dataDir + u"input.pdf");
// Instantiate Document Privileges object
// Apply restrictions on all privileges
auto documentPrivilege = DocumentPrivilege::get_ForbidAll();
// Only allow screen reading
documentPrivilege->set_AllowScreenReaders(true);
// Encrypt the file with User and Owner password.
// Need to set the password, so that once the user views the file with user password,
// Only screen reading option is enabled
document->Encrypt(u"user", u"owner", documentPrivilege, CryptoAlgorithm::AESx128, false);
// Save updated document
document->Save(_dataDir + u"SetPrivileges_out.pdf");
}
通过 C++ API 转换 PDF 文档
Aspose.PDF for C++ 使软件开发人员可以轻松地将 PDF 文档转换为他们自己的 C++ 应用程序中的其他几种受支持的文件格式。 该库提供了将 PDF 文件转换为各种流行格式以及从其他格式转换为 PDF 的支持。 您可以将 PDF 转换为 Word 文档、PowerPoint 演示文稿、Microsoft Excel(XLSX、ODS、CSV 和 SpreadSheetML)、EPUB、XPS、Postscript、文本、PDF/A 和许多其他文件格式。 该库还提供强大的支持,将图像转换为 PDF 以及将 PDF 页面转换为 JPEG、PNG 和其他格式的图像。
用 C++ 将 PDF 转换为 XLS
void ConvertPDFtoExcel()
{
std::clog << __func__ << ": Start" << std::endl;
// String for path name
String _dataDir("C:\\Samples\\Conversion\\");
// String for file name
String infilename("sample.pdf");
String outfilename("PDFToExcel.xls");
// Open document
auto document = MakeObject(_dataDir + infilename);
try {
// Save the output in XLS format
document->Save(_dataDir + outfilename, SaveFormat::Excel);
}
catch (Exception ex) {
std::cerr << ex->get_Message();
}
std::clog << __func__ << ": Finish" << std::endl;
}
通过 C++ API 优化 PDF 文档
Aspose.PDF for C++ API 为 C++ 应用程序内的 PDF 文档优化提供了全面支持。 PDF优化主要是减小PDF的大小以提高其加载速度。 该库使用各种技术进行文档优化,例如页面缩小或压缩所有图像、重用页面内容、重复流合并、取消嵌入字体、删除未使用的对象和表单字段、展平注释删除等。 此外,它还支持优化 PDF 文档的内容,以便在搜索引擎中获得更好的排名。
如何通过 C++ 压缩 PDF 中的图像?
void CompressImage() {
// String for path name
String _dataDir("C:\\Samples\\");
// String for input file name
String infilename("ShrinkDocument.pdf");
String outfilename("ShrinkDocument_out.pdf");
// Open document
auto document = MakeObject(_dataDir + infilename);
// Initialize OptimizationOptions
auto optimizationOptions = MakeObject();
// Set CompressImages option
optimizationOptions->get_ImageCompressionOptions()->set_CompressImages(true);
// Set ImageQuality option
optimizationOptions->get_ImageCompressionOptions()->set_ImageQuality(50);
// Optimize PDF document using OptimizationOptions
document->OptimizeResources(optimizationOptions);
// Save updated document
document->Save(_dataDir + outfilename);
}