PDF-komprimerings-API – reduser PDF-filstørrelse
Reduser PDF-filstørrelse med MaraDocs optimaliserings-API. Intelligent komprimering, bevart kvalitet. Ingen tungvint omkoding.
Store PDF-filer – etterforskningsdokumenter, faglige utredninger, skannede dokumenter – skaper problemer med e-postbegrensninger, bremser lagring og gjør dokumenthåndteringen treg. I vårt advokatfirma kunne en enkelt faglig utredning være på 30 MB. En PDF-komprimerings-API som reduserer filstørrelse med bevart lesbarhet, ville gjøre deling og arkivering betydelig enklere.
Hvorfor en egen PDF-komprimeringsløsning tar uker
De som vil bygge dette selv, oppdager raskt at Ghostscript, qpdf og pikepdf kan redusere PDF-filer – men man må velge komprimeringsnivåer, ta hensyn til forskjellige PDF-strukturer og unngå kvalitetstap. Nedsampling av bilder, fontinnbygging og strømkomprimering har hver sine avveininger. Å bygge en pålitelig PDF-komprimerings-API med konsistente resultater krever eksperimentering.
Hvordan MaraDocs PDF-komprimerings-API løser dette på minutter
MaraDocs API tilbyr pdf.optimize for intelligent komprimering. Last opp en PDF, valider, deretter optimaliser. Resultatet er typisk betydelig mindre med bevart kvalitet – API-et håndterer nedsampling av bilder, strømkomprimering og fontinnbygging internt. Ingen Ghostscript å installere, ingen parametere å justere, ingen gjettelek med kvalitet vs. størrelse. Ett kall og du får en optimalisert handle som er klar for e-post, arkivering eller neste behandlingssteg.
PDF-komprimerings-workflow: last opp, valider, optimaliser
Last opp PDF, valider for virus og format, deretter kall pdf.optimize. API-et anvender intelligent komprimering – nedsampling av bilder, strømoptimalisering – og returnerer en optimalisert handle. Den kan lastes ned eller videreføres til komposisjon, e-postvedleggsbehandling eller arkivering. Optimalisering passer naturlig som siste trinn før levering i enhver pipeline. Filer forblir i workspace; ingen ny opplasting mellom validering og optimalisering.
Get your API key in under a minute
Register for a free account and get your API key in under a minute. Of course we'll provide you with some developer credits.
Try MaraDocs API now →Hva som skiller MaraDocs: workspaces, webview og tysk personvernlovgivning
De fleste dokument-API-er tvinger til opplasting, behandling, nedlasting og ny opplasting for neste steg. Med MaraDocs forblir filer i workspace. Kombiner med OCR, komposisjon eller e-postbehandling – den optimaliserte PDF-handlen flyter direkte til neste operasjon. Ingen ny opplasting, færre rundturer.
Hvis komprimeringskvaliteten må sjekkes manuelt – eller en før-etter-sammenligning er ønsket – kan app.maradocs.io åpnes for manuell kontroll. Brukere får full manuell kontroll når automatiseringen når sine grenser.
All behandling skjer i Tyskland (Maramia GmbH), kryptert i hvile og under overføring. Workspaces utløper etter 7 dager. Ingen data forlater EU. For personvernsensitive dokumentworkflows er dette relevant.
TypeScript-kode for å redusere PDF-størrelse
API-referanse: data/upload, pdf/validate, pdf/optimize, data/download/pdf
import { MaraDocsClient } from "@maramia/maradocs-sdk-ts";
import { okPdf } from "@maramia/maradocs-sdk-ts/models/pdf";
const client = new MaraDocsClient({ workspaceSecret: workspace_secret });
// Last opp, valider, optimaliser, last ned
const uploaded = await client.data.upload(pdfFile);
const validated = await client.pdf.validate({
unvalidated_file_handle: uploaded.unvalidated_file_handle,
});
const pdfHandle = okPdf(validated);
const optimized = await client.pdf.optimize({ pdf_handle: pdfHandle });
const blob = await client.data.downloadPdf({ pdf_handle: optimized.pdf_handle });
Python-kode for PDF-komprimering
API-referanse: data/upload, pdf/validate, pdf/optimize, data/download/pdf
# pip install python-decouple requests
"""Compress a PDF using MaraDocs. Set ACCOUNT_SECRET in .env or environment."""
import sys
import time
from pathlib import Path
import requests
from decouple import config
API_URL = "https://api.maradocs.io/v1"
def create_workspace() -> dict:
"""Create a workspace and return auth headers."""
r = requests.post(
f"{API_URL}/workspace",
headers={"Authorization": f"Bearer {config('ACCOUNT_SECRET')}"},
json={"subaccount": None},
)
ws = r.json()
return {"Authorization": f"Bearer {ws['workspace_secret']}"}
def upload_file(path: Path, auth: dict) -> dict:
"""Upload a file via two-step flow (signed URL + S3 POST). Returns unvalidated_file_handle."""
data = path.read_bytes()
resp = requests.post(
f"{API_URL}/data/upload",
headers={**auth, "Content-Type": "application/json"},
json={"name": path.name, "size": len(data)},
).json()
requests.post(
resp["post_url"],
data=resp.get("post_header", {}),
files={"file": (path.name, data, "application/pdf")},
)
return resp["unvalidated_file_handle"]
def run_job(path: str, payload: dict, auth: dict, timeout: int = 60) -> dict:
"""Run a job and poll until complete. Returns the result (unwraps response if present)."""
url = f"{API_URL}/{path}"
r = requests.post(url, headers=auth, json=payload).json()
job_id = r["job_id"]
start = time.time()
while time.time() - start < timeout:
poll_r = requests.get(f"{url}/{job_id}", headers=auth)
if poll_r.status_code == 200:
return poll_r.json()
raise TimeoutError(f"Job {path} timed out")
def download_pdf(pdf_handle: str, auth: dict) -> bytes:
"""Request signed URL and fetch PDF bytes."""
r = requests.post(
f"{API_URL}/data/download/pdf",
headers=auth,
json={"pdf_handle": pdf_handle},
)
info = r.json()
dl = requests.get(info["url"], headers=info.get("headers", {}))
return dl.content
def main() -> None:
pdf_path = Path(sys.argv[1]) if len(sys.argv) > 1 else Path("input.pdf")
auth = create_workspace()
handle = upload_file(pdf_path, auth)
validate = run_job("pdf/validate", {"unvalidated_file_handle": handle}, auth)
pdf_handle = validate["response"]["pdf_handle"]
optimized = run_job("pdf/optimize", {"pdf_handle": pdf_handle}, auth)
compressed_handle = optimized.get("response", optimized).get("pdf_handle")
Path("compressed.pdf").write_bytes(download_pdf(compressed_handle, auth))
print("compressed.pdf created")
if __name__ == "__main__":
main()
Oppsummering og neste steg
En PDF-komprimerings-API som reduserer filstørrelse med bevart kvalitet er tilgjengelig. MaraDocs håndterer optimaliseringen som del av en mer omfattende dokumentworkflow. Flere relaterte bruksområder: PDF-behandling, E-postbehandling og Bilde på blank side.
Prøv nå: MaraDocs API | TypeScript SDK
Abonner på nyhetsbrevet nå
Hold deg oppdatert og motta de siste nyhetene, artikler og ressurser via e-post.