Converter imagens JPG para documentos PDF programaticamente é uma necessidade frequente para desenvolvedores PHP que criam recursos de relatório ou arquivamento. Aspose.Words Cloud SDK for PHP permite converter JPG para PDF em PHP com apenas algumas linhas de código. Neste guia você verá um passo‑a‑passo, um exemplo completo em funcionamento e comandos cURL para a API REST. Você também aprenderá como ajustar finamente DPI e a qualidade da imagem para obter resultados ótimos.
Configurando Aspose.Words Cloud SDK para PHP
Antes de começar, certifique‑se de que você tem:
- PHP 7.4 ou superior
- Composer instalado
- Uma conta Aspose Cloud com Client Id e Client Secret
- Acesso de rede a
https://api.aspose.cloud
Instale o SDK via Composer:
composer require aspose-cloud/aspose-words-cloud
Baixe o pacote mais recente na página oficial de lançamentos: Aspose.Words Cloud SDK for PHP Download.
Agora configure o SDK com suas credenciais:
require __DIR__ . '/vendor/autoload.php';
use Aspose\Words\Configuration;
$config = new Configuration();
$config->setClientId('YOUR_CLIENT_ID');
$config->setClientSecret('YOUR_CLIENT_SECRET');
$config->setHost('https://api.aspose.cloud');
Com a configuração pronta, você pode criar uma instância WordsApi e começar a converter.
Conversão de JPG para PDF em PHP: Guia passo a passo
Etapa 1: Carregar o Documento de Origem
Abra o arquivo JPG como um fluxo para que imagens grandes sejam processadas de forma eficiente.
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');
Etapa 2: Configurar Opções de Conversão
Defina a DPI desejada e a qualidade da imagem. Essas configurações afetam diretamente o tamanho e a clareza do PDF de saída, o que é importante ao converter JPG para PDF em PHP.
use Aspose\Words\Model\ConvertOptions;
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300); // horizontal DPI
$convertOptions->setDpiY(300); // vertical DPI
$convertOptions->setImageQuality(80); // 0‑100
Etapa 3: Crie a Solicitação de Conversão
Prepare o objeto de solicitação com o fluxo de entrada, o formato de destino e as opções.
use Aspose\Words\Model\Requests\ConvertDocumentRequest;
$request = new ConvertDocumentRequest(
$jpgStream, // Input file stream
'pdf', // Target format
null, // outPath – null to receive binary response
null, // storage – default
null, // folder – default
$convertOptions // conversion options
);
Etapa 4: Execute a Conversão e Salve o PDF
Chame a API, receba os dados binários do PDF e grave‑os em um arquivo.
use Aspose\Words\WordsApi;
$wordsApi = new WordsApi($config);
try {
$pdfBinary = $wordsApi->convertDocument($request);
$outputPdfPath = __DIR__ . '/result.pdf';
$pdfHandle = fopen($outputPdfPath, 'wb');
fwrite($pdfHandle, $pdfBinary);
fclose($pdfHandle);
echo "Conversion successful: {$outputPdfPath}\n";
} catch (Exception $e) {
echo 'Error during conversion: ', $e->getMessage(), "\n";
}
Exemplo completo em funcionamento para converter JPG em PDF em PHP
O exemplo abaixo demonstra a implementação completa do início ao fim.
<?php
require __DIR__ . '/vendor/autoload.php';
use Aspose\Words\Configuration;
use Aspose\Words\WordsApi;
use Aspose\Words\Model\ConvertOptions;
use Aspose\Words\Model\Requests\ConvertDocumentRequest;
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$config = new Configuration();
$config->setClientId($clientId);
$config->setClientSecret($clientSecret);
$config->setHost('https://api.aspose.cloud');
$wordsApi = new WordsApi($config);
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$outputPdfPath = __DIR__ . '/result.pdf'; // destination PDF
// Open JPG as a stream to avoid loading whole file into memory for large images
$jpgStream = fopen($inputJpgPath, 'rb');
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300); // horizontal DPI
$convertOptions->setDpiY(300); // vertical DPI
$convertOptions->setImageQuality(80); // optional, 0‑100
$request = new ConvertDocumentRequest(
$jpgStream, // Input file stream
'pdf', // Target format
null, // outPath – null to receive binary response
null, // storage – default
null, // folder – default
$convertOptions // conversion options
);
try {
// API returns binary PDF data
$pdfBinary = $wordsApi->convertDocument($request);
// Write binary data to file efficiently
$pdfHandle = fopen($outputPdfPath, 'wb');
fwrite($pdfHandle, $pdfBinary);
fclose($pdfHandle);
echo "Conversion successful: {$outputPdfPath}\n";
} catch (Exception $e) {
echo 'Error during conversion: ', $e->getMessage(), "\n";
}
// Cleanup
if (is_resource($jpgStream)) {
fclose($jpgStream);
}
Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Usando cURL para Converter Imagens JPG em Documentos PDF
Se preferir uma chamada REST direta, a mesma conversão pode ser realizada com cURL.
- Obter um token de acesso
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Carregue o JPG de origem no armazenamento
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/sample.jpg" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--data-binary "@sample.jpg"
- Execute a conversão
curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
- Baixe o PDF resultante (se não estiver usando
-oacima)
curl -X GET "https://api.aspose.cloud/v4.0/words/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Esses comandos ilustram o mesmo fluxo de trabalho sem escrever nenhum código PHP. Para mais detalhes, veja a documentação oficial da API.
Ajuste fino das configurações de conversão para saída PDF ideal
O SDK oferece várias opções para controlar a aparência e o tamanho do PDF gerado.
- DPI (Dots Per Inch) - DPI mais alto (por exemplo, 300) produz saída mais nítida, adequada para impressão. Defina com
setDpiXesetDpiY. - ImageQuality - Controla o nível de compressão JPEG (0‑100). Valores menores reduzem o tamanho do arquivo ao custo da fidelidade visual.
- Additional options - A classe
ConvertOptionstambém oferece suporte asetPageSize,setPageOrientationesetColorMode. Consulte a referência da API para a lista completa.
Exemplo de definição de DPI e qualidade (já mostrado no tutorial):
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);
$convertOptions->setDpiY(300);
$convertOptions->setImageQuality(80);
Principais pontos
Usando o Aspose.Words Cloud SDK for PHP, você pode converter JPG para PDF em PHP facilmente, sem lidar com processamento de imagem de baixo nível. O SDK gerencia streaming, DPI e qualidade da imagem, permitindo que você se concentre na lógica de negócios. Lembre‑se de proteger seu Client Id e Client Secret, e considere a licença temporária para avaliação antes de adquirir uma licença completa. Detalhes de preços estão disponíveis na página do produto, e uma licença temporária pode ser obtida na página de licença temporária. Com o código e os exemplos de cURL fornecidos, você está pronto para integrar a conversão de JPG para PDF em qualquer aplicação PHP web ou desktop.
Perguntas que Você Pode Ter
-
Qual é a maneira mais simples de converter JPG para PDF em PHP?
A linha única mostrada no exemplo completo usaConvertDocumentRequestcom o formato de destino definido como"pdf". Essa única chamada realiza toda a conversão. -
Posso converter vários arquivos JPG em uma única solicitação?
A API processa um arquivo de origem por solicitação. Para lidar com lotes, percorra sua lista de arquivos e invoque a conversão para cada imagem. -
Como controlo o tamanho do PDF de saída?
AjusteDpiX,DpiYeImageQualityemConvertOptions. DPI e qualidade mais baixos reduzem o tamanho do arquivo, enquanto valores mais altos melhoram a fidelidade visual. -
Existe um limite para o tamanho da imagem JPG que posso converter?
O SDK faz streaming da entrada, portanto o uso de memória permanece baixo. No entanto, arquivos extremamente grandes podem estar sujeitos a limites de serviço; consulte a documentação oficial para obter os limites exatos.