Skip to main content
All docs
V25.2
  • IAIDocProcessingService.SummarizeAsync(PdfDocumentProcessor, SummarizationMode, CancellationToken) Method

    Generates a brief summary of a document content.

    Namespace: DevExpress.AIIntegration.Docs

    Assembly: DevExpress.AIIntegration.Docs.v25.2.dll

    NuGet Package: DevExpress.AIIntegration.Docs

    Declaration

    Task<string> SummarizeAsync(
        PdfDocumentProcessor processor,
        SummarizationMode mode = SummarizationMode.Abstractive,
        CancellationToken cancellationToken = default(CancellationToken)
    )

    Parameters

    Name Type Description
    processor PdfDocumentProcessor

    The PdfDocumentProcessor instance which content should be summarized.

    Optional Parameters

    Name Type Default Description
    mode SummarizationMode Abstractive

    An enumeration value that indicates summarization mode.

    cancellationToken CancellationToken null

    The token that cancels the task.

    Returns

    Type Description
    Task<String>

    The response that contains AI-generated summary.

    Example

    How to: Obtain Summary and Add It to a PDF Page

    The following code snippet retrieves a summary and inserts it into a newly added first page:

    using DevExpress.AIIntegration.Docs;
    using DevExpress.Drawing;
    using DevExpress.Pdf;
    using System.Drawing;
    
    // See "Register AI extension service" section for implementation code
    var docProcessingService = defaultAIExtensionsContainer.CreateAIDocProcessingService();
    
    using var pdfDocumentProcessor = new PdfDocumentProcessor();
    pdfDocumentProcessor.LoadDocument("Documents/FirstLookExported.pdf");
    string summary = await docProcessingService.SummarizeAsync(
        pdfDocumentProcessor,
        SummarizationMode.Extractive,
        CancellationToken.None);
    
    PdfPage page = pdfDocumentProcessor.InsertNewPage(1, PdfPaperSize.Letter);
        PdfRectangle pageSize = page.CropBox;
    AddContentToPage(pdfDocumentProcessor, page, pageSize, summary);
    
    pdfDocumentProcessor.SaveDocument("result.pdf");
    
    
    // This method draws text on the inserted page
    void AddContentToPage(PdfDocumentProcessor pdfDocumentProcessor, PdfPage page, 
        PdfRectangle pageSize, string text) {
        using (PdfGraphics graphics = pdfDocumentProcessor.CreateGraphicsWorldSystem())
        {
            using (var textBrush = new DXSolidBrush(Color.FromArgb(255, Color.DarkOrange)))
            {
                DXFont font = new DXFont("Segoe UI", 12, DXFontStyle.Regular);
    
                // Calculate text size
                SizeF textSize = graphics.MeasureString(text, font, new PdfStringFormat());
    
                // Calculate an area to draw the text
                PointF textPoint = new PointF(0, (float)(pageSize.Height - 10));
                RectangleF rectangle = new RectangleF(
                    0, 10,
                    (float)pageSize.Width,
                    (float)(pageSize.Height / 2));
    
                // Draw text at the calculated area
                graphics.DrawString(text, font, textBrush, rectangle);
                graphics.AddToPageForeground(page);
            }
        }
    }
    
    See Also