Вопрос или проблема
Я ищу бесплатный или дешевый вариант библиотеки для работы с PDF на C#. В данный момент я использую пробную версию Syncfusion в приложении WPF. Мне нужна библиотека, которая позволит мне собирать координаты страниц при нажатии на них и также сможет перемещаться к определённым координатам, а также приближаться.
В текущей программе я могу щелкнуть по точке в своем PDF, получить координаты страницы, а затем выполнить некоторые вычисления на основе этой точки. После того как я обработаю вычисления, я смогу нажать кнопку, чтобы увеличить масштаб и переместиться к определённым координатам в PDF. Есть ли что-то подобное бесплатно?
Ответ или решение
Обзор доступных библиотек для работы с PDF в C
Вам требуется библиотека для работы с PDF-документами в приложении WPF на C#, которая позволяла бы собирать координаты страниц при клике, перемещаться к конкретным координатам и осуществлять масштабирование. Рассмотрим несколько доступных решений, которые могут удовлетворять вашим требованиям, и при этом имеют низкую стоимость или полностью бесплатны.
1. PDFium
PDFium — это мощная, бесплатная библиотека с открытым исходным кодом, разработанная Google. Она предоставляет API для обработки PDF-документов. В сочетании с WPF это решение может обеспечить получение координат при клике и показывать документ в нужной области:
- Получение координат: Вы можете использовать обработчик событий кликов, чтобы определить координаты в Page, применив математику для преобразования экранных координат в координаты документа.
- Перемещение к координатам: После обработки координат, вы можете использовать функции API для установки позиции отображаемого контента.
- Масштабирование: PDFium поддерживает функции масштабирования, которые позволяют пользователю увеличить документ до нужного размера.
2. PdfSharp и MigraDoc
PdfSharp — это еще одна бесплатная библиотека для работы с PDF в C#. Хотя основная цель этой библиотеки — создание PDF-документов, также можно использовать ее для чтения существующих PDF.
- Получение координат: Вам нужно будет получить доступ к объектам графики и использовать события для обработки клика.
- Перемещение и зум: PdfSharp сама не поддерживает такие функции напрямую, но вы можете создать пользовательский интерфейс с использованием WPF для управления отображением страницы. С помощью дневника MigraDoc можно расширить функциональность, но возможно, вам придется реализовать технологии для управления просмотром вручную.
3. Spire.PDF for .NET
Spire.PDF предоставляет бесплатную версию с ограничениями, но с подходящими функциональными возможностями для ваших нужд.
- Координаты клика: Специальные методы библиотеки позволяют легко обсуждать события кликов на страницах.
- Перемещение и масштабирование: Spire.PDF поддерживает изменение масштаба и перемещение к координатам, что также можно реализовать через привязку данных в WPF.
4. PDF.js в сочетании с C# Backend
Если вы открыты для альтернативных подходов, вы можете рассмотреть вариант использования PDF.js, библиотеки для JavaScript, в сочетании с вашим C# бэкендом. Это потребует настройки веб-компонента для отображения PDF в приложении:
- Получение координат при клике: JavaScript позволяет легко обрабатывать события клика и получать координаты.
- Перемещение и масштабирование: PDF.js поддерживает функции для изменения масштаба и прокрутки, которые можно использовать непосредственно в JavaScript.
Заключение
Каждое из предложенных решений имеет свои плюсы и минусы, поэтому выбор подходящей библиотеки зависит от ваших технических требований, бюджета и личных предпочтений. Если вы ищете полностью бесплатное решение с необходимой функциональностью, PDFium вероятно будет вашим лучшим выбором. Однако, если для вас важна дополнительная поддержка и гибкость, стоит рассмотреть варианты с Spire.PDF или даже использовать PDF.js с C# бэкендом.
Для успешной реализации рекомендуется провести тестирование каждого решения, чтобы определить, какое из них наилучшим образом отвечает вашим требованиям.