Я написал две программы конвертации PDF в XAML, основанные на библиотеке PDFRenderer (с открытым исходным кодом). Мне нужно это, чтобы преобразовать мои математические документы и/или рисунки в XAML, чтобы я мог вставлять их в общую доску (из моего собственного дизайна) при обучении через Интернет, см. http://www.mathcoach.ch/blog/?p=30.
Основная проблема заключается в преобразовании ссылок на шрифты («глифы»). Если вы используете PDFRenderer, который включает в себя преобразование ссылок на шрифты в контуры, легко создать код XAML, содержащий только элементы Path. Поскольку XAML, насколько мне известно, не позволяет прямо вставлять изображения, мои две программы преобразования делают не конвертируют растровые изображения, а просто отбрасывают их (конвертируя растровые изображения, это просто то, что я не считаю своим временем момент).
Чтобы преобразовать PDF-файлы в XAML с использованием только элементов Path, вы можете просто реализовать объект Graphics2D (это упрощает работу, если вы наследуете org.apache.batik.ext.awt.g2d.AbstractGraphics2D). Основными методами реализации в этом случае являются fill() и stroke(), что легко сделать, потому что объекты GeneralPath Java2 очень аккуратно отображают элементы пути XAML (линейные сегменты, квадратичные и кубические сегменты Безье).
Обратите внимание, что если исходный PDF-файл содержит много текста (ссылки на глиф), то полученный XAML-код будет большим. Около 2 МБ на страницу формата А4. Однако он отлично работает с математическими чертежами, которые содержат относительно немного ссылок на глиф.
Для моих собственных PDF-файлов я могу хранить ссылки на глиф, т. Е. Не нужно преобразовывать их в контуры и, следовательно, в элементы Path, потому что я использую только шрифты, которые обязательно будут установлены на машине, где документ должен отображаться. Кроме того, для этого требуется относительно хрупкий процесс преобразования индексов глифов, чтобы они были в порядке, если они использовались в качестве индексов в установленных файлах шрифтов.
Я пошел с этим, потому что документы были действительно слишком большими. Я показываю их только в одном размере, потому что есть некоторые проблемы с включением BookControl в ScatterViewItem (переключение не будет работать так, как должно). – Hedge
-1 Речь идет о рендеринге PDF в Radbook и не ищем альтернатив. –
@ Ravi В этом вопросе ничего не было. Я не притворяюсь психическим. – IanGilham