• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yuyue001
V2EX  ›  程序员

像这种网站前端是怎么实现的?看起来是 PDF,不能保存,也不能打印。

  •  
  •   yuyue001 · Apr 26, 2023 · 5570 views
    This topic created in 1294 days ago, the information mentioned may be changed or developed.

    通过 国家标准全文公开系统 查看文件,每次都要输入验证码。

    比如这个文件 标准号:GB/T 32960.2-2016。 我想保存到本地。

    这么实现不利于标准的传播啊。

    23 replies  •  2024-05-16 14:47:55 +08:00
    aqqwiyth
    aqqwiyth
    Apr 26, 2023
    1
    看看网络请求就知道 雪碧图 前端再拼接成可读的
    yuyue001
    yuyue001
    OP
    Apr 26, 2023
    2
    @aqqwiyth 但是为什么不能打印保存成 PDF 格式?
    WindProtect
    WindProtect
    Apr 26, 2023
    3
    看了下,是用 png 做背景图然后拼的。
    leedarmau
    leedarmau
    Apr 26, 2023
    4
    /* Rules for browsers that support PDF.js printing */
    body[data-pdfjsprinting] #outerContainer {
    display: none;
    }
    body[data-pdfjsprinting] #printContainer {
    display: block;
    }
    #printContainer {
    height: 100%;
    }
    ewiglicht
    ewiglicht
    Apr 26, 2023
    5
    看起来像是用 PDFJS 加密的,
    网络请求只能看到加密后的图片,想解密还是得分析 JS 或者看 PDFJS 文档吧
    http://c.gb688.cn/bzgk/gb/viewGbImg?fileName=Rxv5H%2B7w%2F9pStytcWHOjELhgi15P7t2pOM5E5s8n%2FNg%3D
    http://c.gb688.cn/bzgk/gb/viewGbImg?fileName=Rxv5H%2B7w%2F9pStytcWHOjEEpRZ6l4XqRKWt%2FN4ILnKeM%3D
    leedarmau
    leedarmau
    Apr 26, 2023
    6
    感觉是他们禁用了打印时的样式,另外提供一套打印时的样式。但是不知什么原因没有显示,所以空白了。
    cuicuiv5
    cuicuiv5
    Apr 26, 2023
    7
    @aqqwiyth 这是为了加密吗?
    charlieethan
    charlieethan
    Apr 26, 2023
    8
    用 singlefile 插件照样保存为 HTML ,但保存后的文件非常大,例如 OP 贴出来的这个 GB/T 32960.2-2016 ,保存后文件高达 483M
    yuyue001
    yuyue001
    OP
    Apr 26, 2023
    9
    @WindProtect @leedarmau @ewiglicht @cuicuiv5

    感觉没必要啊。
    国家标准,不就应该尽可能公开,尽可能方便大家阅读吗?
    chnwillliu
    chnwillliu
    Apr 26, 2023
    10
    @media print {
    html, body {
    display: none;
    }
    }
    yuyue001
    yuyue001
    OP
    Apr 26, 2023❤️1
    12
    @ck65 谢谢
    googlefans
    googlefans
    Apr 26, 2023
    13
    这些都不是都可以公开下载的吗
    lj2016
    lj2016
    Apr 26, 2023
    14
    大部分标准都是收费的,国外的标准更是贵的要死。
    要么去正规出版社买纸质版,要么去学兔兔之类的网站下载电子版
    ASmartPig
    ASmartPig
    Apr 26, 2023
    16
    可以另存为 mhtml 的单文件在本地打开
    yhxx
    yhxx
    Apr 26, 2023
    17
    有没有可能他搞的这么大只是因为做这个的人在网上只找到了这个 PDF 插件来实现,并没有想那么多
    vace
    vace
    Apr 26, 2023❤️4
    18
    1. 你为什么保存不了 PDF:
    因为这个页面设置了好几处 print style ,比如 `@media print html, body {display: none;}`,也就是打印时关闭所有输出,Chrome 的话你打开 Rendering ,设置 Emulate Css media type = print ,就能预览到打印样式,随手改改,就能打印了(注意还要勾选浏览器的打印选项:包含背景图片)

    2. 他们怎么做的:
    其实也挺简单,每一页划分成 m 乘 n 的固定块,然后再把这些块打乱输出一张图片,显示时用 html 的 background-position 对每一块进行定位,这一步写个脚本就能完成了。相应的,拿到 html 结构和图片,提取出 position ,你写个脚本也能复原图片。

    3. 为啥这么做:猜测的原因可能有: 防爬虫、付费卖文档、节约点点资源?(毕竟合并在一起压缩率更高,可以一次拿到很多页的数据,目前还过滤了纯白色块)
    yolee599
    yolee599
    Apr 27, 2023 via Android
    19
    标准是要收钱的,网上能下的多数是盗版!
    c2const
    c2const
    Apr 27, 2023
    20
    只是想保存到本地,保存到单个网页就行了,mhtml 格式,本地文件可以直接打开。
    laLuna
    laLuna
    Apr 27, 2023 via iPhone
    22
    大部分标准可以免费公开下载的,个别标准用到了国外的专利,不允许下载,只能买纸质的
    LYwyc2
    LYwyc2
    May 16, 2024
    23
    @qiaofanxing 万分感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1231 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 17:29 · PVG 01:29 · LAX 09:29 · JFK 12:29
    ♥ Do have faith in what you're doing.