我正在尝试使用 Ghostscript 和 Tesseract 3.0.2 以 pdf 顺序识别文本。
我不能使用 itextsharp,因为 pdf 不包含文本,而只是一个图像。
首先,我将 pdf 页面转换为图像,然后尝试获取文本。
在第一次测试中,我尝试获取所有将“preserve_interword_spaces”变量设置为 true 的文本,但我发现表中“Articolo”列中的信息丢失了。在我尝试只获得像“Consegna”这样的列之后,但缺少一些“/”符号。
我用过这段代码:
string sDLLPath = @".\gsdll64.dll";
GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(sDLLPath);
using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
{
rasterizer.Open(path_file_pdf, gvi, false);
int dpi_x = 600;
int dpi_y = 600;
for (int i = 1; i <= rasterizer.PageCount; i++)
{
Image imgg = rasterizer.GetPage(dpi_x, dpi_y, i);
imgg.Save(".\\Temp2.png", System.Drawing.Imaging.ImageFormat.Png);
using (var tEngine = new TesseractEngine(@".\tessdata", "ita", EngineMode.Default))
{
tEngine.SetVariable("tessedit_char_whitelist", "/0123456789");
using (var img = Pix.LoadFromFile(".\\Temp2.png"))
{
Tesseract.Rect region = new Tesseract.Rect(4120, 3215, 550, 840);
using (var page = tEngine.Process(img, region, PageSegMode.SingleBlock))
{
var text = page.GetText();
Console.WriteLine(text);
Console.WriteLine(page.GetMeanConfidence());
Console.ReadKey();
}
}
}
}
}
有人可以帮我获取图像中的整个文本吗?提前致谢
这是图片链接 (Temp2.png)。