![使用 ps2pdf 将 Python Pyperclip PS 文件传输到同一目录](https://linux22.com/image/1000117/%E4%BD%BF%E7%94%A8%20ps2pdf%20%E5%B0%86%20Python%20Pyperclip%20PS%20%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E5%88%B0%E5%90%8C%E4%B8%80%E7%9B%AE%E5%BD%95.png)
使用 Ubuntu 14.04 和 Python 3.6
我目前已安装 pyperclip,在创建用于在特定程序中打开文件的快捷方式时效果很好。我只需将文件复制到剪贴板,然后使用指定的应用程序快捷键打开即可。
我想对 ps2pdf 做同样的事情,但要将 .pdf 添加到同一目录中的目标文件。无论我怎么尝试,它都会在我的主目录中创建一个 pdf。ps2pdf 的正确语法是:ps2pdf Original_file.ps Destination_file.pdf
#!/usr/bin/env python3
import subprocess
import pyperclip
first = pyperclip.paste()
#text =`echo "$first" | cut -d'.' -f1`
text = first.substr(0, first.lastIndexOf(".")) + ".pdf";
subprocess.Popen(["ps2pdf", pyperclip.paste() " " text])
我尝试过很多不同的变体和变量,但我不想在这里全部列出。仅显示我尝试过的其他方法的一个例子。
任何帮助,将不胜感激。
谢谢
答案1
#!/usr/bin/env python3
import subprocess
import pyperclip
import os
os.chdir("/DirectoryPathOfFile")
subprocess.Popen(["ps2pdf", pyperclip.paste()])
这非常有效。
现在进一步阐述我试图做的事情。众所周知,在 Ubuntu 中填写 Adobe 表单时导出为 PDF 时会出现问题。您只能导出到 PS,然后通过 ps2pdf 进行转换。然后,对于那些想要干净文件的人来说,我们必须使用 exiftool。下面是一个处理所有问题的示例脚本,包括在同一目录中处理同名的同一文件时删除 exiftool 创建的 _original 文件。
我喜欢你可以在 nautilus 中观察它的工作情况。我没有尝试使用 event.wait 来实现这一点,并不完全确定如何实现,但也想留出时间让硬盘驱动器执行(格外谨慎)。- 请记住,这需要安装 pyperclip 的所有依赖项。我将此脚本链接到快捷键,现在可以按 Ctrl +c 组合键访问 nautilus 中的 .ps 文件(脚本快捷键),这样脚本就可以完成剩下的工作了。
#!/usr/bin/env python3
import subprocess
import pyperclip
import os
import time
os.chdir("/DirectoryPathOfFile")
subprocess.Popen(["ps2pdf", pyperclip.paste()])
time.sleep(3)
new1 = os.path.splitext(pyperclip.paste())[0]+".pdf"
subprocess.Popen(["exiftool", "-all:all=", new1])
time.sleep(3)
new2 = os.path.splitext(pyperclip.paste())[0]+".pdf_original"
os.remove(new2)
#optionally remove original .ps file as well
#os.remove(pyperclip.paste())
我希望这对其他人也有同样的帮助!