Skip to content

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 ConvertRequest throws ArgumentNullException at the factory boundary (BR-SFC-001); every other single-document conversion failure is captured into a failed PdfResult rather than thrown (BR-SFC-010).
  • An unsupported file extension does not throw; it returns a non-throwing PdfResult carrying SourceConversionType.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).

Sources

  • PdfApi.SyncFusionCore\Convert\ConverterFactory.cs
  • PdfApi.SyncFusionCore\Convert\BaseConverter.cs
  • PdfApi.SyncFusionCore\Convert\WordConverter.cs
  • PdfApi.SyncFusionCore\Convert\ExcelConverter.cs
  • PdfApi.SyncFusionCore\Convert\RtfConverter.cs
  • PdfApi.SyncFusionCore\Convert\TxtConverter.cs
  • PdfApi.SyncFusionCore\Convert\ImageConverter.cs
  • PdfApi.SyncFusionCore\Convert\TiffConverter.cs
  • PdfApi.SyncFusionCore\Convert\PdfConverter.cs
  • PdfApi.SyncFusionCore\Convert\HtmlConverter.cs
  • PdfApi.SyncFusionCore\Extract\PdfExtractor.cs
  • PdfApi.SyncFusionCore\Merge\PdfMerger.cs
  • PdfApi.SyncFusionCore\PdfHelper.cs
  • PdfApi.SyncFusionCore\LicenseHelper.cs
  • PdfAPI\Services\Syncfusion\SyncfusionPdfService.cs
  • PdfAPI\Services\PdfService.cs
  • PdfAPI\Global.asax.cs