Skip to content

Commit d03b36a

Browse files
datalogics-cgreendatalogics-kam
authored andcommitted
Split up /pdf methods
- Split by input format "families" - eml - HTML - image - Office - PostScript - Leave URL input separate, as it was Assisted-by: Codex
1 parent 3f86960 commit d03b36a

19 files changed

Lines changed: 2096 additions & 588 deletions

src/pdfrest/client.py

Lines changed: 267 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,12 @@
7575
from .models._internal import (
7676
BasePdfRestGraphicPayload,
7777
BmpPdfRestPayload,
78+
ConvertEmailToPdfPayload,
79+
ConvertHtmlToPdfPayload,
80+
ConvertImageToPdfPayload,
81+
ConvertOfficeToPdfPayload,
82+
ConvertPostscriptToPdfPayload,
7883
ConvertToMarkdownPayload,
79-
ConvertToPdfPayload,
8084
ConvertUrlsToPdfPayload,
8185
DeletePayload,
8286
ExtractImagesPayload,
@@ -3183,7 +3187,7 @@ def rasterize_pdf(
31833187
timeout=timeout,
31843188
)
31853189

3186-
def convert_to_pdf(
3190+
def convert_office_to_pdf(
31873191
self,
31883192
file: PdfRestFile | Sequence[PdfRestFile],
31893193
*,
@@ -3201,7 +3205,7 @@ def convert_to_pdf(
32013205
extra_body: Body | None = None,
32023206
timeout: TimeoutTypes | None = None,
32033207
) -> PdfRestFileBasedResponse:
3204-
"""Convert a supported file type to PDF."""
3208+
"""Convert a Microsoft Office file (Word, Excel, PowerPoint) to PDF."""
32053209

32063210
payload: dict[str, Any] = {"files": file}
32073211
if output is not None:
@@ -3226,7 +3230,135 @@ def convert_to_pdf(
32263230
return self._post_file_operation(
32273231
endpoint="/pdf",
32283232
payload=payload,
3229-
payload_model=ConvertToPdfPayload,
3233+
payload_model=ConvertOfficeToPdfPayload,
3234+
extra_query=extra_query,
3235+
extra_headers=extra_headers,
3236+
extra_body=extra_body,
3237+
timeout=timeout,
3238+
)
3239+
3240+
def convert_postscript_to_pdf(
3241+
self,
3242+
file: PdfRestFile | Sequence[PdfRestFile],
3243+
*,
3244+
output: str | None = None,
3245+
compression: PdfConversionCompression | None = None,
3246+
downsample: PdfConversionDownsample | None = None,
3247+
extra_query: Query | None = None,
3248+
extra_headers: AnyMapping | None = None,
3249+
extra_body: Body | None = None,
3250+
timeout: TimeoutTypes | None = None,
3251+
) -> PdfRestFileBasedResponse:
3252+
"""Convert a PostScript or EPS file to PDF."""
3253+
3254+
payload: dict[str, Any] = {"files": file}
3255+
if output is not None:
3256+
payload["output"] = output
3257+
if compression is not None:
3258+
payload["compression"] = compression
3259+
if downsample is not None:
3260+
payload["downsample"] = downsample
3261+
3262+
return self._post_file_operation(
3263+
endpoint="/pdf",
3264+
payload=payload,
3265+
payload_model=ConvertPostscriptToPdfPayload,
3266+
extra_query=extra_query,
3267+
extra_headers=extra_headers,
3268+
extra_body=extra_body,
3269+
timeout=timeout,
3270+
)
3271+
3272+
def convert_email_to_pdf(
3273+
self,
3274+
file: PdfRestFile | Sequence[PdfRestFile],
3275+
*,
3276+
output: str | None = None,
3277+
extra_query: Query | None = None,
3278+
extra_headers: AnyMapping | None = None,
3279+
extra_body: Body | None = None,
3280+
timeout: TimeoutTypes | None = None,
3281+
) -> PdfRestFileBasedResponse:
3282+
"""Convert an RFC822 email file to PDF."""
3283+
3284+
payload: dict[str, Any] = {"files": file}
3285+
if output is not None:
3286+
payload["output"] = output
3287+
3288+
return self._post_file_operation(
3289+
endpoint="/pdf",
3290+
payload=payload,
3291+
payload_model=ConvertEmailToPdfPayload,
3292+
extra_query=extra_query,
3293+
extra_headers=extra_headers,
3294+
extra_body=extra_body,
3295+
timeout=timeout,
3296+
)
3297+
3298+
def convert_image_to_pdf(
3299+
self,
3300+
file: PdfRestFile | Sequence[PdfRestFile],
3301+
*,
3302+
output: str | None = None,
3303+
extra_query: Query | None = None,
3304+
extra_headers: AnyMapping | None = None,
3305+
extra_body: Body | None = None,
3306+
timeout: TimeoutTypes | None = None,
3307+
) -> PdfRestFileBasedResponse:
3308+
"""Convert a supported image file to PDF."""
3309+
3310+
payload: dict[str, Any] = {"files": file}
3311+
if output is not None:
3312+
payload["output"] = output
3313+
3314+
return self._post_file_operation(
3315+
endpoint="/pdf",
3316+
payload=payload,
3317+
payload_model=ConvertImageToPdfPayload,
3318+
extra_query=extra_query,
3319+
extra_headers=extra_headers,
3320+
extra_body=extra_body,
3321+
timeout=timeout,
3322+
)
3323+
3324+
def convert_html_to_pdf(
3325+
self,
3326+
file: PdfRestFile | Sequence[PdfRestFile],
3327+
*,
3328+
output: str | None = None,
3329+
compression: PdfConversionCompression | None = None,
3330+
downsample: PdfConversionDownsample | None = None,
3331+
page_size: HtmlPageSize | None = None,
3332+
page_margin: str | None = None,
3333+
page_orientation: HtmlPageOrientation | None = None,
3334+
web_layout: HtmlWebLayout | None = None,
3335+
extra_query: Query | None = None,
3336+
extra_headers: AnyMapping | None = None,
3337+
extra_body: Body | None = None,
3338+
timeout: TimeoutTypes | None = None,
3339+
) -> PdfRestFileBasedResponse:
3340+
"""Convert an uploaded HTML file to PDF."""
3341+
3342+
payload: dict[str, Any] = {"files": file}
3343+
if output is not None:
3344+
payload["output"] = output
3345+
if compression is not None:
3346+
payload["compression"] = compression
3347+
if downsample is not None:
3348+
payload["downsample"] = downsample
3349+
if page_size is not None:
3350+
payload["page_size"] = page_size
3351+
if page_margin is not None:
3352+
payload["page_margin"] = page_margin
3353+
if page_orientation is not None:
3354+
payload["page_orientation"] = page_orientation
3355+
if web_layout is not None:
3356+
payload["web_layout"] = web_layout
3357+
3358+
return self._post_file_operation(
3359+
endpoint="/pdf",
3360+
payload=payload,
3361+
payload_model=ConvertHtmlToPdfPayload,
32303362
extra_query=extra_query,
32313363
extra_headers=extra_headers,
32323364
extra_body=extra_body,
@@ -4657,7 +4789,7 @@ async def rasterize_pdf(
46574789
timeout=timeout,
46584790
)
46594791

4660-
async def convert_to_pdf(
4792+
async def convert_office_to_pdf(
46614793
self,
46624794
file: PdfRestFile | Sequence[PdfRestFile],
46634795
*,
@@ -4675,7 +4807,7 @@ async def convert_to_pdf(
46754807
extra_body: Body | None = None,
46764808
timeout: TimeoutTypes | None = None,
46774809
) -> PdfRestFileBasedResponse:
4678-
"""Asynchronously convert a supported file type to PDF."""
4810+
"""Asynchronously convert a Microsoft Office file to PDF."""
46794811

46804812
payload: dict[str, Any] = {"files": file}
46814813
if output is not None:
@@ -4700,7 +4832,135 @@ async def convert_to_pdf(
47004832
return await self._post_file_operation(
47014833
endpoint="/pdf",
47024834
payload=payload,
4703-
payload_model=ConvertToPdfPayload,
4835+
payload_model=ConvertOfficeToPdfPayload,
4836+
extra_query=extra_query,
4837+
extra_headers=extra_headers,
4838+
extra_body=extra_body,
4839+
timeout=timeout,
4840+
)
4841+
4842+
async def convert_postscript_to_pdf(
4843+
self,
4844+
file: PdfRestFile | Sequence[PdfRestFile],
4845+
*,
4846+
output: str | None = None,
4847+
compression: PdfConversionCompression | None = None,
4848+
downsample: PdfConversionDownsample | None = None,
4849+
extra_query: Query | None = None,
4850+
extra_headers: AnyMapping | None = None,
4851+
extra_body: Body | None = None,
4852+
timeout: TimeoutTypes | None = None,
4853+
) -> PdfRestFileBasedResponse:
4854+
"""Asynchronously convert a PostScript or EPS file to PDF."""
4855+
4856+
payload: dict[str, Any] = {"files": file}
4857+
if output is not None:
4858+
payload["output"] = output
4859+
if compression is not None:
4860+
payload["compression"] = compression
4861+
if downsample is not None:
4862+
payload["downsample"] = downsample
4863+
4864+
return await self._post_file_operation(
4865+
endpoint="/pdf",
4866+
payload=payload,
4867+
payload_model=ConvertPostscriptToPdfPayload,
4868+
extra_query=extra_query,
4869+
extra_headers=extra_headers,
4870+
extra_body=extra_body,
4871+
timeout=timeout,
4872+
)
4873+
4874+
async def convert_email_to_pdf(
4875+
self,
4876+
file: PdfRestFile | Sequence[PdfRestFile],
4877+
*,
4878+
output: str | None = None,
4879+
extra_query: Query | None = None,
4880+
extra_headers: AnyMapping | None = None,
4881+
extra_body: Body | None = None,
4882+
timeout: TimeoutTypes | None = None,
4883+
) -> PdfRestFileBasedResponse:
4884+
"""Asynchronously convert an RFC822 email file to PDF."""
4885+
4886+
payload: dict[str, Any] = {"files": file}
4887+
if output is not None:
4888+
payload["output"] = output
4889+
4890+
return await self._post_file_operation(
4891+
endpoint="/pdf",
4892+
payload=payload,
4893+
payload_model=ConvertEmailToPdfPayload,
4894+
extra_query=extra_query,
4895+
extra_headers=extra_headers,
4896+
extra_body=extra_body,
4897+
timeout=timeout,
4898+
)
4899+
4900+
async def convert_image_to_pdf(
4901+
self,
4902+
file: PdfRestFile | Sequence[PdfRestFile],
4903+
*,
4904+
output: str | None = None,
4905+
extra_query: Query | None = None,
4906+
extra_headers: AnyMapping | None = None,
4907+
extra_body: Body | None = None,
4908+
timeout: TimeoutTypes | None = None,
4909+
) -> PdfRestFileBasedResponse:
4910+
"""Asynchronously convert a supported image file to PDF."""
4911+
4912+
payload: dict[str, Any] = {"files": file}
4913+
if output is not None:
4914+
payload["output"] = output
4915+
4916+
return await self._post_file_operation(
4917+
endpoint="/pdf",
4918+
payload=payload,
4919+
payload_model=ConvertImageToPdfPayload,
4920+
extra_query=extra_query,
4921+
extra_headers=extra_headers,
4922+
extra_body=extra_body,
4923+
timeout=timeout,
4924+
)
4925+
4926+
async def convert_html_to_pdf(
4927+
self,
4928+
file: PdfRestFile | Sequence[PdfRestFile],
4929+
*,
4930+
output: str | None = None,
4931+
compression: PdfConversionCompression | None = None,
4932+
downsample: PdfConversionDownsample | None = None,
4933+
page_size: HtmlPageSize | None = None,
4934+
page_margin: str | None = None,
4935+
page_orientation: HtmlPageOrientation | None = None,
4936+
web_layout: HtmlWebLayout | None = None,
4937+
extra_query: Query | None = None,
4938+
extra_headers: AnyMapping | None = None,
4939+
extra_body: Body | None = None,
4940+
timeout: TimeoutTypes | None = None,
4941+
) -> PdfRestFileBasedResponse:
4942+
"""Asynchronously convert an uploaded HTML file to PDF."""
4943+
4944+
payload: dict[str, Any] = {"files": file}
4945+
if output is not None:
4946+
payload["output"] = output
4947+
if compression is not None:
4948+
payload["compression"] = compression
4949+
if downsample is not None:
4950+
payload["downsample"] = downsample
4951+
if page_size is not None:
4952+
payload["page_size"] = page_size
4953+
if page_margin is not None:
4954+
payload["page_margin"] = page_margin
4955+
if page_orientation is not None:
4956+
payload["page_orientation"] = page_orientation
4957+
if web_layout is not None:
4958+
payload["web_layout"] = web_layout
4959+
4960+
return await self._post_file_operation(
4961+
endpoint="/pdf",
4962+
payload=payload,
4963+
payload_model=ConvertHtmlToPdfPayload,
47044964
extra_query=extra_query,
47054965
extra_headers=extra_headers,
47064966
extra_body=extra_body,

0 commit comments

Comments
 (0)