2009-06-23 4 views
1

사용자가 업로드 한 .doc 파일을 다양한 형식으로 내보낼 수 있어야합니다. OO SDK 사용을 시작했고 XSLT를 사용하여 사용자 정의 필터를 설정했습니다. 모든 것이 잘 작동하고 pdf 등으로 워드 문서를 내보낼 수 있습니다.OpenOffice SDK를 사용한 문서 변환

그러나 이것을 웹 서비스로 실행하고 싶습니다. 전용 노드에서이 변환 서비스를 실행하여 문서를 변환하려는 사용자가 모든 파일을 업로드하면이 전용 노드에 도달하게됩니다. 내 웹 응용 프로그램 자체는 PHP 기반입니다. OO SDK를 사용하여 변환을 수행하는 가장 좋은 방법은 무엇입니까? 결과 파일을 DB에 저장해야합니다.

OO의 여러 인스턴스를 실행하고 각 인스턴스를 특정 인스턴스로 변환하도록 피드해야합니까? OO가 멀티 스레드인지 여부를 알지 못하기 때문에이를 처리 할 사용자 지정 서버를 작성해야합니까? 어떤 조언을 크게 감사드립니다.

+0

나는이 작업을 내 작업에서 시도했지만, OOo의 비표준 레이아웃 및 이미지와 같은 문서 요소의 무난한 배치를 얻을 수 없으므로 삭제해야했습니다. 우리는 변환기 대신 MS Office를 제외하고는 거의 동일한 설정을 수행하려고합니다. – Chris

답변

2

JODConverter을 사용해 보셨나요? 그것은 당신을 위해 모든 힘든 일을합니다. CLI를 DLL을 사용

+0

파이썬 기반의 사촌 인 PyODConverter를 잊지 마세요! –

4

내가 전에 준 다른 답변을 들여다 수출 필터 명이의 전체 목록은 다음 코드

public conversion() 
{ 
     unoidl.com.sun.star.uno.XComponentContext localContext =uno.util.Bootstrap.bootstrap(); 

     unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory =(unoidl.com.sun.star.lang.XMultiServiceFactory)localContext.getServiceManager(); 

     XComponentLoader componentLoader =(XComponentLoader)multiServiceFactory.createInstance("com.sun.star.frame.Desktop"); 

     XComponent xComponent = componentLoader.loadComponentFromURL(PathConverter(FileName1),"_blank", 0,new PropertyValue[] {MakePropertyValue("Hidden", true)}); 

     unoidl.com.sun.star.beans.PropertyValue [] propertyValues; 
     propertyValues = new unoidl.com.sun.star.beans.PropertyValue[2]; 
     // Setting the flag for overwriting 
     propertyValues[0] = new unoidl.com.sun.star.beans.PropertyValue(); 
     propertyValues[0].Name = "Overwrite"; 
     propertyValues[0].Value = new Any(true); 
     // Setting the filter name 
     propertyValues[1] = MakePropertyValue("FilterName", "HTML (StarWriter)"); 
     /*propertyValues[1] = new unoidl.com.sun.star.beans.PropertyValue(); 
     propertyValues[1].Name = "FilterName"; 
     propertyValues[1].Value = new uno.Any("HTML (StarWriter)"); // writer_pdf_Export , swriter: MS Word 97 , HTML (StarWriter) ,*/ 

     XStorable xStorable = xComponent as XStorable;xStorable.storeToURL(PathConverter(FileName),propertyValues); 
} 

으로 시도합니다.