我正在尝试使用iText7阅读PDF中使用的所有字体。为此,我创建了一个IEventListener
,它将TextRenderInfo
中的字体读取为:
private class FontReader : IEventListener
{
public ICollection<string> Fonts { get; }
public FontReader()
{
Fonts = new List<string>();
}
public void EventOccurred(IEventData data, EventType type)
{
if (!(data is TextRenderInfo)) return;
var font = ((TextRenderInfo) data).GetFont();
var fontName = font.GetFontProgram().GetFontNames().GetFontName();
if (!string.IsNullOrEmpty(fontName) && !Fonts.Contains(fontName))
{
Fonts.Add(fontName);
}
}
public ICollection<EventType> GetSupportedEvents()
{
return new HashSet<EventType> {EventType.RENDER_TEXT};
}
}
这似乎很好,让我可以阅读所有1型字体。但是调用GetFontProgram()。GetFontNames()。GetFontName()
返回null。
不过,在Acrobat Reader中查看字体确实会显示类型3字体的名称(见截图)。我如何通过c#中的iText7找到这个名称?
您可以访问相应的PDF对象,并使用var fontName=fontName. GetPdfObject(). GetAsName(PdfName. Name)
指令从中获取字体名称。
完整代码示例:
private class FontReader : IEventListener
{
public ICollection<string> Fonts { get; }
public FontReader()
{
Fonts = new List<string>();
}
public void EventOccurred(IEventData data, EventType type)
{
if (!(data is TextRenderInfo)) return;
var font = ((TextRenderInfo) data).GetFont();
var fontName = font.GetPdfObject().GetAsName(PdfName.Name)
}
public ICollection<EventType> GetSupportedEvents()
{
return new HashSet<EventType> {EventType.RENDER_TEXT};
}
}
我正在尝试将字体嵌入到我的pdf/a中。 我找到了很多答案,但使用的是iTextSharp 在我的cas中,我使用iText7,但我所尝试的都是错误的: “所有字体都必须嵌入……” 我有一个ttf文件为我的字体,但我没有找到一种方法嵌入到我的pdf使用它... 有人能帮我吗? 事先谢谢 kor6k
问题内容: 我的CSS 为整个页面指定了“ ”。似乎在某些部分上使用了Verdana。我希望能够验证这一点。 我曾尝试从浏览器复制并粘贴到Word中,但它没有保留字体。 有什么方法可以确定文本部分实际使用哪种字体? Firebug将为我提供如上的字体列表[1],但我没有确定使用哪种字体的方法。 原来使用了错误的列表,这解决了我原来的Verdana问题。但是我仍然很好奇是否有一种方法可以识别实际的渲
我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢
问题内容: 我有两个字体文件,例如:FONT-light和FONT-bold。两者都来自@ font- face工具包,因此每个版本都包含5个字体文件(OGV,TTF,WOFF,EOT)。 要从精简版本转到粗体版本,我必须使用然后。我想使用和代替,因为我需要它到CSS3过渡。我该如何实现? 问题答案: @font-face { font-family: ‘DroidSerif’; src: url
我现在试图修改一个只有文本内容的PDF文件。当我使用 谢谢
这可能是非常基本的,但我在这个问题上挣扎了很长时间,我不得不尝试。 假设我有一个字体“open sans”,字体重量为400 https://fonts.googleapis.com/css?family=Open Sans:400'rel='stylesheet'type='text/css' 我把css中的字体权重设置为700。 我知道浏览器会试图猜测该字体的粗体版本。 我的问题是:就网络排版