Trabalhar com arquivos
Como anexar arquivos de entrada a uma requisição: um único PDF, uma lista ordenada para mesclar, uma segunda imagem para marcas-d’água e os limites de cada caso.
As entradas são enviadas como partes binárias de uma requisição
multipart/form-data. A maioria das ações recebe exatamente um PDF em um campo
file, mas duas ações precisam de mais: a mesclagem recebe um array ordenado de
arquivos, e a marca-d’água de imagem recebe um segundo binário ao lado do PDF.
Esta página cobre as três formas de entrada.
Um único arquivo
O caso padrão. Anexe um PDF no campo file e adicione as opções da ação como
campos de texto:
curl https://api.pdfblocks.com/v1/extract_pages \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F pages='1..3' \
-o extract.pdfO @ em -F file=@input.pdf diz ao cURL para enviar o conteúdo do arquivo. Toda
ação de entrada única (marcas-d’água, segurança, operações de página, divisões)
funciona assim.
Vários arquivos: a mesclagem
Mesclar documentos PDF é a única ação que aceita
um array. Envie o campo file mais de uma vez, e os documentos são mesclados
na ordem em que as partes aparecem na requisição. Forneça pelo menos um arquivo;
você pode enviar muitos em uma única chamada.
A ordem é posicional, portanto envie as partes na sequência em que quer que
sejam mescladas. Quando o seu cliente HTTP expõe um objeto de formulário, use o
método append dele (e não set) para que repetir file acrescente partes em
vez de sobrescrever a anterior.
curl https://api.pdfblocks.com/v1/merge_documents \
-H 'X-API-Key: your_api_key' \
-F file=@cover.pdf \
-F file=@body.pdf \
-F file=@appendix.pdf \
-o merged.pdf# pip install requests
import requests
files = [
('file', ('cover.pdf', open('cover.pdf', 'rb'), 'application/pdf')),
('file', ('body.pdf', open('body.pdf', 'rb'), 'application/pdf')),
('file', ('appendix.pdf', open('appendix.pdf', 'rb'), 'application/pdf')),
]
response = requests.post(
'https://api.pdfblocks.com/v1/merge_documents',
headers={'X-API-Key': 'your_api_key'},
files=files,
)
response.raise_for_status()
with open('merged.pdf', 'wb') as output:
output.write(response.content)// Node.js 18+
import { readFile, writeFile } from 'node:fs/promises';
const body = new FormData();
for (const name of ['cover.pdf', 'body.pdf', 'appendix.pdf']) {
body.append('file', new Blob([await readFile(name)]), name);
}
const response = await fetch('https://api.pdfblocks.com/v1/merge_documents', {
method: 'POST',
headers: { 'X-API-Key': 'your_api_key' },
body,
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
await writeFile('merged.pdf', Buffer.from(await response.arrayBuffer()));Se repetir o campo file for incômodo no seu cliente HTTP (o cURL do PHP, os
auxiliares de formulário do Ruby), envie em vez disso os campos numerados
file_1 a file_10; eles são mesclados em ordem numérica. Use o array file
repetido quando precisar de mais de dez documentos.
Uma imagem ao lado do PDF: a marca-d’água de imagem
Adicionar uma marca-d’água de imagem
recebe duas partes binárias: o PDF em file e a imagem da marca-d’água em um
campo image. A imagem precisa ser PNG ou JPEG. As duas partes são
obrigatórias.
curl https://api.pdfblocks.com/v1/add_image_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F image=@logo.png \
-o watermarked.pdfOs campos restantes (transparency, margin, pages) são opções de texto
comuns; consulte a referência da ação para ver seus intervalos e valores padrão.
Entradas aceitas e tamanho
- A entrada
file(e cada arquivo mesclado) precisa ser um PDF legível. Um arquivo que não pode ser analisado como PDF retorna um400nomeando o campofile. Consulte Erros. - A entrada
imageda marca-d’água de imagem precisa ser PNG ou JPEG. - Quais páginas uma ação afeta é uma questão separada de como você anexa o
arquivo. Expresse as seleções de páginas com o campo
pagesdocumentado em Selecionar páginas.
Para documentos grandes (upload e download em fluxo, tempos limite e novas tentativas), consulte Trabalhar com arquivos grandes.