Я планирую написать приложение, которое сможет открывать и отображать PDF-документы, а также выполнять OCR для векторных графических элементов в PDF-файлах. Пользователь должен иметь возможность выбирать регионы документа, и мне нужно рисовать аннотации в реальном времени на документе. Мне не нужно изменять или сохранять сам документ.
У меня большой опыт работы с C # и WPF; Я уже написал аналогичное приложение, которое делает вышеупомянутые документы XPS / XAML, а не PDF. Однако это приложение работает только в Windows, и документы PDF должны быть сначала преобразованы в XPS.
Я провел немало исследований, и существует множество вариантов, ни один из которых не кажется очевидным выбором. Существует много библиотек, которые могут открывать PDF-файлы или создавать PDF-файлы, но большинство из них, похоже, не предоставляют вам доступ к отдельным элементам векторной графики в формате, который позволяет рисовать или манипулировать ими на экране (аналогично тому, что я мог сделать с графикой WPF элементы, извлеченные из документов XPS).
Я знаком с .Net и C # (включая графику .Net 2 GDI +), и мне очень нравится придерживаться того, что я знаю. Я также использую EmguCV для распознавания изображений, которые могут быть скомпилированы в Mono или .Net. Поэтому я смотрю на Silverlight (автономный) или Mono, которые должны работать на ПК и Mac.
Производительность (как для графики, так и для обработки чисел) очень важна, хотя я так же заинтересован в том, чтобы быстро ее запустить и запустить.
Есть ли у кого-нибудь опыт открытия PDF-файлов, извлечения векторных графических элементов (возможно, в формате SVG) и рендеринга их в приложении Mono? Можно ли визуализировать отдельные элементы в растровом изображении?
В качестве альтернативы, есть ли у кого-нибудь опыт открытия PDF-файлов в Silverlight и преобразования их в XPS или XAML во время выполнения? Я знаю, что графические библиотеки WPF и Silverlight не являются 1: 1, но я не уверен, как это влияет на содержимое XPS (обычно состоит из объектов Canvas, Glyphs и StreamGeometry).
Спасибо за любые советы, советы или ссылки, которыми вы хотите поделиться.