Работа с чертежами CAD часто подразумевает преобразование файлов DWG в веб‑дружественные изображения, такие как PNG. Aspose.BarCode Cloud SDK for Python упрощает эту конверсию, передавая обработку в облако. В этом руководстве мы покажем, как настроить SDK, выполнить аутентификацию, написать код на Python для преобразования DWG в PNG, а также получить тот же результат с помощью обычного запроса cURL, чтобы вы могли легко интегрировать рендеринг DWG в свои Python‑приложения.

Преобразование DWG в PNG в Python - Шаги

  1. Настройка учетных данных: Установите ваш client ID и client secret, чтобы SDK мог аутентифицироваться в облаке Aspose.
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
  1. Инициализировать клиент API: Создайте объект Configuration, задайте учетные данные и создайте экземпляры ApiClient и BarcodeApi.
config = Configuration()
config.client_id = client_id
config.client_secret = client_secret

api_client = ApiClient(configuration=config)
barcode_api = BarcodeApi(api_client)
  1. Прочитать файл DWG: Откройте исходный файл DWG в бинарном режиме и прочитайте его содержимое в память.
with open("sample.dwg", "rb") as file_stream:
    dwg_bytes = file_stream.read()
  1. Вызов конечной точки конвертации: Используйте convert_image и укажите "png" в качестве целевого формата. Метод возвращает данные PNG в виде массива байтов.
conversion_response = barcode_api.convert_image(
    file=dwg_bytes,
    format="png"
)
  1. Сохранить PNG‑вывод: Запишите возвращённые байты в файл с расширением .png.
with open("sample.png", "wb") as out_file:
    out_file.write(conversion_response)

Для получения более подробной информации о методе convert_image см. Справка API.

Преобразование DWG в PNG в Python - Полный рабочий пример

В следующем примере демонстрируется полный процесс конвертации DWG в PNG на Python с использованием Aspose.BarCode Cloud SDK.

import os
from asposebarcodecloud import Configuration, ApiClient, BarcodeApi, ApiException

# -------------------- Configuration --------------------
# Replace with your actual Aspose.BarCode Cloud credentials
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

config = Configuration()
config.client_id = client_id
config.client_secret = client_secret

# Initialize API client
api_client = ApiClient(configuration=config)
barcode_api = BarcodeApi(api_client)

# -------------------- File Paths --------------------
input_path = "sample.dwg"      # Path to the source DWG file
output_path = "sample.png"     # Desired PNG output path

# -------------------- Conversion --------------------
try:
    # Read the DWG file into memory
    with open(input_path, "rb") as file_stream:
        dwg_bytes = file_stream.read()

# The Aspose.BarCode Cloud SDK provides a generic image conversion endpoint.
    # Here we invoke it, specifying the target format as PNG.
    # The method name and parameters are based on the SDK's conversion API.
    conversion_response = barcode_api.convert_image(
        file=dwg_bytes,          # Binary content of the DWG file
        format="png"             # Target image format
    )

# Write the resulting PNG bytes to the output file
    with open(output_path, "wb") as out_file:
        out_file.write(conversion_response)

print(f"Conversion successful: '{input_path}' → '{output_path}'")

except ApiException as api_err:
    print(f"API error during conversion: {api_err}")
except Exception as err:
    print(f"Unexpected error: {err}")
finally:
    # Explicitly close the API client session if needed
    if hasattr(api_client, "close"):
        api_client.close()

Примечание: Этот пример кода демонстрирует базовый функционал. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.

Конвертировать DWG в PNG через REST API с использованием cURL

Ниже приведена серия команд cURL, которые выполняют то же преобразование с использованием REST‑интерфейса.

  1. Получить токен доступа
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Ответ содержит access_token.

  1. Загрузить файл DWG
curl -X PUT "https://api.aspose.cloud/v3.0/barcode/storage/file/sample.dwg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@sample.dwg"
  1. Выполнить преобразование
curl -X POST "https://api.aspose.cloud/v3.0/barcode/convert?format=png" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@sample.dwg" \
     -o sample.png
  1. Скачать PNG‑результат (необязательно, если вы использовали -o выше)
curl -X GET "https://api.aspose.cloud/v3.0/barcode/storage/file/sample.png" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o sample.png

Для полного списка параметров см. официальную документацию API.

Установка и настройка Aspose.BarCode Cloud SDK for Python

SDK распространяется через PyPI. Установите его с помощью следующей команды:

pip install aspose-barcode-cloud

Требования: Python 3.6 или новее, активный аккаунт Aspose и действительные клиентские учетные данные. SDK требует доступа к интернету для обращения к конечным точкам облака Aspose.

Вы также можете загрузить пакет напрямую со страницы страницы выпуска.

Настройка параметров конвертации DWG в PNG

Вызов конвертации принимает параметр format, который определяет тип выходного изображения. В нашем примере мы устанавливаем его в "png":

conversion_response = barcode_api.convert_image(
    file=dwg_bytes,
    format="png"
)

Другие необязательные параметры (например outPath, storage или настройки качества изображения) задокументированы в API Reference. При необходимости измените их, чтобы соответствовать требованиям вашего проекта.

Заключение

Преобразование DWG в PNG в Python становится тривиальным благодаря мощности Aspose.BarCode Cloud SDK for Python. Следуя приведённым выше шагам, вы можете интегрировать преобразование вектор‑в‑растр в любой бэкенд‑сервис, автоматизировать пакетную обработку или генерировать превью по запросу для CAD‑чертежей. Не забудьте получить действующую временную лицензию со страницы временных лицензий Aspose для разработки и тестирования, а также рассмотреть возможность приобретения полной лицензии для использования в продакшн‑среде. Приятного кодинга!

FAQs

  • Какие форматы файлов поддерживает SDK для конвертации?
    Облачный эндпоинт конвертации обрабатывает множество векторных и растровых форматов, включая DWG, DXF, SVG, PDF, и другие. Обратитесь к документации для полного списка.

  • Является ли преобразование DWG в PNG в Python потокобезопасным?
    Да, каждый экземпляр BarcodeApi можно использовать одновременно, при условии, что вы управляете отдельными объектами учётных данных для каждого потока.

Читать далее