PdfAPI.SyncFusionCore operations and processes¶
This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/. This library performs no database access, so no operation carries a Tables or SQL citation.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
|---|---|---|---|---|---|
| Convert a source document to PDF | Dispatch a conversion request to the converter matching the source file extension. | Caller request (SyncfusionPdfService.Convert) |
ConvertRequest |
PdfResult |
BR-SFC-001, BR-SFC-002, BR-SFC-003 |
| Execute a single conversion (converter template) | Run the shared conversion pipeline: timing, error capture, and PdfResult assembly around the per-format ConvertItem hook. |
Called by ConverterFactory.Convert |
Stream, ConvertRequest |
PdfResult |
BR-SFC-006, BR-SFC-007, BR-SFC-010 |
| Word document to PDF | Convert a .doc/.docx source to PDF via the Syncfusion Word-to-PDF engine. |
Called by OP-SFC-001 for doc/docx |
Stream, ConvertRequest |
PDF bytes | BR-SFC-011 |
| Excel workbook to PDF | Convert an .xls/.xlsx workbook to PDF via the Syncfusion Excel-to-PDF engine. |
Called by OP-SFC-001 for xls/xlsx |
Stream, ConvertRequest |
PDF bytes | BR-SFC-011 |
| RTF document to PDF | Render RTF text into a metafile and draw it across as many pages as needed. | Called by OP-SFC-001 for rtf |
Stream, ConvertRequest |
PDF bytes | BR-SFC-012, BR-SFC-013 |
| Plain text to PDF | Paginate plain text at a fixed line count per page and render each block with fixed typography. | Called by OP-SFC-001 for txt |
Stream, ConvertRequest |
PDF bytes | BR-SFC-014, BR-SFC-015 |
| Raster image to PDF | Draw a single raster image (GIF/JPEG/PNG) into a single-page PDF. | Called by OP-SFC-001 for gif/jpg/jpeg/png |
Stream, ConvertRequest |
PDF bytes | BR-SFC-016, BR-SFC-017 |
| TIFF to multi-page PDF | Draw one PDF page per frame of a multi-frame TIFF image. | Called by OP-SFC-001 for tif/tiff |
Stream, ConvertRequest |
PDF bytes | BR-SFC-018, BR-SFC-019 |
| PDF pass-through or PDF/A upgrade | Return a PDF source unchanged, or upgrade it to PDF/A conformance. | Called by OP-SFC-001 for pdf |
Stream, ConvertRequest |
PDF bytes or null |
BR-SFC-020, BR-SFC-021 |
| HTML to PDF | Render HTML to PDF using the Syncfusion Internet Explorer-based engine. | Called by OP-SFC-001 for html |
Stream, ConvertRequest |
PDF bytes | BR-SFC-022, BR-SFC-023 |
| Extract page ranges from a PDF | Build a new PDF from selected page ranges of a source PDF, honoring ascending/descending and open-ended ranges. | Caller request (SyncfusionPdfService.Extract); also called internally by OP-SFC-012 |
ExtractPagesRequest |
PDF bytes | BR-SFC-024, BR-SFC-025, BR-SFC-026, BR-SFC-027 |
| Merge document ranges into one PDF | Merge multiple document ranges into a single PDF, optionally applying a post-merge PDF/A pass. | Caller request (SyncfusionPdfService via new PdfMerger(environmentService, logService)) |
MergeRequest, optional trackingId |
PdfResult |
BR-SFC-029, BR-SFC-030, BR-SFC-031, BR-SFC-032, BR-SFC-033 |
| Inspect and flatten PDF form fields | Detect AcroForm fields and, when present, flatten them to make them non-editable. | PdfService call sites, when the caller opts out of the remote client |
byte[] PDF |
bool or byte[] |
BR-SFC-034, BR-SFC-035, BR-SFC-036 |
| Build an application exception detail | Construct a diagnostic ApplicationExceptionDetail record for a caught exception. |
Called by OP-SFC-012 step 6 and four PdfAPI\Services\ call sites |
IEnvironmentService, page label, message, Exception |
ApplicationExceptionDetail |
BR-SFC-037, BR-SFC-038 |
| Register the Syncfusion runtime license | Register the embedded Syncfusion license key with the Syncfusion runtime once per process. | PdfAPI\Global.asax.cs (Application_Start) |
none | none | BR-SFC-039 |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations.
flowchart TD
Start([ConvertRequest received]) --> Null{"Request null?"}
Null -->|Yes| ThrowErr([ArgumentNullException])
Null -->|No| Norm[Normalize file extension]
Norm --> Dispatch{"Extension matches<br>a converter?"}
Dispatch -->|"Word/Excel/RTF/Image/<br>TIFF/HTML/PDF"| Convert[Run BaseConverter template]
Dispatch -->|Text| ConvertText[Convert text to PDF]
Dispatch -->|No match| Unknown([Return Unknown result])
ConvertText --> Recurse["Recursively convert<br>produced PDF for PDF/A"]
Recurse --> Convert
Convert --> Result([Return PdfResult])
Failure and edge-case behavior¶
- A null
ConvertRequestthrowsArgumentNullExceptionat the factory boundary (BR-SFC-001); every other single-document conversion failure is captured into a failedPdfResultrather than thrown (BR-SFC-010). - An unsupported file extension does not throw; it returns a non-throwing
PdfResultcarryingSourceConversionType.Unknown(BR-SFC-005). - Extraction and merge failures propagate to the caller instead of being captured (BR-SFC-028), except that a failure in the merge's post-processing PDF/A pass is caught and logged, not thrown (BR-SFC-032).
- Page ranges beyond the end of a document are clamped or skipped rather than raising an error (BR-SFC-025).
Related documentation¶
Sources¶
PdfApi.SyncFusionCore\Convert\ConverterFactory.csPdfApi.SyncFusionCore\Convert\BaseConverter.csPdfApi.SyncFusionCore\Convert\WordConverter.csPdfApi.SyncFusionCore\Convert\ExcelConverter.csPdfApi.SyncFusionCore\Convert\RtfConverter.csPdfApi.SyncFusionCore\Convert\TxtConverter.csPdfApi.SyncFusionCore\Convert\ImageConverter.csPdfApi.SyncFusionCore\Convert\TiffConverter.csPdfApi.SyncFusionCore\Convert\PdfConverter.csPdfApi.SyncFusionCore\Convert\HtmlConverter.csPdfApi.SyncFusionCore\Extract\PdfExtractor.csPdfApi.SyncFusionCore\Merge\PdfMerger.csPdfApi.SyncFusionCore\PdfHelper.csPdfApi.SyncFusionCore\LicenseHelper.csPdfAPI\Services\Syncfusion\SyncfusionPdfService.csPdfAPI\Services\PdfService.csPdfAPI\Global.asax.cs