关于PDF文件如何打开和打印
本帖最后由 HYL6668 于 2023-8-21 16:21 编辑因工作需要,会经常收到别人发过来的PDF文件,但是文件总是被设置成在固定某台电脑才能打开,且无法打印,
打印出来的是白纸,把文件拷贝到其他电脑又无法打开,每次都要回来那台电脑才能打开,很不方便。
请问有什么方法或者工具可以编译使之能够在其他电脑正常打开和打印,请各位大佬指点一二。
需要上传附件操作的话请告知。
应大家要求已上分享链接。
https://wwvy.lanzouy.com/igp5N15lxbqd 虽然我是小白, 但是你不考虑先把文件发上来吗?以及pdf文件是否被加密? pdf被锁定了吗,可以试试解锁 还真的没遇到过,挺有趣的,难道就像注册机一样能识别机器硬件序列号吗,关注本帖! 本帖最后由 绯红の光 于 2023-8-17 15:52 编辑
没有文件的话无法判断,PDF本身的安全处理,PDF创建的时候可以设置密码和权限,但是只是在头尾部分添加几段特征信息好像,事实上把这些信息删除其实就不影响访问了,甚至不同PDF阅读软件打开,可以复制和打印的程度经常也是不一样的
根据你的描述感觉上不外乎下面两种可能;
1、文件本身没有问题,但通过WPS设置在线私密权限了,仅指定某人可以访问,而同时看文件的那台电脑登录的WPS账号就是可访问账户,所以可以打开和打印(不过可能性最小)
2、文件有可能是加密格式,据我了解,部分公司为了防止内容外协,有使用DES文件加密系统,文件创建自动加密,外发选择权限解密,有可能是对文件设置了仅单台电脑访问,第一次访问后记录硬件ID,返回到云端记录,以后就只有这台电脑可以打开(这部分可以试试下次接收到新文件后,在断网情况下能不能打开,如果能打开换另一台断网电脑,再联网这样试)
3、如果真是纯原始PDF的话,试试绕过解锁看看,现在很多在线PDF格式转换网站都支持删除密码
-- 看过文件了,可以确定就是第二种情况
这是一份图片档案的PDF打开后头部信息
这是加密PDF打开后显示的十六进制编码
在网上找了一份DES加密软件的截图,名字就不提了,可以看见使用电脑标识验证可以控制只在一台电脑上打开PDF,不勾选打包为exe和压缩包能够保证加密后文件格式仍旧为PDF,使用次数和联网,还有权限部分可以实现题中所说打印出是空白的情况,但是实际上通过新建一份PDF文件,然后将原PDF页面以图片形式插入,自己另存一份实际上是可以算作是“破解”的,至于将文件解密甚至脱壳,涉及到软件不同算法不同基本上等同于不可能,后文附上对PDF 进行DES 加密和解密的两段程序,可以对比下PDF文件识别后的样子
加密程序
from tkinter import Tk, filedialog
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad
import os
def encrypt_file(file_path):
# 读取文件内容
with open(file_path, 'rb') as file:
file_content = file.read()
# 使用 DES 加密
key = b'01234567'# DES 密钥,8 字节
cipher = DES.new(key, DES.MODE_ECB)
padded_content = pad(file_content, DES.block_size)
encrypted_content = cipher.encrypt(padded_content)
# 构建加密后的文件名
file_name = os.path.basename(file_path)
encrypted_file_name = f"加密_{file_name}"
# 写入加密后的文件
with open(encrypted_file_name, 'wb') as encrypted_file:
encrypted_file.write(encrypted_content)
print(f"文件 {file_name} 加密成功,加密后文件名为 {encrypted_file_name}")
# 创建 Tkinter 根窗口
root = Tk()
root.withdraw()
# 弹窗选择 PDF 文件
file_path = filedialog.askopenfilename(filetypes=[('PDF Files', '*.pdf')])
if file_path:
# 加密文件
encrypt_file(file_path)
else:
print("未选择文件")
解密程序
import tkinter as tk
from tkinter import filedialog
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad
import os
# 创建文件选择对话框
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename(filetypes=[("PDF Files", "*.pdf")])
# 检查是否选择了文件
if not file_path:
print("未选择文件")
exit()
# 读取PDF文件内容
with open(file_path, "rb") as file:
file_content = file.read()
# 使用 DES 解密
key = b'01234567'# DES 密钥,8 字节
cipher = DES.new(key, DES.MODE_ECB)
padded_content = pad(file_content, DES.block_size)
decrypted_content = cipher.decrypt(padded_content)
# 获取原文件名和扩展名
file_name, file_ext = os.path.splitext(file_path)
# 构造解密后的文件路径和文件名
decrypted_file_path = file_name + "_decrypted" + file_ext
# 写入解密后的内容到文件
with open(decrypted_file_path, "wb") as decrypted_file:
decrypted_file.write(decrypted_content)
print("解密完成,解密后的文件保存为:", decrypted_file_path)
估计人家设置了PDF权限了,把PDF权限去掉就行了,我有去除PDF权限的软件,但是我爱莫能助啊,热心分享破姐都给吾爱的网友举报两次,不敢再发分享了,再举报,我就彻底不玩吾爱破解了 没遇到这种情况啊,我下载的PDF文件在哪台电脑上都可以打印啊, PDF还能指定某台机器能打开????还有这种操作?根据什么来判断的? 可以将pdf上传到 https://syykln.lanzoul.com/ ,否则不能帮助什么,不过一般来说要做到这点应当是得特定软件才能打开pdf,不知是否是这样子的。这样子最好把软件也一起发送上来寻求解密算法。 没遇到过这种情况啊,不过楼主为啥不把源文件上传看看呢
页:
[1]
2