在 Node.js 中 处理 PDF 文件 元数据
Contents
[
Hide
]
获取 PDF 文件信息
如果您想获取 PDF 文件信息,您可以使用 AsposePdfGetInfo 函数。 请检查以下代码片段,以在 Node.js 环境中获取 PDF 文件信息。
CommonJS:
- 调用
require并导入asposepdfnodejs模块 作为AsposePdf变量。 - 指定要提取信息的 PDF 文件的名称。
- 调用
AsposePdf作为 Promise 并执行提取信息的操作。如果成功,接收该对象。 - 调用函数 AsposePdfGetInfo.
- 提取的元数据存储在 JSON 对象中。因此,如果 ‘json.errorCode’ 为 0,则使用 console.log 显示提取的元数据。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
const AsposePdf = require('asposepdfnodejs');
const pdf_file = 'Aspose.pdf';
AsposePdf().then(AsposePdfModule => {
/*Get info (metadata) from a PDF-file*/
const json = AsposePdfModule.AsposePdfGetInfo(pdf_file);
/* JSON
Title : json.title
Creator : json.creator
Author : json.author
Subject : json.subject
Keywords : json.keywords
Creation Date : json.creation
Modify Date : json.mod
PDF format : json.format
PDF version : json.version
PDF is PDF/A : json.ispdfa
PDF is PDF/UA : json.ispdfua
PDF is linearized : json.islinearized
PDF is encrypted : json.isencrypted
PDF permission : json.permission
PDF page size : json.size
Page count : json.pagecount
Annotation count : json.annotationcount
Bookmark count : json.bookmarkcount
Attachment count : json.attachmentcount
Metadata count : json.metadatacount
JavaScript count : json.javascriptcount
Image count : json.imagecount
*/
console.log("AsposePdfGetInfo => %O", json.errorCode == 0 ? 'Title: ' + json.title : json.errorText);
});
ECMAScript/ES6:
- 导入
asposepdfnodejs模块。 - 指定要提取信息的 PDF 文件的名称。
- 初始化 AsposePdf 模块。如果成功,则接收对象。
- 调用函数 AsposePdfGetInfo.
- 提取的元数据存储在 JSON 对象中。因此,如果 ‘json.errorCode’ 为 0,则使用 console.log 显示提取的元数据。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
import AsposePdf from 'asposepdfnodejs';
const AsposePdfModule = await AsposePdf();
const pdf_file = 'Aspose.pdf';
/*Get info (metadata) from a PDF-file*/
const json = AsposePdfModule.AsposePdfGetInfo(pdf_file);
/* JSON
Title : json.title
Creator : json.creator
Author : json.author
Subject : json.subject
Keywords : json.keywords
Creation Date : json.creation
Modify Date : json.mod
PDF format : json.format
PDF version : json.version
PDF is PDF/A : json.ispdfa
PDF is PDF/UA : json.ispdfua
PDF is linearized : json.islinearized
PDF is encrypted : json.isencrypted
PDF permission : json.permission
PDF page size : json.size
Page count : json.pagecount
Annotation count : json.annotationcount
Bookmark count : json.bookmarkcount
Attachment count : json.attachmentcount
Metadata count : json.metadatacount
JavaScript count : json.javascriptcount
Image count : json.imagecount
*/
console.log("AsposePdfGetInfo => %O", json.errorCode == 0 ? 'Title: ' + json.title : json.errorText);
获取所有字体
从 PDF 文件中获取字体是一种在其他文档或应用程序中重复使用字体的有用方式。
如果您想从 PDF 文件中获取字体,可以使用 AsposePdfGetAllFonts 函数。 请检查以下代码片段,以在 Node.js 环境中从 PDF 文件获取字体。
CommonJS:
- 调用
require并导入asposepdfnodejs模块 作为AsposePdf变量。 - 指定要从中提取字体的 PDF 文件名称。
- 调用
AsposePdf作为 Promise 并执行提取字体的操作。成功时接收对象。 - 调用函数 AsposePdfGetAllFonts.
- 提取的字体存储在 JSON 对象中。因此,如果 ‘json.errorCode’ 为 0,则使用 console.log 显示一个包含字体详细信息的数组,包括字体名称、是否嵌入以及其可访问性状态。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,则错误信息将包含在 ‘json.errorText’ 中。
const AsposePdf = require('asposepdfnodejs');
const pdf_file = 'Aspose.pdf';
AsposePdf().then(AsposePdfModule => {
/*Get list fonts from a PDF-file*/
const json = AsposePdfModule.AsposePdfGetAllFonts(pdf_file);
/*json.fonts - array of fonts: { fontName: <string>, isEmbedded: <boolean>, isAccessible: <boolean> }*/
console.log("AsposePdfGetAllFonts => fonts: %O", json.errorCode == 0 ? json.fonts : json.errorText);
});
ECMAScript/ES6:
- 导入
asposepdfnodejs模块。 - 指定要从中提取字体的 PDF 文件名称。
- 初始化 AsposePdf 模块。如果成功,则接收对象。
- 调用函数 AsposePdfGetAllFonts.
- 提取的字体存储在 JSON 对象中。因此,如果 ‘json.errorCode’ 为 0,则使用 console.log 显示一个包含字体详细信息的数组,包括字体名称、是否嵌入以及其可访问性状态。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,则错误信息将包含在 ‘json.errorText’ 中。
import AsposePdf from 'asposepdfnodejs';
const AsposePdfModule = await AsposePdf();
const pdf_file = 'Aspose.pdf';
/*Get list fonts from a PDF-file*/
const json = AsposePdfModule.AsposePdfGetAllFonts(pdf_file);
/*json.fonts - array of fonts: { fontName: <string>, isEmbedded: <boolean>, isAccessible: <boolean> }*/
console.log("AsposePdfGetAllFonts => fonts: %O", json.errorCode == 0 ? json.fonts : json.errorText);
设置 PDF 文件信息
Aspose.PDF for Node.js via C++ 允许您为 PDF 设置特定于文件的信息,例如作者、创建日期、主题和标题。要设置这些信息:
如果您想设置特定于文件的信息,您可以使用 AsposePdfSetInfo 函数。 请检查以下代码片段,以在 Node.js 环境中设置文件信息。
可以设置:
- 标题
- 创建者
- 作者
- 主题
- 列出关键字
- 创建日期
- 修改日期
- 结果文件名
CommonJS:
- 调用
require并导入asposepdfnodejs模块 作为AsposePdf变量。 - 指定将设置信息的 PDF 文件名。
- 调用
AsposePdf作为 Promise 并执行该操作。成功时接收对象。 - 调用函数 AsposePdfSetInfo.
- 设置 PDF 文件信息。标题、创建者、作者、主题、关键词、创建日期和修改日期等信息作为参数提供。因此,如果 ‘json.errorCode’ 为 0,则操作结果将保存在 "ResultSetInfo.pdf" 中。如果 json.errorCode 参数不为 0,且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
const AsposePdf = require('asposepdfnodejs');
const pdf_file = 'Aspose.pdf';
AsposePdf().then(AsposePdfModule => {
/*Set PDF info: title, creator, author, subject, keywords, creation (date), mod (date modify)*/
/*If not need to set value, use undefined or "" (empty string)*/
/*Set info (metadata) in a PDF-file and save the "ResultSetInfo.pdf"*/
const json = AsposePdfModule.AsposePdfSetInfo(pdf_file, "Setting PDF Document Information", "", "Aspose", undefined, "Aspose.Pdf, DOM, API", undefined, "05/05/2023 11:55 PM", "ResultSetInfo.pdf");
console.log("AsposePdfSetInfo => %O", json.errorCode == 0 ? json.fileNameResult : json.errorText);
});
ECMAScript/ES6:
- 导入
asposepdfnodejs模块。 - 指定将设置信息的 PDF 文件名。
- 初始化 AsposePdf 模块。如果成功,则接收对象。
- 调用函数 AsposePdfSetInfo.
- 设置 PDF 文件信息。标题、创建者、作者、主题、关键词、创建日期和修改日期等信息作为参数提供。因此,如果 ‘json.errorCode’ 为 0,则操作结果将保存在 "ResultSetInfo.pdf" 中。如果 json.errorCode 参数不为 0,且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
import AsposePdf from 'asposepdfnodejs';
const AsposePdfModule = await AsposePdf();
const pdf_file = 'Aspose.pdf';
/*Set PDF info: title, creator, author, subject, keywords, creation (date), mod (date modify)*/
/*If not need to set value, use undefined or "" (empty string)*/
/*Set info (metadata) in a PDF-file and save the "ResultSetInfo.pdf"*/
const json = AsposePdfModule.AsposePdfSetInfo(pdf_file, "Setting PDF Document Information", "", "Aspose", undefined, "Aspose.Pdf, DOM, API", undefined, "05/05/2023 11:55 PM", "ResultSetInfo.pdf");
console.log("AsposePdfSetInfo => %O", json.errorCode == 0 ? json.fileNameResult : json.errorText);
删除 PDF 文件信息
Aspose.PDF for Node.js via C++ 允许您删除 PDF 文件元数据:
如果您想要删除 PDF 中的元数据,您可以使用 AsposePdfRemoveMetadata 函数。 请检查以下代码片段,以在 Node.js 环境中删除 PDF 的元数据。
CommonJS:
- 需要 AsposePDFforNode.js 模块。
- 指定要从中删除信息的 PDF 文件的名称。
- 初始化 AsposePdf 模块。如果成功,则接收对象。
- 调用函数 AsposePdfRemoveMetadata.
- 删除 PDF 文件信息。因此,如果 ‘json.errorCode’ 为 0,则操作结果保存在 “ResultPdfRemoveMetadata.pdf”。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
const AsposePdf = require('asposepdfnodejs');
const pdf_file = 'Aspose.pdf';
AsposePdf().then(AsposePdfModule => {
/*Remove metadata from a PDF-file and save the "ResultPdfRemoveMetadata.pdf"*/
const json = AsposePdfModule.AsposePdfRemoveMetadata(pdf_file, "ResultPdfRemoveMetadata.pdf");
console.log("AsposePdfRemoveMetadata => %O", json.errorCode == 0 ? json.fileNameResult : json.errorText);
});
ECMAScript/ES6:
- 导入
asposepdfnodejs模块。 - 指定要从中删除信息的 PDF 文件的名称。
- 初始化 AsposePdf 模块。如果成功,则接收对象。
- 调用函数 AsposePdfRemoveMetadata.
- 删除 PDF 文件信息。因此,如果 ‘json.errorCode’ 为 0,则操作结果保存在 “ResultPdfRemoveMetadata.pdf”。如果 json.errorCode 参数不为 0,并且相应地在您的文件中出现错误,错误信息将包含在 ‘json.errorText’ 中。
import AsposePdf from 'asposepdfnodejs';
const AsposePdfModule = await AsposePdf();
const pdf_file = 'Aspose.pdf';
/*Remove metadata from a PDF-file and save the "ResultPdfRemoveMetadata.pdf"*/
const json = AsposePdfModule.AsposePdfRemoveMetadata(pdf_file, "ResultPdfRemoveMetadata.pdf");
console.log("AsposePdfRemoveMetadata => %O", json.errorCode == 0 ? json.fileNameResult : json.errorText);