【问题标题】:How to determine iTextSharp Basefont default style如何确定 iTextSharp Basefont 默认样式
【发布时间】:2012-09-23 13:09:42
【问题描述】:

我正在使用 iTextSharp 创建 PDF。

该过程的一部分向 PDF 添加简单的文本,另一部分创建相同文本的轮廓。

对于直截了当的文本方面,我在 iTextSharp 中使用 ShowTextAligned 方法;这需要 Basefont 并且无法设置样式。

对于大纲,我正在创建一个 GDI GraphicsPath 来获取点,然后将其转换为 PDF 曲线/线条等。AddString 方法需要 Drawing.FontStyle

现在我的问题是我需要将 AddString 的样式设置为 BaseFont 使用的样式。 IE 如果 Basefont 呈现常规,我需要将 AddString 字体样式设置为常规

如何确定 ShowTextAligned 中 BaseFont 使用的样式?

更多信息:

我也尝试过使用 ColumnText;它允许您设置 iTextSharp 字体及其样式。尽管使用此方法会导致以近似样式呈现的字体;即,通常为常规字体并设置为粗体的字体会产生略微畸形的粗体字体。

编辑

当我说我需要将 BaseFont 传递给 ShowTextAligned 时,我的意思是要使用此方法,您必须首先使用 PdfContentByte 的 SetFontAndSize 设置字体和大小 - 正是这种方法需要BaseFont。

我知道我一定是遗漏了一些明显的东西。我就是只见树木不见森林 :)

【问题讨论】:

  • 不知道为什么投反对票。解释可能会有所帮助。

标签: asp.net itextsharp


【解决方案1】:

您可以尝试预先定义基本字体并在整个 PDF 文档中使用它。

iTextSharp - Working with Fonts

示例代码:

BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);

Font times = new Font(bfTimes, 12, Font.ITALIC, Color.RED);

以上行创建了一个 BaseFont 对象并使用内置常量值来设置字体系列和编码。它还为在 PDF 文档中嵌入字体指定 false。使用 BaseFont 对象创建一个新的 Font 对象,并进一步设置以磅为单位的字体大小、样式和颜色 - 再次使用 iTextSharp 的常量作为这些值。

有关 BaseFont 的更多信息,请参阅其class definition

【讨论】:

  • 这并不能解决我的问题——我不知道 ShowTextAligned 方法使用的是什么样式;它采用 BaseFont 而不是 Font。还是我错过了什么?最终,我想知道 BaseFont 采用的是什么风格。再举一个例子。如果我 ShowTextAligned with a BaseFont using Comic Sans MS 它会导致使用粗体样式。 Cooper Black 使用常规。这可以通过创建一个 PDF 文件、将其带入 Illustrator 并输入相同的文本来澄清;玩转风格,看看有什么搭配。
【解决方案2】:

您可以使用 SetColorFill 方法。像这样

content.BeginText();
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252,BaseFont.NOT_EMBEDDED);
content.SetFontAndSizebaseFont, 12);
BaseColor baseColor = new BaseColor(255, 0, 0);
content.SetColorFill(baseColor);
//or use predefined colors 
content.SetColorFill(BaseColor.RED);
// use ShowTextAligned method
content.EndText();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 2016-12-14
    • 2023-03-10
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2018-06-14
    相关资源
    最近更新 更多