这个 PDF 可以下载到内部存储吗?

这个 PDF 可以下载到内部存储吗?

有一个网站,上面有公开的信息,人们可以随时随地分享这些信息,但只能通过截屏。我想将其保存为 pdf 格式并保存在我的设备中以供将来参考。

我尝试在网上寻找方法,但没有找到任何有用的方法。

这是我想要下载的 PDF 的链接:https://www.ibps.in/pdfview.html?pdfNameaHR0cHM6Ly93d3cuaWJwcy5pbi93cC1jb250ZW50L3VwbG9hZHMvQ1JQLVBPLUlYdmdndi1OT1RJQ0UucGRm

与其将其作为屏幕截图保存到我的存储中,不如将其保存为 PDF 以供将来使用,这样对用户更加方便。

注意:如果您通过智能手机访问链接或尝试使用 Google Chrome 打开它,则需要很长时间才能加载。我不得不使用 Safari 打开链接,它立即打开了。

修改 1:有些人在网站上找不到此链接。要了解如何访问此链接,请观看此视频,我录制了一个小视频。请使用此链接: https://youtu.be/cpAWQIPOIOg

超级用户请注意:我很惊讶地发现,尽管这是一个真正的问题,但它却没有得到应有的关注。人们没有尝试就认为链接已过期或网站已死,但事实并非如此。我接受的答案显示了问题的深度。有时非常好的问题最终得不到任何赞成票,这很可悲。完全没想到超级用户的回复会这样。

答案1

是这个吗?

该网站的网址可以分解为https://www.ibps.in/pdfview.html?pdfName(base64 encoded URL of the PDF)

解码最后一部分(使用任何众多在线 base64 解码器之一),然后您就会获得链接。

我无法验证它是否正确,因为页面本身的 pdf 无法加载(Chrome 拒绝加载 MIME 类型为“application/octet-stream”而不是“text/javascript”的 js 脚本)


编辑以扩展我如何发现该链接:

我使用 Chrome 的检查功能打开了网站源代码,然后开始阅读试图显示 pdf 的 JavaScript。源代码末尾有部分内容:

  /**
   * Asynchronously downloads PDF.
   */
  PDFJS.getDocument(url).then(function (pdfDoc_)

url 参数看起来很有希望,所以我查看了它的定义位置:

var url = Base64.decode(getParameterByName('pdfName'));  

函数 getParameterByName:

    function getParameterByName(name) { 
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }

此函数接受您指定的参数名称,转义所有方括号(在任何 [ 和 ] 字符前添加 \),并将其添加到正则表达式中,该正则表达式查找类似于(在此示例中)的字符串?pdfName=(any string not containing & or #)。您可以看到正则表达式的工作原理这里

pdfview.html然后,函数抓取(使用)之后的网站 URL 部分location.search,并将它之前创建的正则表达式应用于它,如果匹配,则返回 = 字符之后的部分。

这就是一切都有点崩溃的地方,因为提供的 URL 不包含任何 = 字符,并且函数返回一个空字符串,但这就是人类模式匹配能力比计算机更好的地方——很容易看出 URL 包含部分?pdfName,所以其余部分可能是我们正在寻找的参数。剩下的就是将字符串放入aHR0cHM6Ly93d3cuaWJwcy5pbi93cC1jb250ZW50L3VwbG9hZHMvQ1JQLVBPLUlYdmdndi1OT1RJQ0UucGRmBase64 解码器中,我很高兴地看到 PDF 文件的有效 URL。我还怀疑,尽管名称如此,但脚本中使用的 Base64 解码器并不是完全标准的,所以我从页面源代码(var Base64={...)中复制了它的定义,将其粘贴到 Chrome DevTools 的控制台中并运行

Base64.decode('aHR0cHM6Ly93d3cuaWJwcy5pbi93cC1jb250ZW50L3VwbG9hZHMvQ1JQLVBPLUlYdmdndi1OT1RJQ0UucGRm')

以验证我得到了相同的答案。


抱歉,如果这个太高级了,但是一旦你发现如何获取一个链接,使用相同的方法获取其他链接就很简单了:只需将部分地址复制?pdfNamebase64 解码器并点击解码以获取 PDF 链接。

答案2

PDF 的直接链接可以在网站源代码中看到:

http://221.135.110.204/website/career_pdf/CWEPO3_Reserve.pdf

这是您要找的文件吗?

答案3

一般来说,在 MacOS 上,你可以使用 PDF 打印机打印网页(默认)。在 Windows 上,如果你有 PDF 打印机,你也可以打印为 PDF。

如果您想将网页存储为 PDF 文件,只需将其打印为 PDF 即可。

然后您可以使用 PDF 操作工具合并页面。

相关内容