Articles in this section
Category / Section

How to create a PDF and load to PdfViewer without saving to disk?

2 mins read

New PDF documents can be created from scratch using the PdfDocument class and save it into a stream, and the stream can be loaded into PdfViewer. So that, saving the document in the disk can be avoided.

 

Portable/.NET Standard

 

Add PdfViewer to the MainPage of the application.

 

XAML

<Grid x:Name="pdfViewGrid">
          <syncfusion:SfPdfViewer x:Name="pdfViewerControl" />
 </Grid>

 

Add a method named “CreateNewPDF” with return type Stream in the code behind of the MainPage. In this method create a PdfDocument instance, set its page size, add a new page to it, and draw the string “Hello World!” on the page. Now, save this PdfDocument instance to a stream and return this stream.

C#

private Stream CreateNewPDF()
{
      MemoryStream memoryStream = new MemoryStream();
 
      //Create a new PDF document
      PdfDocument document = new PdfDocument();
 
      // Set the page size
      document.PageSettings.Size = PdfPageSize.A4;
 
      //Add a page to the document
      PdfPage page = document.Pages.Add();
 
      //Create PDF graphics for the page
      PdfGraphics graphics = page.Graphics;
 
      //Set the font
      PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
 
      //Draw the text
      graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));
 
      //Save the document
      document.Save(memoryStream);
 
      //Close the document
      document.Close(true);
 
      if (memoryStream.CanSeek)
               memoryStream.Position = 0;
            
      return memoryStream;
}  

 

The previous example illustrates drawing a simple string on a single page PDF. Refer to the following documentation for creating PDF with more pages and different types of contents such as text, images, tables and more.

 

https://help.syncfusion.com/file-formats/pdf/working-with-document

 

In the constructor of the MainPage, call the CreateNewPDF method and load the acquired stream into the PdfViewer.

 

C#

public MainPage()
{
    InitializeComponent();
    Stream fileStream = CreateNewPDF();
    pdfViewerControl.LoadDocument(fileStream);
}

 

Sample link:

https://www.syncfusion.com/downloads/support/directtrac/general/ze/CreateAndLoadDemo1314775267

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments
Please sign in to leave a comment