Linux에서 PDF 양식 로딩 시 프로세스 중지
Linux에서는 (예: .NET 8이 포함된 Debian) OcrInput.LoadPdf()이(가) 대화형 양식 필드가 포함된 특정 PDF 파일을 로드할 때 무한정 대기할 수 있습니다. 호출은 돌아오지 않고 프로세스가 멈춥니다.
Process hangs at OcrInput.LoadPdf() and never proceeds.
일부 PDF의 대화형 폼 레이어가 원인입니다. Windows에서는 같은 파일이 제대로 로드되고, 다른 폼 PDF들도 Linux에서 잘 로드될 수 있어, 문제가 불규칙적이며 생산 환경에서 나타나기 전에는 발견하기 어렵습니다.
해결책
IronOCR에 전달하기 전에 PDF를 평면화하세요. 평면화는 모든 폼 필드를 정적 페이지 콘텐츠로 변환하여 중단을 유발하는 대화형 레이어를 제거합니다.
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")
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
중단 예방 외에도 평면화는 플랫폼 간에 일관성 있는 동작을 제공하고, OCR이 필요하지 않은 대화식 요소를 제거하며, 파일 복잡성을 줄여 처리 속도를 높입니다.

