0

我几乎是 Python 的菜鸟(以及一般的编码),所以如果我很愚蠢,请原谅我。

我正在为自定义 Zapier 步骤编写一个简短的脚本,该脚本应该遍历 URL 列表,选择以 .pdf 结尾的那些并将其发送到 ConvertAPI 以便转换为 JPG。

到目前为止,向 ConvertAPI 发送请求可以正常工作,并且 ConvertAPI 表示测试文件已被转换。这是我的问题:如何取回转换后文件的结果 URL?如果我打印响应,我会得到Response [200],但没有其他可以使用的。

我试过打开Async参数,但到目前为止无济于事。据我了解,StoreFile必须设置为true,但这似乎没有什么区别。

import requests
import json

url = 'https://v2.convertapi.com/convert/pdf/to/jpg?Secret=******' # Hidden
headers = {'content-type': 'application/json'}
payload = {
    'Parameters': [
        {
            'Name': 'File',
            'FileValue': {
                'Url': 'to be populated'
            }
        },
        {
            'Name': 'StoreFile',
            'Value': 'true'
        }
    ]
}

a = ['https://www.bachmann.com/fileadmin/02_Produkte/03_Anschlussfelder/CONI/Downloads/CONI_3-4-6-way_Mounting_instructions_REV05.pdf','test2.jpg','test3.jpeg','test4.png','test4.exe']

for x in a:

  if x[-3:] == 'pdf':
    payload['Parameters'][0]['FileValue']['Url'] = x
    response = requests.post(url, data=json.dumps(payload), headers=headers)
    print(response)

  elif x[-3:] == 'jpg' or x[-3:] == 'png' or x[-4:] == 'jpeg':
    print('thats an image, nothing to do here')
4

3 回答 3

1

一位朋友通过这个 IRL 帮助了我,它是这样的:

import requests
import json

output = {'output_urls' : []} 
url = 'https://v2.convertapi.com/convert/pdf/to/jpg?Secret=xxxxxxx' # Hidden
headers = {'content-type': 'application/json'}
payload = {
    'Parameters': [
        {
            'Name': 'File',
            'FileValue': {
                'Url': 'to be populated'
            }
        },
        {
            'Name': 'StoreFile',
            'Value': 'true'
        },
        {
            'Name': 'ScaleImage',
            'Value': 'true'
        },
        {
            'Name': 'ScaleProportions',
            'Value': 'true'
        },
        {
            'Name': 'ScaleIfLarger',
            'Value': 'true'
        },
        {
            'Name': 'ImageHeight',
            'Value': '2200'
        },
        {
            'Name': 'ImageWidth',
            'Value': '1625'
        }
    ]
}

for x in input_data['input_urls'].split(',') : # input_data is passed by Zapier
  if x[-3:] == 'pdf':
    payload['Parameters'][0]['FileValue']['Url'] = x

    response = requests.post(url, data=json.dumps(payload), headers=headers)
    response_obj = json.loads(response._content)

    for file_url in response_obj['Files'] :
      output['output_urls'].append(file_url['Url'])

  elif x[-3:] == 'jpg' or x[-3:] == 'png' or x[-4:] == 'jpeg' :
    output['output_urls'].append(x)

return output
于 2019-01-19T14:17:59.300 回答
0
print(response)

收到响应的状态码,所以收到 200 表示请求成功

要获取网址,您可以使用 .url

print(response.url)
于 2019-01-18T19:28:37.440 回答
0

ConvertAPI 有 Python 库https://github.com/ConvertAPI/convertapi-python ,它可以帮助您使用下面的代码轻松地将 pdf 转换为 jpg。

import convertapi
import os
import tempfile

convertapi.api_secret = os.environ['CONVERT_API_SECRET'] # your api secret

jpg_result = convertapi.convert(
    'jpg',
    {
        'File': 'files/test.pdf',
        'ScaleImage': True,
        'ScaleProportions': True,
        'ImageHeight': 300,
        'ImageWidth': 300,
    }
)

saved_files = jpg_result.save_files(tempfile.gettempdir())

print("The thumbnail saved to %s" % saved_files)
于 2019-01-18T22:53:57.097 回答