1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Python】外文PDF阅读助手-使用win32clipboard实现去除剪切板(Clipboard)内容的换行符

【Python】外文PDF阅读助手-使用win32clipboard实现去除剪切板(Clipboard)内容的换行符

时间:2019-12-14 04:40:41

相关推荐

【Python】外文PDF阅读助手-使用win32clipboard实现去除剪切板(Clipboard)内容的换行符

1. 实现效果

在阅读外文PDF时,需要复制文字,会发现粘贴出来的文字都出现很奇怪的换行。

使用该Python脚本,可直接替换掉 剪切板 内的换行。再 Ctrl + V,完美。

2. 脚本代码

改自:CSDN博客(Windows下利用win32clipboard实现Python的剪切板(Clipboard)操作)。

修改:中文windows下中文输出乱码。

原理:

1. Python3默认编码是unicode,Windows环境默认是gbk编码。二者需要转换。

2. 从剪切板取字符串时,python3 会自动将文字以 utf-8 的编码保存到内部,所以再发送给 剪切板之前,要显式转为 gbk,再递给剪切板。否则会出现:英文正确,而汉字乱码的奇怪情况。

3. 此代码需自行安装 pywin32 库。(太久已忘当时如何装的了,可以试试CMD命令:pip3 install pywin32 )

# clipboard.py#coding:utf-8import win32clipboard as wcimport win32condef stripClipboard():# 开始剪切板操作wc.OpenClipboard()# 尝试将剪切板内容读取为Unicode文本txt = wc.GetClipboardData(win32con.CF_UNICODETEXT) #用unicode读txt = str(txt).strip()# 字符串按行分割txt = txt.splitlines()n = len(txt)# 用空格拼接每行txt = ' '.join(txt)# 将所有长度大于1的空白符转为1个空格txt = ' '.join(txt.split())# 清空剪切板wc.EmptyClipboard()# 尝试将处理完的字符以Unicode文本形式放入剪切板wc.SetClipboardData(win32con.CF_TEXT, txt.encode('gbk')) #转为gbk再发给粘贴板# 关闭剪切板wc.CloseClipboard()print('delete {} return signal.\n'.format(n))print(txt+'\n')stripClipboard()

效果如下。

复制出的PDF:

You either luck out that your idea goes viral (which happens tomaybe 1 out of 10,000 startups) or that your idea is sobrilliantly conceived and executed that people clamor to findtheir wallets because you have solved their problem so well.你好,我是谁??我在哪儿?

代码执行后:

You either luck out that your idea goes viral (which happens to maybe 1 out of 10,000 startups) or that your idea is so brilliantly conceived and executed that people clamor to find their wallets because you've solved their problem so well. 你好,我是谁??我 在哪儿?

到此,也繁琐。每 Ctrl + C 一次,都需要手动双击 此 Python 脚本,不友好。

若你的工作量大,可尝试 进阶方法,见 3。

3. 进阶:使用AutoHotkey

AutoHotkey 是一个热键工具软件,需要自行安装。可自定义热键及对应的功能。

使用以下脚本,可实现 Ctrl + C,再 Ctrl + Alt +1,再Ctrl + V,就能生产出优美的文字了。

^!1::RunWait, C:\Program Files\Python37\Python.exe "C:\code\py\clipboard.py", , Hide

该代码含义:

定义热键: Ctrl + Alt + 1::

运行命令 Python.exe pyfile.py ,并且隐藏运行窗口。

如果不带 Hide 参数,会出现Python脚本运行时黑色窗口一闪而过,影响体验。Hide前面的空参数,是用来指定 命令 的工作目录,此处无用,留空。

参考资料:

1.Python3默认编码是unicode;而Python2是ASCII码。Windows环境默认是gbk编码

最后,突然发现 有道词典 可以截图翻译。。。好吧,直接一步到位了。我之前还粘贴到网页翻译中去,这下直接省了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。