LinuxでのPDFフォームのロード中のプロセス停止

This article was translated from English: Does it need improvement?
Translated
View the article in English

Linux(例えば、.NET 8 のDebian)では、インタラクティブなフォームフィールドを含む特定のPDFファイルを読み込むときに、OcrInput.LoadPdf() が無限にフリーズすることがあります。 呼び出しが返らず、プロセスが停滞します。

Process hangs at OcrInput.LoadPdf() and never proceeds.

一部のPDFにはインタラクティブフォームレイヤーがトリガーになります。 同じファイルはWindowsでは正常にロードされ、他のフォームPDFはLinuxでも正常にロードされる可能性があるため、問題は一貫性がなく、運用環境に現れる前に検出しにくいです。

解決策

PDFをIronOCRに渡す前にフラット化してください。 フラット化は、インタラクティブフォームフィールドを静的ページコンテンツに変換し、停止を引き起こすインタラクティブレイヤーを取り除きます。

1. IronPDFでPDFをフラット化する

ソースファイルをロードし、フラット化して静的コピーを保存します:

using IronPdf;

var pdf = PdfDocument.FromFile("ocrpdfform.pdf");
pdf.Flatten();
pdf.SaveAs("flattened_ocrpdfform.pdf");
using IronPdf;

var pdf = PdfDocument.FromFile("ocrpdfform.pdf");
pdf.Flatten();
pdf.SaveAs("flattened_ocrpdfform.pdf");
Imports IronPdf

Dim pdf = PdfDocument.FromFile("ocrpdfform.pdf")
pdf.Flatten()
pdf.SaveAs("flattened_ocrpdfform.pdf")
$vbLabelText   $csharpLabel

Flatten() はインタラクティブなフォームフィールドを削除し、IronOCRが停止せずに開けるプレーンドキュメントを残します。

2. フラット化されたファイル上でOCRを実行する

平坦化されたコピーにLoadPdf()を向け、その後通常通りに読み取ります:

using var ocrInput = new OcrInput();
ocrInput.LoadPdf("flattened_ocrpdfform.pdf"); // No longer stuck

var ocr = new IronTesseract();
var result = ocr.Read(ocrInput);
Console.WriteLine(result.Text);
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("flattened_ocrpdfform.pdf"); // No longer stuck

var ocr = new IronTesseract();
var result = ocr.Read(ocrInput);
Console.WriteLine(result.Text);
Imports IronTesseract

Using ocrInput As New OcrInput()
    ocrInput.LoadPdf("flattened_ocrpdfform.pdf") ' No longer stuck

    Dim ocr As New IronTesseract()
    Dim result = ocr.Read(ocrInput)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

停止を防ぐ以外にも、フラット化はプラットフォーム全体で一貫した動作を提供し、OCRが必要としないインタラクティブ要素を削減し、処理を高速化するためのファイルの複雑さを減少させます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 6,136,090 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。