Ищете бесплатную для коммерческого использования или библиотеку .net с открытым исходным кодом для преобразования pdf в docx

У меня есть проект, связанный с чтением pdf-файлов, и он оказался сложнее, чем я ожидал. Есть ли библиотека, которую я могу использовать для преобразования pdf в docx, чтобы я мог использовать OpenXml SDK для его анализа?

openoffice|libreoffice имеет команду/режим преобразования формата без заголовка - можете ли вы просто exec()что-то еще?
Я планировал преобразовать документ PDF во временный файл слова, затем прочитать этот файл с помощью openxml, а затем удалить временный файл. Кстати, я на Windows, поэтому libreoffice не работает. Я не знаком с опен офисом.

Ответы (2)

AbleWord (для Windows ):

AbleWord — это очень мощное приложение для обработки текстов, которое может читать и записывать документы в большинстве популярных форматов, включая PDF. Он полнофункциональный, поддерживает форматирование изображений, таблицы, верхние и нижние колонтитулы, а также включает функции проверки орфографии и предварительного просмотра перед печатью. Лучше всего это абсолютно бесплатно даже для коммерческого использования.

Инструкции по конвертации PDF в Word (включая docx ) можно найти здесь .

Я ищу библиотеки кода, с которыми я могу это сделать, а не приложение. Я хочу, чтобы программа делала это автоматически, не требуя от пользователя еще одного шага перед анализом данных.
@ emsimpson92 Вы можете выполнить его из своей программы и получить результат.

Похоже, вы можете выполнить свое требование, проанализировав содержимое PDF с помощью С#. Если это так и вам нужен в основном текст, в следующей статье обсуждаются некоторые бесплатные (и не очень) варианты получения текста из PDF: https://www.codeproject.com/Articles/12445/Converting-PDF-to -Текст-в-C

Если вам нужен не просто текст, а другое содержимое PDF, такое как текст, изображения и аннотации, возможно, вам придется использовать профессиональный SDK, такой как LEADTOOLS. (Отказ от ответственности: я сотрудник поставщика этой библиотеки). Код для извлечения текста таков:

StringBuilder sb;
sb = new StringBuilder();
PDFDocument document = new PDFDocument("filename.pdf");
PDFParsePagesOptions options = PDFParsePagesOptions.Objects;
document.ParsePages(options, 1, -1);
foreach (PDFDocumentPage page in document.Pages)
{
   Console.WriteLine("Page #" + page.PageNumber.ToString() + " Started");
   foreach (PDFObject obj in page.Objects)
   {
      if (obj.ObjectType == PDFObjectType.Text)
      {
         if (obj.TextProperties.IsEndOfLine)
            sb.AppendLine(obj.Code.ToString());
         else
            sb.Append(obj.Code);
      }
   }
   Console.WriteLine("Page #" + page.PageNumber.ToString() + " finished");   
}
this.Text = "Finished";
textBox1.Text = sb.ToString();

Аналогичный код (но с другими флагами) можно использовать для получения изображений и других типов объектов.

Если вы не хотите анализировать PDF-файл, а только конвертируете его в DOCX, в LEADTOOLS также есть класс DocumentConverter , который может это сделать.

У инструментария есть бесплатная ознакомительная версия , которую вы можете попробовать, прежде чем решить, покупать ее или нет.