gpt4 book ai didi

java - iText 字体策略

转载 作者:行者123 更新时间:2023-12-01 12:48:26 25 4
gpt4 key购买 nike

我有一个网络应用程序,可以根据数据生成 PDF 并允许用户下载。我们有一个自定义字体,因此我注册了四个字体文件(常规、粗体、斜体和粗斜体 ttf 文件)。

  1. 有这个必要吗?我可以只使用常规字体文件并通过字体类设置粗细/样式还是我需要所有文件?看起来效果不错,但我仍在学习。

  2. 管理这些不同字体并将其放入我的文档的良好策略或模式是什么?有人从 Java 的角度对此做了很多工作吗?

最佳答案

您没有告诉我们您如何注册字体,也没有告诉我们您如何使用它们,所以让我告诉您我将如何工作(我是 iText 的原始开发人员)。如果您使用这 4 种字体,最好的方法是像这样注册它们:

BaseFont bfRegular = BaseFont.createFont(regularTTF, BaseFont.IDENTITY_H, BaseFont_EMBEDDED);
BaseFont bfBold = BaseFont.createFont(boldTTF, BaseFont.IDENTITY_H, BaseFont_EMBEDDED);
BaseFont bfItalic = BaseFont.createFont(italicTTF, BaseFont.IDENTITY_H, BaseFont_EMBEDDED);
BaseFont bfBoldItalic = BaseFont.createFont(boldItalicTTF, BaseFont.IDENTITY_H, BaseFont_EMBEDDED);

每当使用低级操作添加内容时,我都会使用这些 BaseFont 实例。

那么我会这样做:

Font fRegular = new Font(bfRegular, 12);
Font fBold = new Font(bfBold, 12);
Font fItalic = new Font(bfItalic, 12);
Font fBoldItalic = new Font(bfBoldItalic, 12);

每当我需要创建高级对象(例如段落)时,我都会使用这些字体。

当然,我可能还需要这样的东西:

Font fRegularSmall = new Font(bfRegular, 9);
Font fBoldSmall = new Font(bfBold, 9);
Font fItalicSmall = new Font(bfItalic, 9);
Font fBoldItalicSmall = new Font(bfBoldItalic, 9);
Font fRegularBig = new Font(bfRegular, 20);
Font fBoldBig = new Font(bfBold, 20);
Font fItalicBig = new Font(bfItalic, 20);
Font fBoldItalicBig = new Font(bfBoldItalic, 20);

通常,我会创建一个辅助类,在其中仅创建一次 BaseFont 对象(它们需要重用),并为 Font 对象创建 getter。

关于java - iText 字体策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com