Преобразование 3D‑моделей в документы, доступные для просмотра на любых устройствах, часто требуется в инженерных и визуализационных инструментах. Conholdate.Total for Java предоставляет мощный SDK, который упрощает конвертацию STL в PDF в Java. В этом руководстве вы настроите библиотеку, пройдёте через полный пример кода, настроите параметры PDF и изучите лучшие практики для получения надёжных результатов.

Шаги конвертации STL в PDF на Java

  1. Проверьте входной файл STL: Убедитесь, что исходный файл STL существует и доступен для чтения.
String inputPath = "sample.stl";
if (!Files.isReadable(Paths.get(inputPath))) {
    System.err.println("Input STL file not found or not readable: " + inputPath);
    return;
}
  1. Инициализировать конвертер: Создайте экземпляр Converter с путем к файлу STL.
try (Converter converter = new Converter(inputPath)) {
    // conversion logic follows
}
  1. (Необязательно) Применить параметры загрузки STL: Если вам требуется пользовательское поведение загрузки, раскомментируйте строки параметров загрузки.
// LoadOptions loadOptions = new StlLoadOptions();
// converter.setLoadOptions(loadOptions);
  1. Настройте параметры конвертации PDF: Установите размер страницы, ориентацию, качество и другие параметры PDF.
PdfConvertOptions pdfOptions = new PdfConvertOptions();
pdfOptions.setPageSize(PdfPageSize.A4);
pdfOptions.setPageOrientation(PdfPageOrientation.PORTRAIT);
pdfOptions.setQuality(100);
pdfOptions.setEmbedFonts(true);
pdfOptions.setOptimizeForPrint(true);
pdfOptions.setCompressImages(true);
  1. Выполнить конвертацию и проверить: Вызовите convert и затем проверьте, что сгенерированный PDF не пустой.
converter.convert("sample.pdf", pdfOptions);
File pdfFile = new File("sample.pdf");
if (pdfFile.exists() && pdfFile.length() > 0) {
    System.out.println("Generated PDF is valid. Size: " + pdfFile.length() + " bytes.");
}

STL в PDF Java - Полный пример кода

Следующий пример демонстрирует весь процесс преобразования STL в PDF с использованием Conholdate.Total for Java.

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.enums.PdfPageOrientation;
import com.groupdocs.conversion.enums.PdfPageSize;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import com.groupdocs.conversion.options.load.LoadOptions;
import com.groupdocs.conversion.options.load.StlLoadOptions;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class StlToPdfDemo {
    public static void main(String[] args) {
        // Input STL file and desired PDF output file
        String inputPath = "sample.stl";
        String outputPath = "sample.pdf";

// Verify that the input file exists and is readable
        if (!Files.isReadable(Paths.get(inputPath))) {
            System.err.println("Input STL file not found or not readable: " + inputPath);
            return;
        }

// Perform conversion inside a try‑with‑resources block to guarantee cleanup
        try (Converter converter = new Converter(inputPath)) {
            // If STL‑specific loading options are required, uncomment the following lines:
            // LoadOptions loadOptions = new StlLoadOptions();
            // converter.setLoadOptions(loadOptions);

// Configure PDF conversion options
            PdfConvertOptions pdfOptions = new PdfConvertOptions();
            pdfOptions.setPageSize(PdfPageSize.A4);
            pdfOptions.setPageOrientation(PdfPageOrientation.PORTRAIT);
            pdfOptions.setQuality(100);                 // Highest visual quality
            pdfOptions.setEmbedFonts(true);             // Ensure fonts are embedded
            pdfOptions.setOptimizeForPrint(true);       // Optimize PDF for printing
            pdfOptions.setCompressImages(true);         // Reduce PDF size without quality loss

// Execute the conversion
            converter.convert(outputPath, pdfOptions);
            System.out.println("STL to PDF conversion completed successfully: " + outputPath);
        } catch (Exception ex) {
            System.err.println("An error occurred during conversion:");
            ex.printStackTrace();
            return;
        }

// Simple validation of the generated PDF
        File pdfFile = new File(outputPath);
        if (pdfFile.exists() && pdfFile.length() > 0) {
            System.out.println("Generated PDF is valid. Size: " + pdfFile.length() + " bytes.");
        } else {
            System.err.println("PDF generation failed or resulted in an empty file.");
        }
    }
}

Примечание: Этот пример кода демонстрирует базовый функционал. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.

Требования и настройка

Добавьте репозиторий Conholdate Maven и зависимость SDK в ваш pom.xml:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Скачайте последнюю версию SDK с страницы загрузки. Библиотека требует Java 8 или выше.

Настройка параметров вывода PDF

Conholdate.Total for Java предлагает несколько параметров PDF, которые вы можете настроить:

  • Page Size - Выберите из стандартных размеров, таких как PdfPageSize.A4 или PdfPageSize.LETTER.
  • Page Orientation - Установите PdfPageOrientation.PORTRAIT или PdfPageOrientation.LANDSCAPE.
  • Quality - Метод setQuality(int) принимает значения от 0 до 100; 100 обеспечивает наивысшую визуальную точность.
  • Embed Fonts - Включение setEmbedFonts(true) гарантирует сохранение всех шрифтов в результирующем PDF.
  • Optimize for Print - setOptimizeForPrint(true) адаптирует PDF для печатных процессов.
  • Compress Images - setCompressImages(true) уменьшает размер файла без заметной потери качества.

Эти параметры продемонстрированы в приведённом выше фрагменте кода и могут быть объединены для удовлетворения конкретных требований проекта.

Заключение

Conholdate.Total for Java делает преобразование STL в PDF в Java простым и мощным. Следуя инструкциям, используя предоставленный пример кода и настраивая параметры PDF, вы можете создавать PDF высокого качества из 3D‑моделей STL для настольных или серверных приложений. Не забудьте получить соответствующую лицензию для использования в продакшене; вы можете ознакомиться с ценами на странице цен или получить временную лицензию на странице временной лицензии. С этим SDK интеграция конвертации 3D‑моделей в ваши Java‑проекты становится простой задачей.

Часто задаваемые вопросы

  • Как выполнить конвертацию STL в PDF в Java с помощью Conholdate.Total?
    Используйте класс Converter, настройте PdfConvertOptions и вызовите convert(), как показано в полном примере кода. SDK берет на себя всю тяжелую работу по рендерингу 3D‑модели в PDF.

  • Какие форматы страниц PDF поддерживаются при конвертации STL в PDF?
    SDK поддерживает все стандартные размеры страниц PDF, определённые в PdfPageSize, а также обе ориентации — портретную и альбомную — через PdfPageOrientation.

  • Можно ли встроить пользовательские шрифты в сгенерированный PDF?
    Да. Установите pdfOptions.setEmbedFonts(true), чтобы встроить любые шрифты, используемые при рендеринге STL, гарантируя, что PDF будет выглядеть одинаково во всех просмотрщиках.

  • Где я могу найти более подробную информацию о лицензировании и поддержке?
    Подробности о лицензировании доступны на странице страница с ценами и временную лицензию можно запросить на странице страница временной лицензии. Для технической помощи посетите форум поддержки.

Read More