Avtentikacija
Ustvarite račun in odprite delovni prostor. API ključ pošljite v glavi Authorization. Ključ hranite na strežniku, nikoli v javni kodi brskalnika.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Osnovni URL: https://pdf.kvadrati.com
Turnstile ščiti spletne obrazce. API pretvorbe uporablja vaš API ključ in ne potrebuje Turnstile žetona.
POST /pdf/from-htmlHTML → PDF
Pošljite HTML in izbirno ime datoteke. Rezultat je binarna datoteka PDF formata A4 z vključenimi ozadji.
| Polje | Opis |
|---|
html | Obvezen niz. HTML dokument s CSS. |
fileName | Izbiren niz. Končnica .pdf se doda samodejno. |
{
"html": "<html><body><h1>Hello PDF</h1></body></html>",
"fileName": "report.pdf"
}
200 OK · Content-Type: application/pdf
POST /pdf/from-urlURL → PDF
Pošljite javno dostopen URL. Storitev pridobi HTML in pretvori relativne povezave virov v absolutne. Strani, ki zahtevajo prijavo ali so odvisne od interaktivne seje, niso primerne.
{
"url": "https://example.com/report",
"fileName": "report.pdf"
}
URL mora uporabljati HTTP ali HTTPS. Uporabljajte le vsebine, za katere imate pravico dostopa in pretvorbe.
Primeri integracije
cURL
curl https://pdf.kvadrati.com/pdf/from-html \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<h1>Hello PDF</h1>","fileName":"report.pdf"}' \
--output report.pdf
Python
import os
import requests
response = requests.post(
"https://pdf.kvadrati.com/pdf/from-html",
headers={"Authorization": "Bearer " + os.environ["PDF_API_KEY"]},
json={"html": "<h1>Hello PDF</h1>", "fileName": "report.pdf"},
timeout=60,
)
response.raise_for_status()
with open("report.pdf", "wb") as file:
file.write(response.content)
C# / .NET 10
using System.Net.Http.Headers;
using System.Net.Http.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer", Environment.GetEnvironmentVariable("PDF_API_KEY"));
using var response = await client.PostAsJsonAsync(
"https://pdf.kvadrati.com/pdf/from-html",
new { html = "<h1>Hello PDF</h1>", fileName = "report.pdf" });
response.EnsureSuccessStatusCode();
await File.WriteAllBytesAsync("report.pdf", await response.Content.ReadAsByteArrayAsync());
Omejitve in napake
Brezplačen račun ima 2 pretvorbi dnevno. Dnevno obdobje temelji na UTC; neuspešna pretvorba lahko porabi poskus. Za večje količine pošljite povpraševanje.
| HTTP | Pomen |
|---|
| 400 | Neveljaven ali manjkajoč API ključ, prazen vhod ali dosežena dnevna omejitev. |
| 429 | Preveč zahtevkov. Počakajte pred ponovnim poskusom. |
| 500 | Napaka pri pridobivanju vsebine ali ustvarjanju PDF-ja. |
Preverite HTTP status pred shranjevanjem odgovora. Odgovori o napakah niso datoteke PDF.
GET /pdf/pingPreprost pregled dosegljivosti storitve, brez API ključa.