Я пытаюсь разделить PDF по его заголовкам в зависимости от его размера или шрифта.
В настоящее время я могу извлечь только шрифты PDF, но мне нужно знать размер или шрифт, чтобы увидеть, если этотекст это заголовок. Я не знаю, как читать PDF по его заголовкам с определенным размером или шрифтом, я знаю, что он может извлечь текст, но это просто, простой текст, как узнать, какой размер или шрифт у этого текста?
Кстати, мне удалось разделить PDF по его закладкам, а также по "детям" закладки
, но мне нужно разделить PDF еще глубже. Вот почему я пытаюсь заставить названия разделить PDF по ним.
Я провел некоторое исследование, но не смог найти что-то очень полезное для этого случая.
Вот некоторые вопросы:
Какой-то код
HashSet<String> fontNames = new HashSet<string>();
PdfDictionary resources;
for (int p = 1; p <= reader.NumberOfPages; p++)
{
PdfDictionary dic = reader.GetPageN(p);
resources = dic.GetAsDict(PdfName.RESOURCES);
if (resources != null)
{
//get fonts dictionary
PdfDictionary fonts = resources.GetAsDict(PdfName.FONT);
if (fonts != null)
{
PdfDictionary font;
foreach (PdfName key in fonts.Keys)
{
font = fonts.GetAsDict(key);
String name = font.GetAsName(PdfName.BASEFONT).ToString();
fontNames.Add(name);
}
}
}
}
Другой способ List<object[]> fonts2 = BaseFont.GetDocumentFonts(reader);
Другой код: получить текст
ITextExtractionStrategy strategy = new LocationTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(reader, i, strategy);
words = currentText.Split('\n');
for (int j = 0, len = words.Length; j < len; j++)
{
line = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(words[j]));
}