链接有两种,多数工具只看得见一种
PDF 里的超链接是一个链接注释:页面上的一个矩形,附带一个动作。所有“提取链接”的工具读的都是它。但文档里还有一些网址和邮箱地址,只是被打进正文,从未变成注释——脚注里引用的 https://example.org/docs、签名块里的联系邮箱。对读者来说它们是链接;对只读 /Annots 的程序来说它们根本不存在。这个工具两种都报告,并且标明哪个是哪个。
它会报告什么
- 外部链接:
http与https目标。 - 内部链接:文档内部跳转。无论是显式目标数组还是名称树里的命名目标,都会解析成真实的页码。
- mailto 与 tel:去掉协议前缀显示,便于阅读地址或号码。
- 文件链接:打开文档之外内容的目标。
- JavaScript 动作:点击即执行代码的
javascript:URI。 - 未加链接的网址与邮箱:从正文中找出,单独标记;若已落在某个链接注释内则跳过。
每条记录都带页码、锚文本(由注释矩形内页面自身的词语还原,因为链接注释本身不存文字)以及目标。
风险标记
javascript:点击会在阅读器中执行代码。mismatch:可见文字本身是指向某主机的网址,而实际的链接目标指向另一个主机。这是经典的钓鱼形态,而 PDF 阅读器只显示文字。点击之前值得看一眼。no-target:既无 URL 也无可解析目标的链接注释,在任何阅读器里都是死链。relative:没有协议的目标,会按照文件被打开的位置去解析。
不抓取任何地址
文档中的任何 URL 都不会被请求。这一点很重要:可疑的 PDF 可以在这里检查,既不碰对面的服务器,也不会泄露你打开过它。文件完全在你的浏览器里解析,什么都不上传。
导出
CSV —— 每条链接一行,含页码、类型、锚文本、目标、解析出的目标页与标记 —— 或者 JSON,包含同样的数据以及外接矩形,方便你在此基础上继续开发。
Tiny Online Tools







