OneNote 是一个数字笔记本,允许收集、组织和协作笔记、绘图、屏幕剪辑和音频评论。在某些情况下,我们可能需要将 OneNote 文档的内容导出为 PDF 文档。它允许与没有 OneNote 的人共享讲义。 PDF 是最流行的格式,用于共享和打印文档而不会丢失格式。在本文中,我们将学习如何使用 Java 将 OneNote 文档转换为 PDF。
本文将涵盖以下主题:
- OneNote to PDF Converter Java API
- 将现有 OneNote 文档转换为 PDF
- 创建 OneNote 文档并将其转换为 PDF
- 将 OneNote 页面范围转换为 PDF
- 使用图像压缩将 OneNote 转换为 PDF
OneNote 到 PDF 转换器 Java API
为了将 OneNote 文档转换为 PDF,我们将使用 Aspose.Note for Java API。它允许在不使用 Microsoft OneNote 的情况下以编程方式创建、阅读和转换 OneNote 文档。
API 的 Document 类表示 Onenote 文档。它提供了各种方法和属性来处理 OneNote 文档。该类的 save() 方法允许将 OneNote 文档以指定的格式保存在该磁盘上。 Page 类代表 OneNote 文档中的一个页面。 API 的 PdfSaveOptions 类提供了用于创建 PDF 的选项,例如 PageIndex、PageCount 等。
请下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-note</artifactId>
<version>22.3</version>
<classifier>jdk17</classifier>
</dependency>
将现有 OneNote 文档转换为 PDF
我们可以按照以下步骤将现有的 OneNote 文档转换为 PDF:
- 使用 Document 类加载 OneNote 文件。
- 调用 Save() 方法将 OneNote 文档保存为 PDF。它将输出 PDF 文件路径和保存格式作为参数。
以下代码示例展示了如何使用 Java 将现有 OneNote 文档转换为 PDF。
// 此代码示例演示如何将现有 OneNote 转换为 PDF。
// 加载现有的 OneNote 文档。
Document oneFile = new Document("C:\\Files\\Sample1.one");
// 将 OneNote 保存为 PDF
oneFile.save("C:\\Files\\Sample1_out.pdf", SaveFormat.Pdf);
创建 OneNote 文档并转换为 PDF
我们可以按照以下步骤创建 OneNote 文档并以编程方式将其转换为 PDF:
- 首先,创建 Document 类的实例。
- 接下来,使用 Page 类对象创建一个新页面。
- 然后,使用 AppendChildLast() 方法将新创建的页面添加到文档中。
- 之后,添加页面标题等内容。
- 最后,调用 Save() 方法将 OneNote 文档保存为 PDF。它将输出 PDF 文件路径作为参数。
以下代码示例展示了如何创建 OneNote 文档并使用 Java 将其转换为 PDF。
// 此代码示例演示如何创建新的 OneNote 文档并转换为 PDF。
// 初始化 OneNote 文档
Document doc = new Document();
// 添加新页面
Page page = new Page();
// 文档中所有文本的默认样式。
ParagraphStyle textStyle = new ParagraphStyle();
textStyle.setFontColor(Color.BLACK);
textStyle.setFontName("Arial");
textStyle.setFontSize(10);
// 设置页面标题属性
Title title = new Title();
RichText titleText = new RichText();
titleText.setText("Title text.");
titleText.setParagraphStyle(textStyle);
title.setTitleText(titleText);
RichText titleDate = new RichText();
Calendar cal = Calendar.getInstance();
cal.set(2018, 04, 03);
titleDate.setText(cal.getTime().toString());
titleDate.setParagraphStyle(textStyle);
title.setTitleDate(titleDate);
RichText titleTime = new RichText();
titleTime.setText("12:34");
titleTime.setParagraphStyle(textStyle);
title.setTitleText(titleTime);
page.setTitle(title);
// 在文档中追加页面节点
doc.appendChildLast(page);
// 保存为 PDF 格式
doc.save("C:\\Files\\CreateOneNoteDocAndSaveAsPDF.pdf");
将 OneNote 页面范围转换为 PDF
我们可以按照以下步骤将一系列页面从 OneNote 文档转换为 PDF:
- 首先,使用 Document 类加载 OneNote 文件。
- 接下来,定义 PdfSaveOptions 类对象。
- 然后,设置从哪里开始转换的 PageIndex。
- 之后,设置 PageCount 以转换总页数。
- 最后,调用 Save() 方法将 OneNote 文档保存为 PDF。它将输出 PDF 文件路径和 PdfSaveOptions 作为参数。
以下代码示例展示了如何使用 Java 将一系列页面从 OneNote 文档转换为 PDF。
// 此代码示例演示如何将 OneNote 的一系列页面转换为 PDF。
// 加载文档
Document oneFile = new Document("C:\\Files\\Sample1.one");
// 初始化 PdfSaveOptions 对象
PdfSaveOptions options = new PdfSaveOptions();
// 设置页面索引:0 表示从第一页开始保存。
options.setPageIndex(0);
// 设置页数:1 表示只保存一页。
options.setPageCount(1);
// 将 OneNote 保存为 PDF
oneFile.save("C:\\Files\\ConvertRange_out.pdf", options);
使用图像压缩将 OneNote 转换为 PDF
我们可以按照以下步骤在将 OneNote 文档的图像转换为 PDF 文档时对其进行压缩:
- 首先,使用 Document 类加载 OneNote 文件。
- 接下来,定义 PdfSaveOptions 类对象。
- 然后,将 ImageCompression 类型设置为 JPEG。
- 之后,使用 JpegQuality 设置 JPEG 压缩的质量。
- 最后,调用 Save() 方法将 OneNote 文档保存为 PDF。它将输出 PDF 文件路径和 PdfSaveOptions 作为参数。
以下代码示例展示了如何将 OneNote 文档转换为 PDF 并使用 Java 应用图像压缩。
// 此代码示例演示如何使用图像压缩将 OneNote 转换为 PDF。
// 加载文档
Document oneFile = new Document("C:\\Files\\Sample1.one");
// 初始化 PdfSaveOptions 对象
PdfSaveOptions options = new PdfSaveOptions();
// 使用 Jpeg 压缩
options.setImageCompression(PdfImageCompression.Jpeg);
// JPEG 压缩质量
options.setJpegQuality(90);
// 将 OneNote 保存为 PDF
oneFile.save("C:\\Files\\ConvertWithImageCompression.pdf", options);
获得免费许可证
您可以获得免费的临时许可证 试用该库而不受评估限制。
结论
在本文中,我们学习了如何:
- 使用 Java 创建一个新的 OneNote 文档;
- 以编程方式将 OneNote 文档保存为 PDF;
- 将笔记从 OneNote 文档导出为 PDF 并压缩图像。
此外,您可以使用 documentation 了解有关 Aspose.Note for Java API 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。