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

関連記事

no image

クラッカー

知人が被害を受けました。以下、知人の経験談です。 便利なソフトを作って一儲けしたい! シェアウェアとして公開して、誰でもダウンロードできるようにすることを考えました。まずは使ってもらわないと、その良さ …

PDFアレコレVer1.01リリース

趣味のプログラムってホント楽しくて、平日の夜中だってのに眠りを忘れて取り組んでしまった。

no image

簡単インストーラ

インストーラと言えば、Install Shield です。最新バージョンは11.0で価格は44万1千円。高いんです。高機能版(Premier Edition)で、多国語(全33ヶ国語)対応という代物だ …

no image

PDFiumでPDFを描画したりなんだりできるんだとさ

まずはこちらのネットニュースをご覧あれ。2014年に書かれたものでおもしろいことが書いてある。

no image

テキストファイルの最大行数

バカでかいテキストファイルを作る必要があって、結果約2GBにもなった。 CADから出力するんだけど、7.5時間もかかってしまった。 中身を見ようと思って、おなじみ秀丸くんで開こうとしたら開けなかった。 …