카테고리 없음

org.artofsolving.jodconverter API가 Wicket 8 응용 프로그램에서 Excel 파일을 PDF 파일로 변환하지 않음

기록만이살길 2021. 2. 19. 16:49
반응형

org.artofsolving.jodconverter API가 Wicket 8 응용 프로그램에서 Excel 파일을 PDF 파일로 변환하지 않음

1.질문(문제점):

아래 API를 사용하여 개찰구 8 응용 프로그램에서 Excel 파일을 PDF 파일로 변환하려고합니다. 그러나 PDF 파일이 Excel 파일로 변환되지 않고 PDF 파일 대신 PDF 다운로드 링크에서 동일한 Excel 파일이 표시되며 convert () 메서드에 예외 또는 오류가 없습니다.

<dependency>
    <groupId>net.sf.jodconverter</groupId>
    <artifactId>jodconverter</artifactId>
    <version>3.0-beta-4</version>
</dependency>

또는

<dependency>
    <groupId>com.artofsolving</groupId>
    <artifactId>jodconverter</artifactId>
    <version>2.2.1</version>
</dependency>

아래 코드를 사용하여 Excel 파일을 PDF 파일로 변환

public File convertToPDFFile(ByteArrayOutputStream fromExcelFile, String sheetName, OOConfig ooConfig, FileFormat fileFormat) throws Exception {
    File tempFile = null;
    File resultPDFFile = null;
    try {
        tempFile = File.createTempFile(sheetName, fileFormat.getFileExtension());
        tempFile.setWritable(true);

        FileOutputStream fout = new FileOutputStream(tempFile);
        fromExcelFile.writeTo(fout);

        ExternalOfficeManagerConfiguration eomcTest = new ExternalOfficeManagerConfiguration();
        eomcTest.setConnectOnStart(true);
        eomcTest.setConnectionProtocol("SOCKET");
        eomcTest.setPortNumber(8100);

        OfficeManager officeManager = eomcTest.buildOfficeManager();
        officeManager.start();
        OfficeDocumentConverter officeDocConverter = new OfficeDocumentConverter(officeManager);
        resultPDFFile = File.createTempFile(sheetName, TypeOfFile.PDF.getFileExtension());
        officeDocConverter.convert(tempFile, resultPDFFile);
        fout.close();
        officeManager.stop();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (tempFile != null) {
            tempFile.delete();
            tempFile = null;
        }
    }
    return resultPDFFile;
}

친절하게도 누구든지 jodconverter가 Excel 파일을 pdf 파일로 변환하지 않는 이유를 알려주었습니다.

어떤 제안이라도 대단히 감사하겠습니다.

2.해결방안:

위의 코드는 로컬 시스템에서 더 깊게 디버깅 한 후에 저에게 효과적이었습니다.

이를 위해서는 OpenOffice3 또는 버전 4를 설치해야하며 아래 명령을 실행하여 Windows OS에서 OpenOffice를 서비스로 실행할 수 있습니다.

CMD로 이동하여 OpenOffice 프로그램 디렉토리 경로로 이동합니다. 예 : "C : \ OpenOffice.org 3 \ program"및 CMD에서 아래 명령을 사용하여 OpenOffice를 서비스로 실행하여 파일 변환을위한 Jodconverter 코드를 실행합니다.

start soffice -headless -accept=socket,host=0,port=8100;urp;

이는 Windows OS 용 로컬 시스템에서 OpenOffice를 서버로 실행하는 데 도움이 될 수 있으며이 코드를 심층적으로 디버깅하여 문제를 해결하거나 변경을 수행 할 수 있습니다.

OpenOffice를 사용하는 응용 프로그램의 로컬 시스템에서이 코드를 실행하려는 사람에게 도움이되기를 바랍니다.

65942921
반응형