ASP.NET PowerPoint Viewer Control
How to open, view a PowerPoint .pptx document online in web browser without Office, interop using C# ASP.NET
How to read, display, annotate, redact, edit, convert Microsoft Office PowerPoint in web browser using C# ASP.NET PDF Viewer control.
EdgePDF is an ASP.NET PDF viewer and editor web control. However you will also read, view Office PowerPoint .pptx file in web browser with EdgePDF using C# ASP.NET
- Open, read a PowerPoint file from server side document system or database
- EdgePDF will automatically convert loaded PowerPoint to PDF document in ASP.NET web server
- Converted PDF orientation could be Portrait or Landscape
- View, comment PowerPoint content online in web browser
- No Office, interop installed on ASP.NET web server
How to view a PowerPoint file programmatically in asp.net using C#
Preparation
To run the following tutorial successfully, we need the following setup ready.
- Install EdgePDF demo project in IIS
- A demo Office PowerPoint .pptx file in folder C:\temp\powerpoint-1.pptx
How to open, view PowerPoint .pptx online in web browser in ASP.NET C#?
The following steps and C# demo source code will show how to read, view PowerPoint one slide per PDF page in web browser using ASP.NET C# code.
After you have completed the following guide, you can open, view a Office PowerPoint file online in web browser through url (a sample url
http://localhost:56643/?yourtarget=powerpoint-1.pptx)
- Open file UserCommandProcessHandler.ashx from {EdgePDF demo project}/RasterEdge_Resource_Files/
- Go to method FileProcess()
- Create a new byte[] object with viewed PPTX file in byte array
- Call method REProcessControl.PageLoadFile() to load, view PowerPoint file in EdgePDF. The PowerPoint file (powerpoint-1.pptx) has been converted into PDF file and rendered in EdgePDF online in web browser
public override PDFWebDocument FileProcess()
{
HttpRequest request = this.Context.Request;
if (!String.IsNullOrEmpty(request.QueryString["yourtarget"]))
{
String docid = request.QueryString["yourtarget"];
byte[] dataBytes = System.IO.File.ReadAllBytes(@"C:\\temp\" + docid);
return REProcessControl.PageLoadFile(request, this.Manager, dataBytes, docid);
}
else
{
Logger.Log(">>> Unknown load file mode. Load default file defined in Web.config.", LogType.DEBUG);
// load default file. defined in Web.config
return REProcessControl.PageLoadFile(request, this.Manager, "", LoadType.Server);
}
}
How to read, view a PowerPoint file 2 slides in one PDF portrait page in web browser in ASP.NET C#?
The following steps and C# demo source code will help to enable your ASP.NET project read, view a Microsoft PowerPoint file in web browser using ASP.NET C# code.
After you have completed the following guide, you can open, view a Office PowerPoint file (2 slides per PDF page) online in web browser through url (a sample url
http://localhost:56643/?yourtarget=powerpoint-1.pptx)
- Open file UserCommandProcessHandler.ashx from {EdgePDF demo project}/RasterEdge_Resource_Files/
- Go to method FileProcess()
- Create a new PPTXDocument object with PowerPoint file loaded
- Call method convertPPTX2PDF2SlidesInOnePage() to convert pptx to pdf with 2 slides in one PDF page (PDF page orientation is portrait)
- Call method REProcessControl.PageLoadFile() to load, view PowerPoint file in EdgePDF. The PowerPoint file (powerpoint-1.pptx) has been converted into PDF file and rendered in EdgePDF online in web browser
public override PDFWebDocument FileProcess()
{
HttpRequest request = this.Context.Request;
if (!String.IsNullOrEmpty(request.QueryString["yourtarget"]))
{
String docid = request.QueryString["yourtarget"];
PPTXDocument pptxDoc = new PPTXDocument(System.IO.File.ReadAllBytes(@"C:\\temp\" + docid));
PDFDocument convertedPDFDoc = convertPPTX2PDF2SlidesInOnePage(pptxDoc);
return REProcessControl.PageLoadFile(request, this.Manager, convertedPDFDoc, docid);
}
else
{
Logger.Log(">>> Unknown load file mode. Load default file defined in Web.config.", LogType.DEBUG);
// load default file. defined in Web.config
return REProcessControl.PageLoadFile(request, this.Manager, "", LoadType.Server);
}
}
private PDFDocument convertPPTX2PDF2SlidesInOnePage(PPTXDocument pptxDoc)
{
//Step 1: convert PPTX to PDF
MemoryStream tempPDFStream = new MemoryStream();
pptxDoc.ConvertToDocument(DocumentType.PDF, tempPDFStream);
// Step 2: combine pages
PageArrangeOptions ops = new PageArrangeOptions();
// set width of new page to 8.5 inches
ops.PageWidth = 8.5F;
// set height of new page to 11 inches
ops.PageHeight = 11F;
// set page margins in inch
ops.TopMargin = 1F;
ops.BottomMargin = 1F;
ops.LeftMargin = 0.5F;
ops.RightMargin = 0.5F;
// properties to arrange region for each page
// 1 page per row
ops.ColumnsPerPage = 1;
// 2 pages per column
ops.RowsPerPage = 2;
// 0.1 inches interval between columns
ops.ColumnInterval = 0.1F;
// 0.1 inches interval between rows
ops.RowInterval = 0.1F;
// set fit mode for each page
ops.FitMode = PageArrangeOptions.PageFitMode.AspectFit;
// disable region border
ops.RegionBorder.Width = 0;
// enable page border
ops.PageBorder.Width = 1;
ops.PageBorder.Color = Color.Blue;
MemoryStream outputPDFStream = new MemoryStream();
PDFDocument.CombinePages(tempPDFStream, outputPDFStream, ops);
return new PDFDocument(outputPDFStream);
}
How to view a PowerPoint file 4 slides in one PDF landscape page in web browser in ASP.NET C#?
The following steps and C# demo source code will help to setup a demo ASP.NET project, which allows you to read, view a Microsoft PowerPoint file in web browser using ASP.NET C# code.
After you have completed the following guide, you can open, view a Office PowerPoint file online in web browser through url (a sample url
http://localhost:56643/?yourtarget=powerpoint-1.pptx)
- Open file UserCommandProcessHandler.ashx from {EdgePDF demo project}/RasterEdge_Resource_Files/
- Go to method FileProcess()
- Create a new PPTXDocument object with PowerPoint file loaded
- Call method convertPPTX2PDF4SlidesInOnePage() to convert pptx to pdf with 4 slides in one PDF page (PDF page orientation is landscape)
- Call method REProcessControl.PageLoadFile() to load, view PowerPoint file in EdgePDF. The PowerPoint file (powerpoint-1.pptx) has been converted into PDF file and rendered in EdgePDF online in web browser
public override PDFWebDocument FileProcess()
{
HttpRequest request = this.Context.Request;
if (!String.IsNullOrEmpty(request.QueryString["yourtarget"]))
{
String docid = request.QueryString["yourtarget"];
PPTXDocument pptxDoc = new PPTXDocument(System.IO.File.ReadAllBytes(@"C:\\temp\" + docid));
PDFDocument convertedPDFDoc = convertPPTX2PDF4SlidesInOnePage(pptxDoc);
return REProcessControl.PageLoadFile(request, this.Manager, convertedPDFDoc, docid);
}
else
{
Logger.Log(">>> Unknown load file mode. Load default file defined in Web.config.", LogType.DEBUG);
// load default file. defined in Web.config
return REProcessControl.PageLoadFile(request, this.Manager, "", LoadType.Server);
}
}
private PDFDocument convertPPTX2PDF4SlidesInOnePage(PPTXDocument pptxDoc)
{
//Step 1: convert PPTX to PDF
MemoryStream tempPDFStream = new MemoryStream();
pptxDoc.ConvertToDocument(DocumentType.PDF, tempPDFStream);
// Step 2: combine pages
PageArrangeOptions ops = new PageArrangeOptions();
// set width of new page to 11 inches
ops.PageWidth = 11F;
// set height of new page to 8.5 inches
ops.PageHeight = 8.5F;
// set page margins in inch
ops.TopMargin = 1F;
ops.BottomMargin = 1F;
ops.LeftMargin = 0.5F;
ops.RightMargin = 0.5F;
// properties to arrange region for each page
// 1 page per row
ops.ColumnsPerPage = 2;
// 2 pages per column
ops.RowsPerPage = 2;
// 0.1 inches interval between columns
ops.ColumnInterval = 0.1F;
// 0.1 inches interval between rows
ops.RowInterval = 0.1F;
// set fit mode for each page
ops.FitMode = PageArrangeOptions.PageFitMode.AspectFit;
// disable region border
ops.RegionBorder.Width = 0;
// enable page border
ops.PageBorder.Width = 1;
ops.PageBorder.Color = Color.Blue;
MemoryStream outputPDFStream = new MemoryStream();
PDFDocument.CombinePages(tempPDFStream, outputPDFStream, ops);
return new PDFDocument(outputPDFStream);
}