Преобразование файла .obj в .pdf3D в java

Желаю, чтобы кто-нибудь помог мне решить эту проблему. Я хочу преобразовать файл * .obj в pdf3D с помощью Java. Я пробовал использовать библиотеку itextpdf (в конце вы можете найти код, который я использовал), но мне только что удалось преобразовать файл u3D в pdf. Надо ли что-то менять в коде или использовать другую библиотеку?

@SuppressWarnings("javadoc")
public class Main
{
public static String RESOURCE = "C:\\Users\\bb\\IdeaProjects/Zuccarello.U3D";
public static String RESULT = "C:\\Users\\bb\\IdeaProjects/obj.pdf";

public static void main(String[] args) throws DocumentException, IOException {
    new Main().createPdf ( RESULT);
}

public void createPdf(String filename) throws IOException, DocumentException {
    // step 1
    Document document = new Document();
    // step 2
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
    // step 3
    document.open();
    // step 4
    Rectangle rect = new Rectangle(100, 400, 500, 800);
    rect.setBorder(Rectangle.BOX);
    rect.setBorderWidth(0.5f);
    rect.setBorderColor(new BaseColor(0xFF, 0x00, 0x00));
    document.add(rect);

    PdfStream  stream3D = new PdfStream(new FileInputStream(RESOURCE), writer);
    stream3D.put(PdfName.TYPE, new PdfName("3D"));
    stream3D.put(PdfName.SUBTYPE, new PdfName("U3D"));
    stream3D.flateCompress();
    PdfIndirectObject streamObject = writer.addToBody(stream3D);
    stream3D.writeLength();

    PdfDictionary dict3D = new PdfDictionary();
    dict3D.put(PdfName.TYPE, new PdfName("3DView"));
    dict3D.put(new PdfName("XN"), new PdfString("Default"));
    dict3D.put(new PdfName("IN"), new PdfString("Unnamed"));
    dict3D.put(new PdfName("MS"), PdfName.M);
    dict3D.put(new PdfName("C2W"),
            new PdfArray(new float[] { 1, 0, 0, 0, 0, -1, 0, 1, 0, 3, -235, 28 } ));
    dict3D.put(PdfName.CO, new PdfNumber(235));

    PdfIndirectObject dictObject = writer.addToBody(dict3D);

    PdfAnnotation annot = new PdfAnnotation(writer, rect);
    annot.put(PdfName.CONTENTS, new PdfString("3D Model"));
    annot.put(PdfName.SUBTYPE, new PdfName("3D"));
    annot.put(PdfName.TYPE, PdfName.ANNOT);
    annot.put(new PdfName("3DD"), streamObject.getIndirectReference());
    annot.put(new PdfName("3DV"), dictObject.getIndirectReference());
    PdfAppearance ap = writer.getDirectContent().createAppearance(rect.getWidth(), rect.getHeight());
    annot.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, ap);
    annot.setPage();

    writer.addAnnotation(annot);
    // step 5
    document.close();
}
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
384
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

3D PDF поддерживает только файлы .prc и .u3d. Форматы прямого преобразования файлов adobe.com Итак, вам нужно сначала преобразовать один из них.

Большое спасибо за ответ :) Знаете ли вы какие-нибудь библиотеки на Java, которые позволяют мне создавать и экспортировать файлы u3D на Java? Я уже рассчитал грани, вершины и текстуры в Java и хочу экспортировать их в файл u3D.

T.Versiert 29.06.2018 11:40

Однажды я выполнил экспорт в .prc, используя Hoops Exchange. Я добавил их в 3D PDF с помощью Acrobat pro, но вручную. Я не могу найти бесплатное решение с открытым исходным кодом. Платные решения, похоже, недоступны на Java.

KYL3R 29.06.2018 11:48

@ KYL3R Для такого же типа преобразования есть ли у вас какие-либо решения, кроме java. И мое требование - у меня есть один файл .obj, который мне нужен для преобразования файла в файл .pdf.

Bhavanaditya 26.02.2020 13:27

@Bhavanaditya: Один файл, однажды? Если онлайн-конвертеры (google 'obj to prc') не работают, вы можете загрузить объект где-нибудь, и я конвертирую его для вас.

KYL3R 26.02.2020 16:26

@ KYL3R У меня есть несколько и несколько файлов .obj, которые нужно преобразовать в файлы .pdf. Есть ли возможности. Если есть средства, пожалуйста, помогите с этим. И спасибо за ответ.

Bhavanaditya 27.02.2020 05:47

@Bhavanaditya, я работаю над той же проблемой, не могли бы вы помочь мне с этим? как вы преобразовали obj в u3d и добавили его в PDF?

Satheesh K 11.06.2020 10:30

Вы можете попробовать такие конвертеры, как этот: products.aspose.app/3d/conversion/obj-to-u3d - чтобы добавить его в файл PDF, вам понадобится Acrobat Pro - просто перетащите его внутрь.

KYL3R 11.06.2020 10:42

Другие вопросы по теме