5个方法读写PDF元数据:用LibPDF快速设置标题、作者与关键词
【免费下载链接】coreA modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.项目地址https://gitcode.com/gh_mirrors/core587/core点击查看免费下载LibPDFnpm 包名libpdf/core是一款面向 TypeScript 的现代 PDF 库把读写 PDF 元数据这件小事做到了极致简单几行代码就能设置 PDF 标题、作者、关键词、主题还能让标题直接显示在阅读器窗口标题栏里。无论你是在生成报表、管理文档库还是批量处理 PDF 属性这篇指南都将带你从零上手5 个实用方法几分钟即可跑通。30秒安装并导入 LibPDF 先在项目中安装npm install libpdf/coreLibPDF 同时支持 Node.js 20、Bun 和现代浏览器。安装后即可导入核心类PDF所有元数据方法都挂载在它上面。 元数据的实现位于 src/api/pdf.ts完整字段定义见DocumentMetadata接口src/api/pdf.ts。方法一用 getMetadata() 一次性读取全部元数据拿到一个已有 PDF最快的方式是用批量 getter 把 10 个元数据字段一次取回import { PDF } from libpdf/core; const pdf await PDF.load(fileBytes); // 一次性读取全部元数据 const meta pdf.getMetadata(); console.log(meta.title); // 标题 console.log(meta.author); // 作者 console.log(meta.keywords); // 关键词数组返回的是一个DocumentMetadata对象未设置的字段为undefined因此可以安全地用?? (未设置)做空值兜底。 完整示例examples/06-metadata/read-metadata.ts方法二用 setMetadata() 批量写入多个字段反过来写入也可以一次完成——把多个字段打包成一个对象传入pdf.setMetadata({ title: 2024 年度财务报告, author: Jane Smith, subject: 公司财务概览, keywords: [财务, 年报, 2024], creationDate: new Date(), }); const bytes await pdf.save();setMetadata()还支持局部更新只传需要修改的字段即可其余字段保持原值不变非常适合只改标题、不动其他属性的场景。 完整示例examples/06-metadata/bulk-metadata.ts方法三用 setTitle() 设置标题并显示在窗口标题栏设置标题只需一行pdf.setTitle(Quarterly Financial Report Q4 2024);但有一个很多人不知道的进阶技巧默认情况下阅读器窗口标题栏显示的是文件名。加上showInWindowTitleBar选项后标题栏会直接显示你的文档标题对应 PDF 规范的DisplayDocTitle属性pdf.setTitle(Quarterly Financial Report Q4 2024, { showInWindowTitleBar: true, });在 Adobe Acrobat、macOS 预览等主流阅读器中用户打开文档时第一眼看到的就是正式标题而不是report-final-v3.pdf这类文件名体验立刻专业起来。 完整示例examples/06-metadata/display-title-in-viewer.ts方法四用 setAuthor() 和 setSubject() 设置作者与主题作者和主题是两个最常用的身份信息字段各有独立的读写方法pdf.setAuthor(Jane Smith); pdf.setSubject(公司 2024 财年财务概览与业绩分析); // 读取 console.log(pdf.getAuthor()); // Jane Smith console.log(pdf.getSubject()); // 公司 2024 财年财务概览与业绩分析作者通常写人名或团队名如研发部文档组主题则是对文档内容的一句话描述。这两个字段会显示在大多数阅读器的文档属性面板中是文档检索的重要线索。 完整示例examples/06-metadata/set-metadata.ts方法五用 setKeywords() 管理关键词LibPDF 把关键词 API 设计成了数组形式读起来更自然// 写入一组关键词 pdf.setKeywords([PDF, TypeScript, 文档管理, 自动化]); // 读回 const words pdf.getKeywords(); // [PDF, TypeScript, 文档管理, 自动化]需要增删关键词时读出来改一改再写回去即可const current pdf.getKeywords() ?? []; pdf.setKeywords([...current, 归档]);⚙️ 技术细节PDF 规范中关键词实际存储为单个空格分隔的字符串LibPDF 会在内部自动完成字符串与数组的双向转换你不需要手动拼接。 完整示例examples/06-metadata/keywords.ts加餐日期、语言与其他元数据字段除了标题、作者、关键词setMetadata()还支持以下常用字段一张表看懂字段方法说明创建日期setCreationDate(new Date())文档创建时间支持时区修改日期setModificationDate(new Date())最后修改时间文档语言setLanguage(zh-CN)RFC 3066 语言标签提升无障碍与语音朗读体验生成器setProducer(MyApp v2)生成 PDF 的工具/库名称创建者setCreator(Report Generator)创建内容的应用名称陷印状态setTrapped(False)印刷术语取值为True/False/Unknown其中文档语言容易被忽略却很有价值屏幕阅读器和语音合成工具会依据它选择正确的发音en-US、de-DE、ja、zh-CN等都是常见写法。 相关示例examples/06-metadata/document-dates.ts、examples/06-metadata/document-language.ts快速上手清单 ✅只读不改→getMetadata()一把梭getMetadata() 源码批量写入→setMetadata({ ... })一次传完setMetadata() 源码要好看→setTitle(title, { showInWindowTitleBar: true })setTitle() 源码要署名→setAuthor()setSubject()补齐身份要可搜→setKeywords([...])让文档可被检索所有元数据在pdf.save()后都会持久化重新加载文档也不会丢失。总结用 LibPDF 读写 PDF 元数据核心就记 5 个方法getMetadata()全量读取、setMetadata()批量写入、setTitle()设置标题支持显示在窗口标题栏、setAuthor()/setSubject()补齐作者与主题、setKeywords()管理关键词。配合 API 文档 和 examples/06-metadata/ 目录下的 8 个官方示例你已可以处理绝大多数文档属性场景。赞分享【免费下载链接】coreA modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.项目地址https://gitcode.com/gh_mirrors/core587/core点击查看免费下载相关推荐PDF元数据设置使用wkhtmltopdf添加标题、作者与关键词PDF元数据设置使用wkhtmltopdf添加标题、作者与关键词 你是否曾遇到生成的PDF文件缺乏基本信息如标题、作者导致文档管理混乱的问题本文将详细介CLIStirling-PDF元数据编辑教程修改PDF作者/标题/关键词技巧Stirling PDF元数据编辑教程修改PDF作者/标题/关键词技巧 你还在为PDF文件的作者信息错误、标题不规范或关键词缺失而烦恼吗本文将详细介绍如何使后端前端桌面应用GoFakeS3完全指南如何快速搭建本地AWS S3测试环境GoFakeS3完全指南如何快速搭建本地AWS S3测试环境 GoFakeS3是一个简单的AWS S3对象存储模拟工具专为本地测试AWS S3 API而设计创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

