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

提供: MonoBook
2020年12月23日 (水) 03:09時点におけるAdministrator (トーク | 投稿記録)による版 (Administrator がページ「Mono/PDFからテキストを抽出する」を「MonoでPDFからテキストを抽出する」に移動しました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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);
                    }
                }
            }
        }
    }