我在配置 Batik PDFTranscoder 以进行 Svg 到 Pdf 转换时遇到问题。我想将自定义 truetype 字体嵌入到 PDF 输出中,因此我使用 Batik 转码器。我在 fop 配置文件中提供字体配置,如下所述: https: //xmlgraphics.apache.org/fop/2.2/fonts.html
我尝试使用 org.apache.xmlgraphics.Fop 版本 2.1 和 2.2 进行转换。没有任何成功。
我的 pdf 输出带有“Times New Roman”字体,而不是带有嵌入字体“Arial”,因为它应该基于以下示例:
我的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<directory>C:/path/to/fontsfolder</directory>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>
Run Code Online (Sandbox Code Playgroud)
这是我的转码器代码:
import org.apache.batik.transcoder.*;
import org.apache.fop.svg.PDFTranscoder;
import org.w3c.dom.Document;
PDFTranscoder transcoder = new PDFTranscoder();
try {
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
Configuration cfg = cfgBuilder.buildFromFile(new File("path-to-xml-config-file"));
ContainerUtil.configure(transcoder, cfg);
} catch (Exception e) {
throw new TranscoderException(e); …Run Code Online (Sandbox Code Playgroud) 我需要为每个GlassFish服务器(v 3.1)的大约100个客户设置一个托管环境.每个客户都需要可以彼此独立运行的自定义配置应用程序.(JDBC,JMS,可能性重新启动单一的应用程序)运行一个虚拟机将是优选的,因为发射100级的JVM的RAM中的每个使用750MB不会听起来像一个好主意.
到目前为止,我已经测试了以下解决方案,但不幸的是,这些都没有满足我的要求:
在单独的域上部署应用程序.由于JVM Ram的使用以及在多个端口上运行多个管理控制台的复杂性,这个解决方案是不够的(我们不需要那么多的分离)
在同一域上的多个实例(Glassfish上的命名目标)上部署应用程序.此解决方案不足,因为它为每个实例创建单独的JVM进程并消耗太多RAM(每个实例几百MB).否则它最接近我们需要的.
在同一实例上的多个虚拟主机上部署应用程序.此解决方案是不可接受的,因为在Glassfish中,每个虚拟服务器都没有单独的配置.
任何人都可以建议使用GlassFish托管多个应用程序实例的最佳做法/建议是什么?我们是否注定要为每位客户预留1GB内存?来自IIS环境,我们有单独的应用程序池,每个启动时使用3-5MB的RAM.
UPDATE
关于我的依赖和在我的应用程序中共享:在我想在Glassfisf服务器上实现的想法中,每个应用程序都需要单独的资源(JMS和JDBC).这不是问题,即使每个虚拟主机在一个实例上启用,我也可以为每个应用程序自定义它(我可以通过从Http Request获取服务器名称来识别虚拟服务器,并在实例目录中准备单独的资源和配置文件以将配置应用于此特定虚拟服务器).
我的"独立性要求"是:
这个想法是否可以在一个Glassfish实例上实现,部署了100个应用程序(在实例/虚拟主机上启用)?也许在我的情况下,以不同的名称部署应用程序(如此处所述:home.java.net/node/676678)可能是一个很好的解决方案?有没有人有过使用不同配置部署相同应用程序一百倍的经验?
谢谢,
Olgierd
apache-fop ×1
batik ×1
deployment ×1
glassfish-3 ×1
hosting ×1
java ×1
java-ee ×1
svg ×1
truetype ×1