Конвертация PS, EPS и XPS

API решение для конвертера PS, EPS и XPS для Java

 

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

Кроме того, для преобразования файлов XPS API может добавлять или удалять страницы, работать с холстами (canvases), контурами (paths) и элементами глифов (glyphs), создавать формы векторной графики и текстовые строки, конвертировать элементы структуры XPS и многое другое.

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

Конвертация PostScript в PDF через Java.

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

  1. Загрузите файл PS или EPS с помощью класса PsDocument .
  2. Настройте параметры сохранения PDF с помощью класса PdfSaveOptions .
  3. Используйте класс FileStream для выходного PDF-файла.
  4. Используйте класс PdfDevice , принимающий объект FileOutputStream в качестве параметра.
  5. Вызовите PsDocument.Save для сохранения файла в формате PDF.
Java-код для конвертации PS EPS в PDF
// The path to the documents directory.
String dataDir = Utils.getDataDir();
// Initialize PS document with PostScript file
PsDocument document = new PsDocument(dataDir + "input.ps");

// If you want to convert Postscript file despite of minor errors set this flag
boolean suppressErrors = true;

//Initialize options object with necessary parameters.
PdfSaveOptions options = new PdfSaveOptions(suppressErrors);
// Default page size is 595x842 and it is not mandatory to set it in PdfDevice
// But if you need to specify size and image format use following line
// PdfSaveOptions options = new PdfSaveOptions(suppressErrors, new Dimension(595, 842));
// If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
//options.setAdditionalFontsFolders(new String [] {"FONTS_FOLDER"});

// Save PS document to PDF file
document.saveAsPdf(dataDir + "PStoPDF.pdf", options);

//Review errors
if (suppressErrors) {
    for (Exception ex : pdfOptions.getExceptions()) {
            System.out.println(ex.getMessage());
        }
}
 

Конвертация PostScript в изображения через Java.

Для любого приложения-конвертера PostScript EPS/PS в изображения следующий Java-код работает хорошо; выполните следующие шаги:

  1. Инициализируйте входной поток исходным файлом PS.
  2. Создайте объект PsDocument с созданным входным потоком PS в качестве параметра
  3. Используйте ImageSaveOptions для указания AdditionalFontsFolder, SuppressError и т. д.
  4. Используйте объект ImageDevice для указания типа и размера изображения, если это необходимо.
  5. Сохраните файл PS/EPS как изображение с параметрами сохранения изображения в виде массива массивов байтов. Один массив байтов для одной страницы входного файла.
Java-код для конвертации PostScript в изображения
// The path to the documents directory.
String dataDir = Utils.getDataDir();
 // Initialize PS document with PostScript file
PsDocument document = new PsDocument(dataDir + "input.ps");

// If you want to convert Postscript file despite of minor errors set this flag
boolean suppressErrors = true;

// Initialize options object with necessary parameters.
ImageSaveOptions options = new ImageSaveOptions(suppressErrors);
// Default image format is PNG and it is not mandatory to set it in ImageSaveOptions.
// But if you need to specify another format use following line 
// options.setImageFormat(ImageFormat.JPEG);
// Default image size is 595x842 and it is not mandatory to set it in ImageDevice
// But if you need to specify size and image format use constructor with parameters
// ImageSaveOptions options = new ImageSaveOptions(new Dimension(595, 842), ImageFormat.JPEG, suppressErrors);
// If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
// options.setAdditionalFontsFolders(new String [] {"FONTS_FOLDER"});        

// Save PS document as images bytes arrays, one bytes array for one page of the document.
byte[][] imagesBytes = document.saveAsImage(options);

int i = 0;

for (byte [] imageBytes : imagesBytes) {
    String imagePath = dataDir + "PSToImage" + i + "." + options.getImageFormat().toString().toLowerCase();
    FileOutputStream fs = new FileOutputStream(imagePath);

    try {
        fs.write(imageBytes, 0, imageBytes.length);
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    } finally {
        fs.close();
    }
    i++;
}

//Review errors
if (suppressErrors) {
    for (Exception ex : options.getExceptions()) {
        System.out.println(ex.getMessage());
    }
}
 

Конвертируйте XPS в изображения JPG, PNG, BMP через Java.

Java API работает с форматом XPS, который используется для представления макета страницы. В любом сценарии, когда возникает необходимость программно конвертировать XPS в изображения BMP, JPG, PNG и TIFF, следующий код может быть легко интегрирован в Java-приложение.

  1. Используйте класс XpsDocument для загрузки XPS-документа.
  2. Используйте соответствующий класс параметров изображения, такой как PngSaveOptions , JpegSaveOptions , BmpSaveOptions , TiffSaveOptions для дополнительных настроек изображения.
  3. Создайте экземпляр класса image device .
  4. Вызовите XpsDocument.save для сохранения конвертированного изображения JPEG в объект ImageDevice, а затем используйте ImageDevice для сохранения изображения в формате JPG.
Java-код для конвертации XPS в изображение
// The path to the documents directory.
String pathDir = Utils.getDataDir();
// Load XPS document
XpsDocument document = new XpsDocument(dataDir + "input.xps");
// Initialize options object with necessary parameters.
com.aspose.xps.rendering.PngSaveOptions options = new com.aspose.xps.rendering.PngSaveOptions();
options.setSmoothingMode(com.aspose.xps.rendering.SmoothingMode.HighQuality);
options.setResolution(300);
options.setPageNumbers(new int[] { 1, 2, 6 });

// Save XPS document as images bytes array. One bytes array for one page of every parttion in the document
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
        FileOutputStream imageStream = new FileOutputStream(dataDir + "XPStoPNG" + "_" + (i + 1) + "_" + (j + 1) + ".png");
        // Write image
        imageStream.write(imagesBytes[i][j], 0, imagesBytes[i][j].length);

        imageStream.close();
    }
}



FAQ

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

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

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

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

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

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

 

Конвертируйте XPS в PDF через Java.

Процесс программной конвертации документов XPS в PDF прост и обеспечивает высокую точность соответствия между входными и выходными файлами.

  1. Загрузите файл с помощью класса XpsDocument. Инициализируйте объект класса PdfSaveOptions .
  2. Создайте объект PdfDevice для рендеринга и, наконец, сохраните выходной PDF-документ.
Java-код для конвертации XPS в PDF
// Load input XPS document
XpsDocument document = new XpsDocument(dataDir + "input.xps");

// Initialize options object with necessary parameters
PdfSaveOptions options = new PdfSaveOptions();
options.setJpegQualityLevel(100);
options.setImageCompression(PdfImageCompression.Jpeg);
options.setTextCompression(PdfTextCompression.Flate);

// Save XPS document to output PDF file
document.saveAsPdf(dataDir + "XPStoPDF.pdf", options);
 
  

Support and Learning Resources