2013-02-04 89 views
0

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

到目前爲止,所有我做的打開Photoshop文檔是:

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

,但是當我在一個PDF使用os.startfile它與Acrobat打開。我想在photoshop中打開PDF。有任何想法嗎?

+0

不能只使用''subprocess.call()''執行Photoshop並傳遞PDF作爲參數? – BeRecursive

+0

@BeRecursive你可以像這樣從命令行啓動photoshop嗎? –

+0

環境變量的路徑必須有photoshop目錄的路徑嗎?我試圖添加它,然後嘗試使用命令行打開Photoshop,並沒有奏效。 – csterling

回答

0

os.startfile剛剛啓動指定文件with its default application。將PDF的默認應用程序更改爲photoshop會得到您想要的結果,但是要在其他情況下使打開的PDF真的很煩人。

要做到這一點,你需要使用photshop的COM接口來編寫腳本。我還沒有嘗試,但this tutorial看起來像如果可能適合您的需求。

+0

那麼[操作]選項呢?是否可以將其設置爲「打開方式...」,然後指定Photoshop? – csterling

+0

沒有看起來像看文檔的有效輸入。 –

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()