Convert EPS to PDF using .NET API
Overview
This article explains how to convert EPS to PDF using C#. It covers the following topics.
- C# EPS to PDF
- C# Convert EPS to PDF
- C# PDF from EPS
- C# How to Convert EPS to PDF Programmatically
- C# Save EPS as PDF
- C# Generate PDF from EPS
Also See
C# EPS to PDF Conversion
You can check the quality of Aspose.Page EPS to PDF conversion and view the results via free online EPS to PDF Converter
Aspose.Page for .NET EPS to PDF converter allows to convert Encapsulated PostScript (EPS) file to PDF document with using of any language supported by .Net platform: C#, VB, J#.
Steps: EPS to PDF Converter API Code in C#
It is necessary to do several steps in order to perform EPS to PDF conversion:
- Initialize an input stream for input EPS file.
- Initialize an output stream for output PDF document.
- Create an instance of PsDocument from created earlier input stream.
- Use PdfSaveOptions to specify AdditionalFontsFolder and SuppressError boolean value.
- Create an instance of PdfDevice from created earlier output stream.
- Save PostScript document as PDF with PDF save options.
- If SuppressErrors value was true, as it is by default, It is possible to see what errors were thrown during conversion of EPS to PDF and saved in Exceptions list.
Following C# code snippet shows how to convert EPS to PDF document in C#:
{{#if_output 'BMP'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Bmp; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'EMF'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Emf; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'JPG'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Jpeg; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'PDF'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Initialize PDF output stream System.IO.FileStream pdfStream = new System.IO.FileStream(dataDir + "outputPDF_out.pdf", System.IO.FileMode.Create, System.IO.FileAccess.Write); // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "input.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. PdfSaveOptions options = new PdfSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default page size is 595x842 and it is not mandatory to set it in PdfDevice Aspose.Page.EPS.Device.PdfDevice device = new Aspose.Page.EPS.Device.PdfDevice(pdfStream); // But if you need to specify size use following line //Aspose.Page.EPS.Device.PdfDevice device = new Aspose.Page.EPS.Device.PdfDevice(pdfStream, new System.Drawing.Size(595, 842)); try { document.Save(device, options); } finally { psStream.Close(); pdfStream.Close(); } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'PNG'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Png; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'TIFF'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Tiff; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}} {{#if_output 'WMF'}} // For complete examples and data files, please go to https://github.com/aspose-page/Aspose.Page-for-.NET // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Specifies image format System.Drawing.Imaging.ImageFormat imageFormat = System.Drawing.Imaging.ImageFormat.Wmf; // Initialize PostScript input stream System.IO.FileStream psStream = new System.IO.FileStream(dataDir + "inputForImage.eps", System.IO.FileMode.Open, System.IO.FileAccess.Read); PsDocument document = new PsDocument(psStream); // If you want to convert Postscript file despite of minor errors set this flag bool suppressErrors = true; //Initialize options object with necessary parameters. ImageSaveOptions options = new ImageSaveOptions(suppressErrors); // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included. options.AdditionalFontsFolders = new string[] { @"{FONT_FOLDER}" }; // Default image size is 595x842 and it is not mandatory to set it in ImageDevice ImageDevice device = new ImageDevice(new System.Drawing.Size(imageFormat); // But if you need to specify size use constructor with two parameters //ImageDevice device = new ImageDevice(new System.Drawing.Size(595, 842), imageFormat); try { document.Save(device, options); } finally { psStream.Close(); } byte[][] imagesBytes = device.ImagesBytes; int i = 0; foreach (byte[] imageBytes in imagesBytes) { string imagePath = Path.GetFullPath("out_image" + i.ToString() +"." + imageFormat.ToString().ToLower()); using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write)) { fs.Write(imageBytes, 0, imageBytes.Length); } i++; } //Review errors if (suppressErrors) { foreach (PsConverterException ex in options.Exceptions) { Console.WriteLine(ex.Message); } } {{/if_output}}
Let’s consider
PdfSaveOptions. Using this class we can assign different conversion parameters while converting EPS to PDF.
- AdditionalFontsFolder specifies locations where to find fonts. System fonts folders are always included by default.
- SuppressError controls behaviour of EPS to PDF converter when non-critical errors are appeared. If value is true than it is possible to view a list of such errors after conversion in Exceptions field. Default value is true.
- Debug allows outputting debug information to console. Default value is false.
Evaluate EPS to PDF conversion online on our EPS to PDF Converter. You can convert several EPS files to PDF at once and dowload results in a few seconds.
You can download examples and data files from
GitHub.