BotSharp/src/Plugins/BotSharp.Plugin.KnowledgeBase/Services/PigPdf2TextConverter.cs

33 lines
935 B
C#
Raw Normal View History

2023-08-28 15:24:43 +00:00
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
namespace BotSharp.Plugin.KnowledgeBase.Services;
2023-08-28 15:24:43 +00:00
public class PigPdf2TextConverter : IPdf2TextConverter
{
2023-12-30 03:54:41 +00:00
public async Task<string> ConvertPdfToText(string filePath, int? startPageNum, int? endPageNum)
2023-08-28 15:24:43 +00:00
{
2023-12-30 03:54:41 +00:00
return await OpenPdfDocumentAsync(filePath, startPageNum, endPageNum);
2023-08-28 15:24:43 +00:00
}
2023-12-30 03:54:41 +00:00
private async Task<string> OpenPdfDocumentAsync(string filePath, int? startPageNum, int? endPageNum)
2023-08-28 15:24:43 +00:00
{
var document = PdfDocument.Open(filePath);
var content = "";
foreach (Page page in document.GetPages())
{
if (startPageNum.HasValue && page.Number < startPageNum.Value)
{
continue;
}
if (endPageNum.HasValue && page.Number > endPageNum.Value)
{
continue;
}
content += page.Text;
}
return content;
}
}