Вы можете перечислить все текстовые объекты на странице PDF с помощью Docotic.Pdf library. Для каждого текстового объекта доступна информация о шрифте и размере объекта. Ниже приведен пример
public static void listTextObjects(string inputPdf)
{
using (PdfDocument pdf = new PdfDocument(inputPdf))
{
string format = "{0}\n{1}, {2}px at {3}";
foreach (PdfPage page in pdf.Pages)
{
foreach (PdfPageObject obj in page.GetObjects())
{
if (obj.Type != PdfPageObjectType.Text)
continue;
PdfTextData text = (PdfTextData)obj;
string message = string.Format(format, text.Text, text.Font.Name,
text.Size.Height, text.Position);
Console.WriteLine(message);
}
}
}
}
код будет выводить строки, как следующее для каждого текстового объекта на каждой странице входного файла PDF.
FACTUUR
Helvetica-BoldOblique, 19.04px at { X=51.12; Y=45.54 }
Вы можете использовать найденную информацию, чтобы найти большой текст или жирный текст или текст с другими свойствами, используемых для форматирования заголовка.
Если ваш PDF гарантированно имеет заголовок в качестве верхнего текста на странице, чем вы можете использовать более простой подход
public static void printText(string inputPdf)
{
using (PdfDocument pdf = new PdfDocument(inputPdf))
{
foreach (PdfPage page in pdf.Pages)
{
string text = page.GetTextWithFormatting();
Console.WriteLine(text);
}
}
}
Метод GetTextWithFormatting
возвращает текст в порядке чтения (т.е. от верхнего левого до правой нижней части должность).
Отказ от ответственности: Я являюсь разработчиком библиотеки.
Вы не сообщаете нам, как вы пытаетесь извлечь текст из PDF. Если вы используете iTextSharp, этот вопрос является возможным дубликатом [Можно ли использовать стратегию извлечения текста после применения стратегии удаления местоположения в itextpdf?] (Http://stackoverflow.com/questions/24506830/can-we-use-text- экстракция-стратегия-после-нанесения-расположения-экстракционной-стратегия). В этом вопросе кто-то добавляет дополнительную стратегию экстракции, которая проверяет шрифт текста, который извлекается, чтобы фильтровать определенный текст из PDF. –
* Есть ли способ сделать это? * - вы должны указать свою библиотеку PDF по выбору. Любая библиотека PDF, позволяющая извлекать текст, также должна позволять извлекать текст шрифтом или размером. – mkl
Я не говорю, как я это делаю, потому что это не очень важно для решения. В этом случае я не против изменять используемую библиотеку. (Я использовал PdfSharp и PDFBox. У обоих вроде бы нет таких возможностей ...) – derBasti