让我们探索 PDF 文档中与轮换相关的场景。在某些情况下,您可能需要修复倒置扫描的 PDF 文档。您可以通过旋转文档页面来修复此类文档。您可能还想通过旋转将文本或图像水印添加到 PDF 文档中。为此,本文将教您如何使用 C++ 以编程方式旋转 PDF 页面、文本和图像。
用于旋转 PDF 页面、文本和图像的 C++ API
Aspose.PDF for C++ 是一个 C++ 库,允许您创建、阅读和更新 PDF 文档。除此之外,API 还支持旋转 PDF 页面、文本和图像。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.PDF.Cpp
使用 C++ 旋转 PDF 页面
使用 Aspose.PDF for C++ 旋转页面轻而易举。只需几行代码,您就可以旋转 PDF 文档的所有页面。以下是使用 C++ 旋转 PDF 页面的步骤。
- 使用 Document 类加载源 PDF 文档。
- 循环浏览文档的页面。如果您只想旋转选定的页面,您可以在此循环中定义该逻辑。
- 使用 Page->setRotate(Rotation value) 方法旋转每一页。
- 使用 Document->Save(System::String outputFileName, SaveFormat format) 方法保存输出的 PDF 文件。
以下示例代码展示了如何使用 C++ 旋转 PDF 页面。
// 打开源 PDF 文档
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// 循环浏览页面
for (System::SharedPtr<Page> page : pdfDocument->get_Pages())
{
// 旋转页面
page->set_Rotate(Aspose::Pdf::Rotation::on180);
}
// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Rotated_out.pdf", SaveFormat::Pdf);
使用 C++ 在 PDF 页面上旋转文本
在向 PDF 文档添加文本时,您可以更改许多文本属性,包括其角度。在以下示例中,我们将向 PDF 页面添加文本并将其旋转 45 度角。以下是实现这一目标的步骤。
- 创建一个 Document 类的实例来表示一个新的 PDF 文档。
- 将新页面添加到 PDF 文档。
- 使用要添加的文本创建 TextFragment 类的实例。
- 设置文本的位置、角度和其他属性。
- 使用 TextBuilder->AppendText(System::SharedPtr) 将文本添加到 PDF 页面textFragment) 方法。
- 使用 Document->Save(System::String outputFileName, SaveFormat format) 方法保存输出 PDF 文件。
以下示例代码演示了如何使用 C++ 旋转 PDF 页面上的文本。
// 创建 Document 类的实例
auto pdfDocument = MakeObject<Document>();
// 添加新页面
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
// 创建 TextFragment 对象
System::SharedPtr<TextFragment> textFragment = MakeObject<TextFragment>(u"Rotated Text");
// 设置文本的位置
textFragment->set_Position(MakeObject<Position>(200, 600));
// 设置文本属性
textFragment->get_TextState()->set_FontSize(12);
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_BackgroundColor(Aspose::Pdf::Color::get_LightGray());
textFragment->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textFragment->get_TextState()->set_Rotation(45);
textFragment->get_TextState()->set_Underline(true);
// 创建 TextBuilder 对象
System::SharedPtr<TextBuilder> textBuilder = MakeObject<TextBuilder>(page);
// 将 texc 添加到页面
textBuilder->AppendText(textFragment);
// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Rotated_text_out.pdf", SaveFormat::Pdf);
使用 C++ 在 PDF 页面上旋转图像
在向 PDF 文档添加图像时,您可以设置许多属性,例如高度、宽度、不透明度、旋转等。在此示例中,我们将向 PDF 页面添加图像并将其旋转 90 度角。以下是在 PDF 页面上旋转图像的步骤。
- 使用 Document 类加载源 PDF 文档。
- 使用要添加的图像创建 ImageStamp 类的实例。
- 设置图像的旋转和其他属性。
- 使用 Document->getPages()->idxget(1)->AddStamp(System::SharedPtr) 将图像添加到 PDF 页面邮票) 方法。
- 使用 Document->Save(System::String outputFileName, SaveFormat format) 方法保存输出 PDF 文件。
以下示例代码展示了如何使用 C++ 旋转 PDF 页面上的图像。
// 打开源 PDF 文档
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// 创建 ImageStamp 对象
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");
// 设置 ImageStamp 属性
imageStamp->set_XIndent(250);
imageStamp->set_YIndent(350);
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_Rotate(Rotation::on90);
imageStamp->set_Opacity(0.5);
// 将 ImageStamp 添加到页面
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);
// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\Rotated_image_out.pdf", SaveFormat::Pdf);
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 旋转 PDF 文档中的页面、文本和图像。 Aspose.PDF for C++ 是一个庞大的 API,它提供了许多用于处理 PDF 文件的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。