मूल रूप से मैं अपना FopFactory इस तरह बना रहा था:

FopFactory.newInstance(new File("config/pdf/fop.xconf"))

जिसने मेरी कॉन्फ़िगरेशन फ़ाइल में सभी कस्टम कॉन्फ़िगरेशन को उठाया। हालांकि, मेरी आवश्यकताएं बदल गई हैं और मुझे अपना FopFactory बनाने के लिए FopFactoryBuilder का उपयोग करने की आवश्यकता है (जो पैरामीटर के रूप में कॉन्फ़िगरेशन फ़ाइल नहीं लेता है)।

FopFactoryBuilder builder = new FopFactoryBuilder(URI.create("/"), uriResolverAdapter);
Configuration configuration = new DefaultConfiguration("config/pdf/fop.xconf");
builder.setConfiguration(configuration);

लेकिन, यह कारगर होता नहीं दिख रहा है। मुझे विशेष रूप से कुछ फ़ॉन्ट संबंधित सामग्री शामिल करने की आवश्यकता है:

<fonts>
  <auto-detect/>
  <font-base>./</font-base>
  <directory recursive="true">config/pdf/fonts</directory>
</fonts>

संपादित करें:

मैंने यह भी कोशिश की है,

DefaultConfigurationBuilder defaultConfigurationBuilder = new DefaultConfigurationBuilder();
builder.setConfiguration(defaultConfigurationBuilder.build("config/pdf/fop.xconf"));

साथ में यह भी,

builder.setConfiguration(defaultConfigurationBuilder.buildFromFile(new File("config/pdf/fop.xconf")));

यह,

FileInputStream config = new FileInputStream(new File("config/pdf/fop.xconf"));
builder.setConfiguration(defaultConfigurationBuilder.build(config));

यह,

builder.setConfiguration(defaultConfigurationBuilder.buildFromFile("config/pdf/fop.xconf"));

और अंत में यह (Jars.getJarFile बस चल रहे जार की फ़ाइल प्राप्त करता है):

File jarFile = Jars.getJarFile(this);
if (jarFile!= null) {
    String absoluteLocation = jarFile.getParent() + "/config/pdf/fop.xconf";
    builder.setConfiguration(defaultConfigurationBuilder.buildFromFile(absoluteLocation));
}

लेकिन जब मैं FopFactory के साथ एक नया fop बनाता हूं तो वे सभी मुझे अपवाद देते हैं:

java.lang.IllegalArgumentException: URI is not absolute
1
cscan 28 अप्रैल 2016, 00:24

1 उत्तर

सबसे बढ़िया उत्तर

मैं जो कर रहा था वह इस तरह की कॉन्फ़िगरेशन बना रहा था:

DefaultConfigurationBuilder defaultConfigurationBuilder = new DefaultConfigurationBuilder();
builder.setConfiguration(defaultConfigurationBuilder.build("config/pdf/fop.xconf"));

और मेरी कॉन्फ़िगरेशन से निम्न पंक्ति को हटा रहा है:

<auto-detect/>
2
cscan 6 मई 2016, 19:43