不开源项目aspose.font最新版23.10的一些科普

Aspose
placeholder image
admin 发布于:2024-09-28 12:43:57
阅读:loading

前面在摸索了Aspose的Cells、Words、Pdf等多款组件,分别是常见的Word/Excel/Pdf办公软件,闲下心来又继续了解了一下Aspose For Java语言的其他软件,经过一些持续的分析和摸索实践越来越多的将它们给科学化,即所有的软件(组件)均不修改任何jar包依赖,纯粹使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是Aspose.font的23.10版本,它是一个字体操作API解决方案的开发工具包,为使用 .NET、Java 和 C++ 的开发人员提供的字体操作解决方案。我们提供高质量的代码 API 和免费应用程序,使您能够无缝加载、渲染和转换多种字体格式。让我们与众不同的是我们对独立性的承诺——我们的工具不需要依赖于任何其他软件,为您提供无忧且高效的体验。立即使用我们的多功能解决方案改进您的字体管理流程!

通俗的来说它可以用于体验字体操作的应用,在基于 Java 的应用程序中加载、编辑、转换和保存字体,包括 TrueType、CFF、OpenType 和 Type1!更多/更专业的API使用有疑问请自行转至官网查看或学习,示例参考如下几点:

(1)提供了将ttf格式的文件转换为svg、woff、ttf等其他格式类型文件;

(2)提供了将otf格式的文件生成文文本输出到jpg格式图片的示例;

(3)提供了将pfb格式的文件生成文文本输出到jpg格式图片的示例;

(4)一些示例并不需要来科学的使用,这些格式的文件也属实不知道使用在哪里,哪里需要去科学,上述两个示例如果使用到了第三方字体会报错“LicenseRestrictionException”,科学使用则不会;

(5)提供了使用反射调用特定的class代码逻辑,无需修改原始的jar;

(6)科学使用的版本有23.10;

2.示例代码

public class AsposeFontReflectTest extends cn.chendd.cells.base.BaseTest {

    @Test
    public void test() throws Exception {

        /*注册 23.10*/
        RegisterFont.registerFont2310();

        File file = new File(getClass().getResource("/Montserrat-Bold.ttf").getPath());
        FontDefinition fontDefinition = new FontDefinition(FontType.TTF , new FontFileDefinition(file));
        final TtfFont font = (TtfFont) Font.open(fontDefinition);

        font.saveToFormat(Files.newOutputStream(Paths.get(super.getRootFile("aspose.font/Montserrat-Bold.svg"))), FontSavingFormats.SVG);
        font.saveToFormat(Files.newOutputStream(Paths.get(super.getRootFile("aspose.font/Montserrat-Bold.woff"))), FontSavingFormats.WOFF);
        font.saveToFormat(Files.newOutputStream(Paths.get(super.getRootFile("aspose.font/Montserrat-Bold.ttf"))), FontSavingFormats.TTF);
    }

}
public class RenderingTextOtfTest extends cn.chendd.cells.base.BaseTest {
    @Test
    public void test() throws Exception {
    
        /*注册 23.10*/
        RegisterFont.registerFont2310();
    
        String fileName = getClass().getResource("/Xiaowei.otf").getPath();
        FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
        Font font = Font.open(fd);
    
        drawText("Hello world11 中国制造", font, 14, Color.WHITE, Color.BLACK, super.getRootFile("aspose.font/hello1_Xiaowei_out.jpg"));
        drawText("Hello world22 中国制造", font, 14, Color.YELLOW, Color.RED, super.getRootFile("aspose.font/hello2_Xiaowei_out.jpg"));
    }
}
public class RenderingTextPfbTest extends cn.chendd.cells.base.BaseTest {

    @Test
    public void test() throws Exception {

        /*注册 23.10*/
        RegisterFont.registerFont2310();

        String fileName = getClass().getResource("/courier.pfb").getPath();

        FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
        Type1Font font = (Type1Font) Font.open(fd);

        drawText("Hello world11", font, 14, java.awt.Color.WHITE, java.awt.Color.BLACK, super.getRootFile("aspose.font/hello1_type1_out.jpg"));
        drawText("Hello world22", font, 14, java.awt.Color.YELLOW, java.awt.Color.RED, super.getRootFile("aspose.font/hello2_type1_out.jpg"));
    }
}

3.运行示例

image.png

(输出全量示例文件)

image.png

(使用某字体文件生成文本并生成图片)

image.png

(使用某字体文件生成文本并生成图片)

4.其它说明

(1)`aspose.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《源码下载与示例.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区