使用Python使用Photoshop打开PDF

时间:2013-02-04 17:07:38

标签: python photoshop

我想使用Python在Photoshop中打开PDF。我知道如何使用python打开photoshop(.psd)文件,但我想知道是否有办法指定用于打开文件的程序。

到目前为止,我所做的只是打开一个photoshop文档:

psd = "path\to\photoshop\document"
os.startfile(psd)

但是当我在PDF上使用os.startfile时,它会打开Adobe Acrobat。我想在photoshop中打开PDF。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

os.startfile只需启动指定的文件with its default application即可。将PDF的默认应用程序更改为photoshop将获得您想要的结果,但是在其他情况下打开PDF文件的代价真的很烦人。

要正确执行此操作,您需要使用photshop的COM界面编写脚本。我没试过,但this tutorial看起来可能符合您的需求。

答案 1 :(得分:0)

Photoshop可以打开PDF文档,名为Photoshop.PDFOpenOptions

你需要win32com来发送photoshop应用程序。请参阅下面的示例代码

import win32com.client
import os, glob
folderin = r'D:\in'
if (__name__ == '__main__'):
    psApp = win32com.client.Dispatch('Photoshop.Application')
    for infile in glob.glob(os.path.join(folderin, '*.pdf')):
            options = win32com.client.Dispatch('Photoshop.PDFOpenOptions')
            options.CropPage = 0   # BoundingBox
            options.Resolution = 300   # Pixels
            options.Mode = 1    # Grayscale
            options.BitsPerChannel = 8  # 8 bits per channel
            options.AntiAlias = True
            options.ConstrainProportions = True #Deprecated for Adobe Photoshop CS3

            doc = psApp.Open(infile, options)
            doc.flatten
            doc.Trim(1)
            doc.Close(2)

    psApp.Quit()

答案 2 :(得分:0)

from comtypes.client import GetActiveObject

# Start up Photoshop application
# app = Dispatch('Photoshop.Application')

# Or get Reference to already running Photoshop application instance
app = GetActiveObject("Photoshop.Application")
fileName = "C:\Git\PS_Samples_Files\MyPDFFile.pdf"
docRef = app.Open(fileName)

更多示例,https://github.com/lohriialo/photoshop-scripting-python