当前位置: 首页 > 知识库问答 >
问题:

如何在java小程序中使用带有扩展(f. e. barcode4j)的apache fop

马峻
2023-03-14

我想在xsl fop转换期间生成一个条形码(Code128)。正如apache fop文档(和barcode4j文档)中所说,如果您想使用extension,请将它放在类路径中。这对于从eclipse运行的桌面应用程序和applet来说很好。但是如何在浏览器中运行它呢?

作为概念证明,我将所有内容提取到所谓的“fat-jar”中 - 一个罐子,从日食中重新打包的所有内容都为“导出到可运行的罐子”和“将所需的库提取到生成的 JAR 中”。除了条形码生成之外,一切都按预期工作(翻译和许多其他事情)。这是我唯一的 apache fop 扩展,所以我想问题在于提到的类路径,因为小程序没有这样的东西?

以下是我的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:04,429 WARN FOUserAgent:97 -未知格式对象”{ http://barcode 4j . krysalis . org/ns } height }(code 128的子对象)。(没有可用的上下文信息)")因为我不会包含正确的完整的barcode4j扩展,但是我检查过了,所有东西都正确地打包在我的jar文件中,并且所有东西都在eclipse中正常工作。

这是从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和apache-fop 1.1。我做错了什么?

共有1个答案

丁韬
2023-03-14

如果你不小心,创建一个“胖罐”会有丢失重复文件的风险。FOP扩展是由JAR服务提供者机制(META-INF/服务方法)发现的。这意味着你必须合并而不是覆盖META-INF/服务中的文件。

 类似资料:
  • 问题内容: 我有一个HTML页面,其中有一些用Angular配置的DOM。现在,我正在构建一个chrome扩展程序来修改文本框中的值。由于文本框是使用Angular设计的,因此无法使用。阅读一些资源后,我知道需要对元素的范围进行更改。我尝试在扩展程序中执行此操作。 这似乎无法正常工作。当我更深入地研究问题时,我发现窗口范围内的角度没有得到正确的范围。 我还尝试从扩展名中注入angular.js并直

  • /library/frameworks/mono.framework/external/xbuild/xamarin/android/xamarin.android.common.targets:错误:执行任务生成器时出错JavaStubs:应用程序不能同时具有[Application]属性和[assembly:Application]属性的类型。(MyApp.Droid) 如果I applica

  • 问题内容: 我正在尝试在扩展弹出窗口中使用Google开发人员AngularJS库,但出现错误。 错误:在k(chrome-extension:// jambnlbfljcfpomlclcgphfmkjfiphkb / lib / lib)的功能(未知源)处,Jb(chrome- extension://jambnlbfljcfpomlclcgphfmkjfiphkb/lib/angular.js

  • 问题内容: 后来的AngularJS(1.3 beta 19)使用。铬萃取中禁止这样做。 如何在 不允许评估的情况下 解决问题? 错误信息: 拒绝将字符串评估为JavaScript,因为在以下内容安全策略指令:“ script-src’self’chrome-extension- resource:”中不允许使用’unsafe-eval’作为脚本源。 堆栈跟踪: 更新:请参阅https://doc

  • 问题内容: 这实际上是我现在面临的问题。我有一个类,可以说该类定义了一个返回实例的方法。该类在内部定义并声明。我想要做的就是定义一个类扩展,但我也想对与加入我自己的功能(方法,属性等)。我也想回来。 问题是最终的。这是我想做的事的例证: 我想做的是: 我该如何实现? [编辑]我正在向我的问题添加更多详细信息。我实际上是在为Jenkins开发一个插件,经过搜索,我意识到有一个插件提供了我想做的基本功

  • 我们正在使用关系数据库开发很多“传统”web应用程序。它们都是内部软件,为有限的用户提供服务。现在,我们正在构建一个web应用程序,并将其作为云(如SaaS)进行业务。然而,我们在云计算方面没有经验。我们非常感谢所有建议,以便我们可以开始挖掘,因为目前我们不知道从哪里挖掘:) 我们的web应用程序摘要:我们有两个主要部分 第1部分: 对于授权用户 第2部分: 对于公共用户 一种CMS,授权用户创建