将PDF文件转换为其他格式
将PDF转换为EPUB
EPUB(电子出版物的缩写)是国际数字出版论坛(IDPF)制定的免费开放电子书标准。文件扩展名为.epub。 EPUB旨在用于可重排内容,这意味着EPUB阅读器可以针对特定的显示设备优化文本。 EPUB 也支持固定布局内容。该格式旨在作为一种单一格式,供出版商和转换公司在内部使用,以及用于分发和销售。它取代了 Open eBook 标准。
Aspose.PDF for C++ 也支持将 PDF 文档转换为 EPUB 格式的功能。Aspose.PDF for C++ 有一个名为 EpubSaveOptions 的类,可以作为 Document.Save(..)
方法的第二个参数来生成 EPUB 文件。
请尝试使用以下代码片段通过 C++ 完成此要求。
void ConvertPDFtoEPUB()
{
std::clog << __func__ << ": Start" << std::endl;
// 用于路径名的字符串
String _dataDir("C:\\Samples\\Conversion\\");
// 输入文件名的字符串
String infilename("sample.pdf");
// 输出文件名的字符串
String outfilename("PDFToEPUB_out.epub");
// 打开文档
auto document = MakeObject<Document>(_dataDir + infilename);
// 将 PDF 文件保存为 EPUB 格式
document->Save(_dataDir + outfilename, SaveFormat::Epub);
std::clog << __func__ << ": Finish" << std::endl;
}
将 PDF 转换为 LaTeX/TeX
Aspose.PDF for C++ 支持将 PDF 转换为 LaTeX/TeX。LaTeX 文件格式是一种具有特殊标记的文本文件格式,用于基于 TeX 的文档准备系统中的高质量排版。
为了将 PDF 文件转换为 TeX,Aspose.PDF 提供了类 LaTeXSaveOptions,它提供了属性 OutDirectoryPath 用于在转换过程中保存临时图像。
以下代码片段展示了使用 C++ 将 PDF 文件转换为 TEX 格式的过程。
void ConvertPDFtoLaTeX()
{
std::clog << __func__ << ": Start" << std::endl;
// 路径名的字符串
String _dataDir("C:\\Samples\\Conversion\\");
// 输入文件名的字符串
String infilename("sample.pdf");
// 输出文件名的字符串
String outfilename("PDFToTeX_out.tex");
// 打开文档
auto document = MakeObject<Document>(_dataDir + infilename);
// 实例化 LaTex 保存选项
auto saveOptions = MakeObject<LaTeXSaveOptions>();
// 设置保存选项对象的输出目录路径
saveOptions->set_OutDirectoryPath(_dataDir);
// 将 PDF 文件保存为 LaTex 格式
document->Save(_dataDir + outfilename, saveOptions);
std::clog << __func__ << ": Finish" << std::endl;
}
将 PDF 转换为文本
Aspose.PDF for C++ 支持将整个 PDF 文档和单页转换为文本文件。
将整个 PDF 文档转换为文本文件
您可以使用 TextAbsorber 类将 PDF 文档转换为 TXT 文件。
以下代码片段说明了如何从所有页面提取文本。
void ConvertPDFDocToTXT()
{
std::clog << __func__ << ": Start" << std::endl;
// 路径名称的字符串
String _dataDir("C:\\Samples\\Conversion\\");
// 输入文件名的字符串
String infilename("sample.pdf");
// 输出文件名的字符串
String outfilename("input_Text_Extracted_out.txt");
// 打开文档
auto document = MakeObject<Document>(_dataDir + infilename);
auto ta = MakeObject<TextAbsorber>();
ta->Visit(document);
// 将提取的文本保存在文本文件中
System::IO::File::WriteAllText(_dataDir + outfilename, ta->get_Text());
std::clog << __func__ << ": Finish" << std::endl;
}
将PDF页面转换为文本文件
您可以使用Aspose.PDF for C++将PDF文档转换为TXT文件。您应该使用TextAbsorber类来解决此任务。
以下代码片段解释了如何从特定页面提取文本。
void ConvertPDFPagestoTXT()
{
std::clog << __func__ << ": Start" << std::endl;
// 路径名称的字符串
String _dataDir("C:\\Samples\\Conversion\\");
// 输入文件名的字符串
String infilename("sample-4pages.pdf");
// 输出文件名的字符串
String outfilename("sample-4pages_out.txt");
// 打开文档
auto document = MakeObject<Document>(_dataDir + infilename);
auto ta = MakeObject<TextAbsorber>();
auto pages = { 1, 3, 4 };
try {
for (auto page : pages)
{
ta->Visit(document->get_Pages()->idx_get(page));
}
// 将提取的文本保存在文本文件中
auto text = ta->get_Text();
System::IO::File::WriteAllText(_dataDir + outfilename, text);
}
catch (Exception ex) {
std::cerr << ex->get_Message() << std::endl;
}
std::clog << __func__ << ": Finish" << std::endl;
}
将 PDF 转换为 XPS
Aspose.PDF for C++ 提供将 PDF 文件转换为 XPS 格式的可能性。让我们尝试使用提供的代码片段将 PDF 文件转换为 C++ 中的 XPS 格式。
XPS 文件类型主要与 Microsoft Corporation 的 XML Paper Specification 相关联。XML Paper Specification (XPS),以前代号为 Metro,并包含下一代打印路径 (NGPP) 营销概念,是微软将文档创建和查看集成到 Windows 操作系统中的举措。
要将 PDF 文件转换为 XPS,Aspose.PDF 提供了类 XpsSaveOptions,它用作 Document.Save(..) 方法的第二个参数,以生成 XPS 文件。
将 PDF 文件转换为 XPS 格式的过程如下代码片段所示。
void ConvertPDFtoXPS()
{
std::clog << __func__ << ": Start" << std::endl;
// 路径名称的字符串
String _dataDir("C:\\Samples\\Conversion\\");
// 输入文件名称的字符串
String infilename("sample.pdf");
// 输出文件名称的字符串
String outfilename("PDFToXPS_out.xps");
// 打开文档
auto document = MakeObject<Document>(_dataDir + infilename);
// 实例化 LaTex 保存选项
auto saveOptions = MakeObject<XpsSaveOptions>();
// 将 PDF 文件保存为 XPS 格式
document->Save(_dataDir + outfilename, saveOptions);
std::clog << __func__ << ": Finish" << std::endl;
}