Я хочу иметь штрих-код (Code128), сгенерированный во время преобразования xsl fop. Как сказано в документации apache fop (и barcode4j docs), если вы хотите использовать расширение, поместите его в путь к классам. Это отлично подходит для настольного приложения и апплета, запускаемого из затмения. Но как запустить его из браузера?Как использовать apache fop с расширениями (f.e. barcode4j) в java-апплете
В качестве доказательства концепции я извлек все из так называемой «жирной баночки» - одну банку, все переупаковано из затмения как «Экспорт в runnable jar» с «Извлечение необходимых библиотек в сгенерированный JAR». Все работает как ожидалось (перевод и многое другое), за исключением генерации штрих-кода. Это мое единственное расширение apache fop, поэтому я предполагаю, что проблема связана с упомянутым classpath, поскольку для апплета нет такой вещи?
Вот моя основная часть HTML:
<html lang="en-US">
<body>
<script src="http://www.java.com/js/deployJava.js"></script>
<script> var attributes = { codebase:'.', code:'com.signapplet.SignApplet.class', archive:'SignApplet.jar', width:1024, height:968};
var parameters = {jnlp_href: 'SignApplet.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.6');
</script>
</body>
</html>
и JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>Sign Applet</title>
<vendor>me</vendor>
</information>
<security><all-permissions/></security>
<resources>
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="SignApplet.jar" main="true" />
</resources>
<applet-desc
name="Sign Applet"
main-class="com.signapplet.SignApplet"
width="300"
height="300" >
</applet-desc>
<update check="background"/>
</jnlp>
Я добавлю, что на Java консоли У меня есть стандартный тарабарщину ("19: 43: 04429 WARN FOUserAgent: 97 - Неизвестный объект форматирования "{http://barcode4j.krysalis.org/ns} height" встречается (ребенок с кодом128}. (Нет контекстной информации) "), поскольку я не включил надлежащее полное расширение barcode4j, но я проверил и все правильно упаковано в моем jar file plus все работает правильно в затмении.
Это копировать/вставить пример кода из barcode4j страницы:
<fo:block>
<fo:instream-foreign-object>
<barcode:barcode
xmlns:barcode="http://barcode4j.krysalis.org/ns"
message="my message" orientation="90">
<barcode:code128>
<barcode:height>8mm</barcode:height>
</barcode:code128>
</barcode:barcode>
</fo:instream-foreign-object>
</fo:block>
Я использую последнюю barcode4j-FOP-Ext-complete.jar и апаша-FOP 1.1. Что я делаю не так?
Спасибо! Вероятно, это была причина. Я использовал отдельную банку расширения barcode4j, и теперь все работает правильно. Я всегда проверяю список переопределенных файлов, перечисленных в eclipse в конце, но кажется, что eclipse забыл о META-INF/services .. –