1. 产品
  2.   PDF格式
  3.   C++
  4.   Aspose.PDF for C++

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 文档的最佳库之一。

Previous Next

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);
}
 中国人