之前有网友拷贝我的java实现word转pdf代码 作为demo想在本地执行,说找不到ExtITextFontRegistry这个类,这是因为我没有把全码全部拷贝出来,只是拷贝了一下核心代码。既然有网友想要,我就一次性都给出来。给大家分享一下。
其实还有几个简单的字体类
ExtITextFontRegistry字体注册类代码
public class ExtITextFontRegistry extends ExtAbstractFontRegistry { public static ExtITextFontRegistry getRegistry() { return INSTANCE; } @Override protected String resolveFamilyName(String familyName, int style) { return familyName; } private static final ExtITextFontRegistry INSTANCE = new ExtITextFontRegistry(); }
ExtAbstractFontRegistry字体抽象类
public abstract class ExtAbstractFontRegistry extends AbstractFontRegistry { public static FontFactoryImp extFontFactoryImp = new ExtFontFactoryImp(); public ExtAbstractFontRegistry() { FontFactory.setFontImp(extFontFactoryImp); } }
ExtFontFactoryImp字体实现类
public class ExtFontFactoryImp extends FontFactoryImp { public ExtFontFactoryImp(){ super(); } public int registerDirectories(){ int i = 0; i += registerDirectory("c:/windows/Fonts"); i += registerDirectory("c:/winnt/fonts"); i += registerDirectory("d:/windows/fonts"); i += registerDirectory("d:/winnt/fonts"); i += registerDirectory("/usr/share/X11/fonts", true); i += registerDirectory("/usr/X/lib/X11/fonts", true); i += registerDirectory("/usr/openwin/lib/X11/fonts", true); i += registerDirectory("/usr/share/fonts", true); i += registerDirectory("/usr/X11R6/lib/X11/fonts", true); i += registerDirectory("/Library/Fonts"); i += registerDirectory("/System/Library/Fonts"); i += registerDirectory(System.getenv("LICENSE_HOME"), true); return i; } }
其中字体注册路径包含了windows系统和linux系统(如果转换没有字体显示可能就是没有相应的字体)。好了把上面3个类放在本地导入相应的包就可以运行了,如果还是有问题随时可以支持大家。