Mono/PDFからテキストを抽出する

提供: MonoBook
移動: 案内検索

PDFからテキストを抽出したい。

実装例1[編集]

iTextSharpでテキストの抽出も出来るようだ。 新規にPDFを生成するだけだと思っていたよ。 すごいぞiTextSharp。

Mac上のXamarin StudioNuGetから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);
                    }
                }
            }
        }
    }