V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Damn
V2EX  ›  问与答

WPS 是怎么限制打印机类型的呢?

  •  
  •   Damn · 243 天前 · 1336 次点击
    这是一个创建于 243 天前的主题,其中的信息可能已经有所发展或是发生改变。


    开发者文档很是简陋,没有任何描述。
    第 1 条附言  ·  242 天前
    找到了两种解决方案:
    1.安装 Universal Document Converter ,此为收费软件,生成的虚拟打印机天然不带 PDF 字眼。
    2.修改注册表关键值,“制作”不带 PDF 字眼的虚拟打印机,具体方法可见 23#。
    结帖。
    23 条回复    2024-03-12 21:13:37 +08:00
    learnshare
        1
    learnshare  
       243 天前
    输出为 PDF 再打印?
    Damn
        2
    Damn  
    OP
       243 天前
    有的时候就是有保存为 PDF 的需求,但是 PDF 打印机被识别出来并禁用了。
    连 Ctrl+P 都禁用了。
    感觉是 wps 发明的 js 宏的功能,但是开发者文档过于简陋没有找到证据。
    Winner007
        3
    Winner007  
       243 天前
    这是要会员才能保存 PDF ?这么会玩的吗
    PrinceofInj
        4
    PrinceofInj  
       243 天前
    自己做了一个打印的对话框吧。没有使用系统原生的。
    kkk9
        5
    kkk9  
       243 天前
    https://github.com/clawsoftware/clawPDF

    基于此项目二次开发即可,编译前把一些关键参数伪装成 HP 打印机即可😁
    Raynard
        6
    Raynard  
       243 天前
    office 365 ,拼车一年才 40 把。。。不比 wps 好用多了?
    Damn
        7
    Damn  
    OP
       243 天前
    @Winner007 并不是,OA 加载项禁用的。
    @kkk9 驱动签名不好解决啊。。
    @Raynard OA 只能用这玩意。
    ysc3839
        8
    ysc3839  
       243 天前 via Android
    打印到 XPS 能用吗?
    ltkun
        9
    ltkun  
       243 天前 via Android
    @Raynard 说反了 wps 好用的多 各种小工具
    Routeros
        10
    Routeros  
       243 天前

    不是很懂为啥你的会限制类型。
    不是直接打印的吗?
    wbwm
        11
    wbwm  
       242 天前


    刚才特地下载一个安装了一下,没限制啊?
    Damn
        12
    Damn  
    OP
       242 天前 via iPhone
    @Routeros
    @wbwm 请看 7#
    @ysc3839 不能,经过一番研究,目前找到一个方法,用物理打印机的驱动做一个管道(虚拟 PDF 打印机做管道一样被识别),后端把 PCL 转成 PDF ,缺点是生成的 PDF 没有办法选择复制,体积也大,没有达到生成 PDF 的预期。。
    eroko
        13
    eroko  
       242 天前
    你得确定一下这个是文档限制还是你们的 wps 是定制版限制了 PDF 打印。正常来说 WPS 自己也是有 PDF 打印功能的。
    Damn
        14
    Damn  
    OP
       242 天前 via iPhone
    @eroko 是定制版,但只有在开 OA 文档时才出现这种情况,正常编辑本地文档的时候没有限制。
    eroko
        15
    eroko  
       242 天前
    @Damn WPS 应该有一个 OEM 什么的文件夹,里面有 OEM 相关的配置文件,你可以在这里面找找。
    Damn
        16
    Damn  
    OP
       242 天前
    oem.ini 里面没有特别的信息。
    我比较确定是文档加载项带来的限制。
    打开 OA 文档的时候 ribbon 工具栏会出现这个。


    同时 Ctrl+P 被禁用,文档右侧出现工具栏。


    点 JS 调试会有相关记录。
    Damn
        17
    Damn  
    OP
       242 天前
    @eroko 参考楼上,正常编辑本地文档的时候,如 10#、11#一样,是没有限制的。
    ysc3839
        18
    ysc3839  
       242 天前 via Android
    @Damn 看一下 js 代码?
    Damn
        19
    Damn  
    OP
       242 天前
    @ysc3839
    本地找到了这些 js 的副本,尝试修改这些 js ,但发现每次打开文档都是加载的在线版。
    看起来找一个名字不带 PDF 这三个字母的虚拟打印机就可以破解了。
    Damn
        20
    Damn  
    OP
       242 天前
    @ysc3839 那么就成了一个 XY 问题,那里去找一个名字里不带 PDF 的虚拟 PDF 打印机呢?
    ysc3839
        21
    ysc3839  
       242 天前 via Android
    @Damn 不能直接执行 js 代码绕过吗?
    ysc3839
        22
    ysc3839  
       242 天前 via Android
    @Damn 意思是不修改 js 本身,而是额外执行代码去影响原有逻辑,类似浏览器的 User Script
    Damn
        23
    Damn  
    OP
       242 天前   ❤️ 1
    @ysc3839 找到了检测逻辑,修改注册表关键键值即可。
    记录一下结帖。

    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers
    推测有:Printer Driver 、driverName

    HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3 (或者 4 )
    重命名键,与上一步修改的值对应起来即可

    未进一步测试是否有多余步骤。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1592 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:08 · PVG 01:08 · LAX 09:08 · JFK 12:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.