OpenOffice SDK를 사용한 문서 변환
-
06-07-2019 - |
문제
사용자가 업로드한 .doc 파일을 다양한 형식으로 내보낼 수 있도록 해야 합니다.저는 OO SDK를 사용하기 시작했고 XSLT를 사용하여 몇 가지 사용자 정의 필터도 설정했습니다.모든 것이 잘 작동하며 Word 문서를 PDF 등으로 내보낼 수 있습니다.
그러나 나는 이것을 웹 서비스로 실행하고 싶습니다.이 변환 서비스를 전용 노드에서 실행하고 싶으므로 문서 변환을 원하는 사용자가 업로드하는 모든 파일이 이 전용 노드에 도달하게 됩니다.내 웹 앱 자체는 PHP 기반입니다.OO SDK를 사용하여 변환을 수행하는 가장 좋은 방법은 무엇입니까?결과 파일도 DB에 저장해야 합니다.
OO의 여러 인스턴스를 실행하고 특정 인스턴스로 변환하려면 각 파일을 공급해야 합니까?그리고 OO가 멀티스레드인지 모르기 때문에 이를 처리하기 위해 사용자 정의 서버를 작성해야 합니까?어떤 조언이라도 대단히 감사하겠습니다.
해결책
사용을 살펴 보셨나요? JOD변환기?그것은 당신을 위해 모든 무거운 작업을 수행합니다.
다른 팁
cli dll을 사용하여 다음 코드를 사용해보십시오.
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);
}
내보낼 필터 이름의 전체 목록을 보려면 이전에 제공한 다른 답변을 살펴보세요.
제휴하지 않습니다 StackOverflow