MonoでPDFからテキストを抽出する
2020年12月23日 (水) 03:09時点におけるAdministrator (トーク | 投稿記録)による版 (Administrator がページ「Mono/PDFからテキストを抽出する」を「MonoでPDFからテキストを抽出する」に移動しました)
PDFからテキストを抽出したい。
実装例1
iTextSharpでテキストの抽出も出来るようだ。 新規にPDFを生成するだけだと思っていたよ。 すごいぞiTextSharp。
Mac上のXamarin StudioでNuGetからiTextSharpを入れて試してみたがMonoでも問題なく動くようだ。 今のところ互換性問題やプラットフォーム依存はないと思われるのでMonoMacなんかでも大丈夫だと思う。
using System;
using System.IO;
using System.Linq;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
class MainClass
{
public static void Main(string[] args)
{
var filename = "test.pdf";
using (var pdfReader = new PdfReader(filename))
{
var strategy = new SimpleTextExtractionStrategy();
for (int pageNum = 1; pageNum <= pdfReader.NumberOfPages; pageNum++)
{
// 1ページまるごとテキスト化
var text = PdfTextExtractor.GetTextFromPage(pdfReader, pageNum, strategy);
// 行単位に分割
var lines = text.Split('\n');
for (int lineNum = 1; lineNum <= lines.Length; lineNum++)
{
var line = lines[lineNum - 1];
Console.WriteLine("{0:D2}:{1:D2}|{2}", pageNum, lineNum, line);
}
}
}
}
}