DB2异机恢复实战:NBU备份配置与日志前滚避坑指南

DB2异机恢复实战:NBU备份配置与日志前滚避坑指南

简介:文档围绕DB2异机恢复场景展开,面向需要借助NetBackup实现数据库迁移与灾难恢复的DBA及运维工程师,重点解决备份后在异机重建DB2数据库的配置与实操问题。资源为doc格式,仅1个文件,压缩包314KB,内容精炼…

2026/10/11 20:03:53 阅读更多 →
SAP Data Services 连接 MySQL 的配置与跑批避坑指南

SAP Data Services 连接 MySQL 的配置与跑批避坑指南

简介:面向 SAP Data Services 初学者的 MySQL 连接操作指南,重点解决如何通过 ODBC 配置跨数据库数据源的问题。资源是一个单独的 Word 文档,压缩后体积约 1.43MB,适合数据集成工程师、BI 开发人员在搭建 ETL 流程或数据仓库项目时…

2026/10/11 20:03:53 阅读更多 →
MFA令牌原理详解:TOTP算法、硬件与软件令牌及部署实践

MFA令牌原理详解:TOTP算法、硬件与软件令牌及部署实践

MFA令牌(多因素认证令牌)这几年在各类平台、企业内部系统里出现的频率越来越高。很多人手机上装了一堆认证器App,或者办公桌上放着一个会每隔几十秒跳动数字的小设备,但真要问一句这玩意儿到底怎么起作用的、为什么能保证安全&…

2026/10/11 20:02:53 阅读更多 →

最新新闻

Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

文档教程Vibe Coding示例工程 【免费下载链接】vibe-vibe The First Systematic Vibe Coding Open-Source Tutorial | From Zero to Full-Stack, Empowering Everyone to Build Products with AI | Live at: www.vibevibe.cn ;首个系统化 Vibe Coding 开源教程 | 零…

2026/10/12 0:53:26 阅读更多 →
不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的"非模拟器魔法":relinker重链接PRX库RDNA到SPIR-V 【免费下载链接】AnyPS5 Tool for automatic PS5 executables porting to Linux and Windows 项目地址: https://gitcode.com/GitHub_Trending/an/Any…

2026/10/12 0:53:26 阅读更多 →
基于A星算法的无人机三维路径规划Matlab实现与优化

基于A星算法的无人机三维路径规划Matlab实现与优化

做无人机的人基本都绕不开路径规划这道坎。“基于A星算法的无人机三维路径规划算法研究(Matlab代码实现)” 这个题目看着规整,但真正落地的时候,坑比想象的多:地图怎么建、邻居节点怎么扩展、启发函数怎么写才能既快又…

2026/10/12 0:51:25 阅读更多 →
VS Code 中直接使用 Codex 教程及连接失败解决方案:TaoToken 统一 Key 接入与排错实录

VS Code 中直接使用 Codex 教程及连接失败解决方案:TaoToken 统一 Key 接入与排错实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:50:24 阅读更多 →
企业 Agent 提示词注入防御实战:双重护栏与对抗语义检测

企业 Agent 提示词注入防御实战:双重护栏与对抗语义检测

在企业将多智能体(Multi-Agent)系统接入客服咨询、内部知识检索或自动化办公流后,安全攻防的对抗维度发生了一场根本性范式转移:传统的 SQL 注入或跨站脚本攻击(XSS)正在退居二线,而以自然语言为…

2026/10/12 0:47:23 阅读更多 →
Cursor怎么使用:3分钟上手Cursor键盘快捷键速查,用TaoToken统一Key接入GPT4与Claude 3.5辅助编程

Cursor怎么使用:3分钟上手Cursor键盘快捷键速查,用TaoToken统一Key接入GPT4与Claude 3.5辅助编程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:46:23 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →