2015-07-05 14 views
16

Để bắt đầu làm việc với XDocReport Tôi muốn chuyển đổi ODT thành PDF.XDocReport chuyển đổi ODT sang PDF bằng OSGI

Tất cả ứng dụng của tôi là OSGi. Vì vậy, tôi cài đặt các gói sau:

fr.opensagres.xdocreport.converter-1.0.5.jar 
fr.opensagres.xdocreport.core-1.0.5.jar 
fr.opensagres.xdocreport.document-1.0.5.jar 
fr.opensagres.xdocreport.itext.extension-1.0.5.jar 
fr.opensagres.xdocreport.template-1.0.5.jar 

Bên cạnh đó trong đường dẫn lớp tôi có itext-4.2.1.jar (nó không phải là gói OSGi) và tôi xuất khẩu các gói sau:

<package name="com.lowagie.text"/> 
    <package name="com.lowagie.text.factories"/> 
    <package name="com.lowagie.text.pdf"/> 
    <package name="com.lowagie.text.pdf.draw"/> 

Tuy nhiên, tôi không nhận được chuyển đổi bằng cách sử dụng đoạn mã sau:

Options options = Options.getFrom(DocumentKind.ODT).to(ConverterTypeTo.PDF); 
IConverter converter = ConverterRegistry.getRegistry().getConverter(options); 
in = new FileInputStream(new File("/Temp/Test1.odt")); 
OutputStream out = new FileOutputStream(new File("/Temp/Test1.pdf")); 
converter.convert(in, out, options); //HERE I GET NullPointerException - converter is null. 

đang cố gắng để giải quyết vấn đề này tôi đã thêm các bó sau:

org.odftoolkit.odfdom.converter.core-1.0.5.jar 
org.odftoolkit.odfdom.converter.pdf-1.0.5.jar 

Tuy nhiên, tôi nhận được:

org.osgi.framework.BundleException: hạn chế không được giải quyết trong bó org.odftoolkit.odfdom.converter.core [43]: Không thể giải quyết 43.0: mất tích yêu cầu [43.0] osgi.wiring.package; (osgi.wiring.package = org.odftoolkit.odfdom.dom)

Để giải quyết vấn đề với org.odftoolkit.odfdom.dom tôi thêm odfdom-java-0.8.7.jar vào classpath (nó cũng không phải là OSGi) và xuất khẩu các gói sau:

<package name="org.odftoolkit.odfdom.doc"/> 
    <package name="org.odftoolkit.odfdom.dom"/> 
    <package name="org.odftoolkit.odfdom.dom.element.draw"/> 
    <package name="org.odftoolkit.odfdom.dom.element.office"/> 
    <package name="org.odftoolkit.odfdom.dom.element.style"/> 
    <package name="org.odftoolkit.odfdom.dom.element.table"/> 
    <package name="org.odftoolkit.odfdom.dom.style"/> 
    <package name="org.odftoolkit.odfdom.incubator.doc.office"/> 
    <package name="org.odftoolkit.odfdom.incubator.doc.style"/> 
    <package name="org.odftoolkit.odfdom.pkg"/> 
    <package name="org.odftoolkit.odfdom.dom.attribute.fo"/> 
    <package name="org.odftoolkit.odfdom.dom.attribute.style"/> 
    <package name="org.odftoolkit.odfdom.dom.attribute.table"/> 
    <package name="org.odftoolkit.odfdom.dom.element"/> 
    <package name="org.odftoolkit.odfdom.dom.element.svg"/> 
    <package name="org.odftoolkit.odfdom.dom.element.text"/> 

Tuy nhiên nó không giúp đỡ và tôi vẫn nhận được NullPointerException.

Đây là những câu hỏi của tôi:

  1. lý do tôi nhận chuyển đổi rỗng và làm thế nào để sửa chữa nó là gì?
  2. XDocReport sử dụng thư viện gì để viết chuyển đổi hoặc odfdom?
+9

Hãy thảo luận của bạn về các thẻ về câu hỏi này ở một nơi khác. Ở đây - http://meta.stackoverflow.com/questions/298601/must-using-stackoverflow-tags-be-approved-by-the-name-rights-holders - là một nơi tốt. – ChrisF

+0

Gói cần xuất là org.odftoolkit.odfdom.dom và không phải là org.odftoolkit.odfdom.doc, phải không? – Angelo

+0

XDocReport hỗ trợ itext 2.1.7 hoặc itext. Tôi không biết nếu itext-4.2.1.jar có thể được sử dụng. Tôi đề nghị bạn rằng bạn thử mà không có bối cảnh OSGi. – Angelo

Trả lời

2

Điều tôi thường làm là lấy thư viện, đó không phải là gói OSGi và gói nó. Một hướng dẫn tốt về cách làm điều này trong nhật thực là hướng dẫn của Lars Vogel: How to create Eclipse plugins from jars.

Xuất dự án thành tệp jar bằng cách làm theo hướng dẫn Creating a jar File in Eclipse và sử dụng điều này trong dự án của bạn.

Bây giờ bạn sẽ có tất cả các phụ thuộc của bạn được giải quyết. Bước bổ sung là cần thiết trong trường hợp bạn có tải lớp động quá.

Các vấn đề liên quan