Processus bloqués lors du chargement de formulaires PDF sur Linux

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

Sur Linux (par exemple, Debian avec .NET 8), OcrInput.LoadPdf() peut se bloquer indéfiniment lors du chargement de certains fichiers PDF contenant des champs de formulaire interactifs. L'appel ne revient jamais et le processus se bloque.

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

La couche de formulaire interactif dans certains PDFs est le déclencheur. Le même fichier se charge correctement sur Windows, et d'autres PDF de formulaire peuvent aussi se charger correctement sur Linux, ce qui rend le problème incohérent et difficile à attraper avant qu'il ne se manifeste en production.

Solution

Aplatissez le PDF avant de le passer à IronOCR. L'aplatissement convertit chaque champ de formulaire en contenu de page statique, supprimant la couche interactive responsable du blocage.

1. Aplatissez le PDF avec IronPDF

Chargez le fichier source, aplatissez-le et enregistrez une copie statique :

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() supprime les champs de formulaire interactifs, laissant derrière un document simple qu'IronOCR peut ouvrir sans se bloquer.

2. Exécutez l'OCR sur le fichier aplati

Pointez LoadPdf() vers la copie aplatie, puis lisez comme d'habitude :

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

En plus de prévenir le blocage, l'aplatissement assure un comportement cohérent sur les plateformes, élimine les éléments interactifs dont l'OCR n'a pas besoin et réduit la complexité du fichier pour un traitement plus rapide.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 6,136,090 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronOcr
lancez un échantillon regardez votre image se transformer en texte consultable.