CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

PDFiumはPDFからテキスト抽出するのもちょー簡単

投稿日:2018年9月11日 更新日:

PDFiumを語るのに日本語はいらない。プログラマーはプログラム言語で語る。PDFiumの処理は、tryとfinallyのところだけを見てくれればよい。たったこれだけでPDFからテキストを抽出できるのだ。しかもかなり処理が速いぞ。

// テキスト抽出
private void button3_Click(object sender, EventArgs e)
{
    // 結果コントロール初期化
    UpdateResult("", "");
    Update();
    // Waitカーソル
    Cursor preCursor = Cursor.Current;
    Cursor.Current = Cursors.WaitCursor;
    // 時間計測開始
    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
    sw.Start();

    bool stat = true;
    string text = "";
    string strSrc = textBox1.Text;
    int pos = strSrc.LastIndexOf('.');
    string strDst = strSrc.Substring(0, pos) + "[text]" + ".txt";
    try
    {
        pdfDoc = PdfDocument.Load(strSrc);
        for (int i = 0; i < pdfDoc.PageCount; i++)
            text += pdfDoc.GetPdfText(i);
        if (text != null)
        {
            Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
            using (StreamWriter writer = new StreamWriter(strDst, false, sjisEnc))
            {
                writer.WriteLine(text);
            }
        }
    }
    catch
    {
        UpdateResult("失敗", "PDFiumで例外エラー");
        stat = false;
    }
    finally
    {
        if (stat)
            UpdateResult("成功", "");
        Cursor.Current = preCursor;  // Waitカーソル解除
        if (!pdfDoc.Equals(null))
        {
            pdfDoc.Dispose();  // 明示的に破棄する必要あり(PDFがロックされてしまう)
            pdfDoc = null;
        }
    }
    // 時間計測終了
    sw.Stop();
    TimeSpan ts = sw.Elapsed;
    int t1 = (int)ts.TotalMilliseconds;
    double t2 = t1 / 1000.0;
    textBox5.Text = t2.ToString();
}

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

PDFに捺印したけりゃコレ使え「PDFアレコレ」

こんな感じでPDFに捺印したいことはよくある。 Adobe Readerでもできるんだけど、ちゃんとした印鑑を押そうとするとかなりタイヘン。 【Acrobat Reader】PDFで簡単に電子印鑑する …

no image

CADツール第2弾

 PMツールに続いてのCADツール第2弾を思いつきました。今まで、いくつかの企画があり、手をつけたものもあるのですが、いまいち乗り気にならなくてポシャってました。シリーズものとして継続したいところなの …

PDFへのなんちゃって捺印ではつまらんのでデジタル署名とタイムスタンプを付けてみることを検討中

PDFアレコレで捺印できるようにしたのはいいけど、しょせんはなんちゃって捺印。だって、好きな印影が作れてヒョっと捺印できちゃうわけで、なりすましができてしまうから。そんなこと言ったら、アナログな印鑑だ …

no image

ファイル選択でアプリ即死

まずはキーワードを並べる。 ・ファイル選択ダイアログ ・デスクトップ ・ツールチップ ・マウスカーソル ・2回目 ・落ちる(スッといなくなる) ・Adobe Reader 7 ・pdfshell.dl …

MSDNサブスクリプションっていくらするの?

MSDNとはMicrosoft Developer Networkの略で昔から使われてきた用語で、MSDNサブスクリプションという呼び名があったが、最近ではVisual Studioサブスクリプション …