CAD日記

AutoCAD,DXF,DWG,SXFなどCADのことから、仮想通貨や投資関係、PC関係、プログラミング、国内海外旅行情報など何でもござれ。@caddiary

ソフト開発

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

投稿日:

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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

マルチスレッドプログラミング(C#編)

マルチスレッドプログラミング(C++編) マルチスレッドプログラミング(VB.net編) に続く第三弾はC#編。

no image

軌道に乗ったか!?

 この11月の売り上げ本数が、10本の大台にのりました。私が最も力を入れているCAD関連ツールがです。喜ばしいことです。関係各位への感謝がつのります。  思えば半年前、あるユーザーの要望から始まったこ …

PDFアレコレにパスワード入力と情報表示を追加

オープン時のパスワードが設定されているPDFでパスワード入力できるようにしたのと、タイトルや作成者の情報を確認できるようにした版はこちら。

no image

x64

Windowsの64ビット動作って、まだまだ先ですかね、という話をしてみます。  コンピュータが16ビットだった時代、私はこの業界に入りました。正確に言うと、CPUは32ビットになっていたが、その上で …

no image

C言語

遡ること10数年、初めて学んだコンピュータ言語がC言語でした。以来、ずっとやってます。机の上には本が一冊。 「実習C言語」(アスキー・ラーニングシステム) この本の画像を探してみましたが、古いだけにみ …