Преобразование PS, EPS и XPS

PS, EPS и XPS Converter API Решение для .NET.

 

Всякий раз, когда возникает необходимость преобразовать файлы PostScript PS и Encapsulated PostScript EPS, а также документы XPS программным путем, .NET API может сделать это без проблем и преобразовать несколько файлов. Для PS и EPS API поддерживает операторы PostScript уровней 1-3 и большинство комментариев заголовков EPS, а также преобразует документы PostScript с максимальным соответствием, за исключением нескольких случаев шрифтов, а API работает с такими шрифтами, как Time New Roman.

Более того, для преобразования XPS-файлов API может добавлять или удалять страницы, работать с холстами, путями и элементами глифов, создавать фигуры векторной графики, текстовые строки, преобразовывать элементы схемы XPS и многое другое.

Представленное здесь решение API для .NET позволяет программно преобразовывать файлы таких форматов PDL, как PS, EPS и XPS, но вам может быть полезно посмотреть и попробовать кроссплатформенные решения, разработанные на основе этих собственных API.

Преобразование PostScript в PDF через C# .NET.

Чтобы преобразовать файлы PostScript PS и Encapsulated PostScript EPS в PDF через .NET API, вам необходимо выполнить следующие шаги:

  1. Загрузите файл PS или EPS, используя PsDocument Class .
  2. Установите сохранение PDF с помощью PdfSaveOptions Class .
  3. Используйте FileStream Class для выходного файла PDF.
  4. Класс PdfDevice путем инициализации с выходным объектом файлового потока PDF.
  5. Вызовите PsDocument.Save для преобразования PDF.
Код C# для преобразования PS EPS в PDF
// The path to the documents directory.
string dataDir = "definedDirectoryPath";
// Initialize PsDocument with the name of PostScript file.
PsDocument document = new PsDocument(dataDir + "input.ps");
// 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 PdfSaveOptions
// But if you need to specify sizeuse following line
//PdfSaveOptions options = new PdfSaveOptions(suppressErrorsnew, Aspose.Page.Drawing.Size(595x842));
// or
//saveOptions.Size = new Aspose.Page.Drawing.Size(595x842);
document.SaveAsPdf(dataDir + "outputPDF_out.pdf", options);
//Review errors
if (suppressErrors)
{
foreach (Exception ex in options.Exceptions)
{
Console.WriteLine(ex.Message);
}
}
 

Преобразование PostScript в изображения через C# .NET.

Для любого приложения конвертера EPS/PS PostScript в изображения хорошо работает следующий код C#, поэтому выполните следующие действия:

  1. Загрузите документ, используя класс PsDocument, имеющий входной файловый поток в качестве параметра.
  2. Создайте объект ImageSaveOptions Class и инициализируйте его с необходимыми настройками.
  3. Сохраните каждую страницу входного файла в изображение PNG, JPG, TIFF, BMP и т. д.
Код C# для преобразования PostScript в изображения
// The path to the documents directory.
string dataDir = "definedDirectoryPath";
// Initialize PsDocument with the name of PostScript file.
PsDocument document = new PsDocument(dataDir + "inputForImage.ps");
// 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();
//Set output image format.
options.ImageFormat = Aspose.Page.Drawing.Imaging.ImageFormat.Png;
// 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}" };
// Save PS document as array of image bytes, one bytes array for one page.
byte[][] imagesBytes = document.SaveAsImage(options);
//Save images bytes arrays as image files.
int i = 0;
foreach (byte[] imageBytes in imagesBytes)
{
string imagePath = Path.GetFullPath(dataDir + "out_image" + i.ToString() +"." + options.ImageFormat.ToString().ToLower());
using (FileStream fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write))
{
fs.Write(imageBytes, 0, imageBytes.Length);
}
i++;
}



FAQ

1. Могу ли я преобразовать Postscript с помощью этого решения API?

Aspose.Page имеет функциональные возможности, позволяющие конвертировать файлы PS, XPS и EPS в другие форматы онлайн или программно. Если вам нужно мгновенно преобразовать файлы онлайн, вы можете использовать кроссплатформенное приложение Конвертер файлов формата описания страницы .

2. Какие языки описания страниц поддерживаются конвертером?

Эта функция преобразования поддерживает файлы с расширениями .ps, .eps и .xps. Такие известные PDL, как PDF и SVG, представлены в виде отдельных решений в продуктах Aspose.

3. Функционал бесплатный?

Кросс-платформенные конвертеры бесплатны, когда для решения API вы можете получить бесплатную пробную версию, а затем купить продукт, если это необходимо.

 

Преобразование XPS в изображения JPG, PNG, BMP через C# .NET.

.NET API также поддерживает преобразование XPS в изображения BMP, JPG, PNG, TIFF и т. д. и предоставляет класс XpsDocument для операций XPS. Чтобы преобразовать XPS в изображение, выполните следующие действия:

  1. Загрузите файл XPS из потока.
  2. Инициализируйте соответствующие параметры сохранения изображения, например, для XPS в JPG это JpegSaveOptions а для XPS в PNGPngSaveOptions . Вот список всех XPS в образ сохранить параметры .
  3. Определите соответствующие параметры рендеринга, такие как SmoothingMode, Resolution, PageNumbers и т. д. Наконец, пройдитесь по разделам документа, чтобы сохранить их в изображения.
Код C# для преобразования XPS в изображение
// The path to the documents directory.
string dataDir = "definedDirectoryPath";
//Outut file
string outputFileName = dataDir + "XPStoImage_out.jpeg";
// Load XPS document form the XPS file
XpsDocument document = new XpsDocument(dataDir + "input.xps", new XpsLoadOptions());
// Initialize options object with necessary parameters.
JpegSaveOptions options = new JpegSaveOptions()
{
SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality,
Resolution = 300,
PageNumbers = new int[] { 1, 2, 6 }
};
// Save XPS document to the images byte arrays. The first dimension is for inner documents
/// and the second one is for pages within inner documents.
byte[][][] imagesBytes = document.SaveAsImage(options);
// Iterate through document partitions (fixed documents, in XPS terms)
for (int i = 0; i < imagesBytes.Length; i++)
{
// Iterate through partition pages
for (int j = 0; j < imagesBytes[i].Length; j++)
{
// Initialize image output stream
using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) + Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) +
Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write))
// Write image
imageStream.Write(imagesBytes[i][j], 0, imagesBytes[i][j].Length);
}
}
 
  

Support and Learning Resources