以下のメソッドは、特定の pdf ファイルの FileInfo を取り込み、その pdf をビットマップに変換します。この方法はランダムに動作するようです。問題なく終了する場合もあれば、using (Bitmap bmp = image.ToBitmap())
一部で失敗する場合もあります。その行に到達すると、「パラメーターが無効です」というエラーが表示されます。このランダムなエラーを修正する方法も、さらに詳しく分析する方法もわかりません。どんな助けでもいただければ幸いです
static void ParseOutEachBitmap(FileInfo[] pdfFiles)
{
string BmpPath = "C:\\temp\\bmps\\";
if (!Directory.Exists(BmpPath))
{
Directory.CreateDirectory(BmpPath);
}
using (MagickImageCollection images = new MagickImageCollection())
{
MagickReadSettings settings = new MagickReadSettings();
settings.Density = new MagickGeometry(300, 300);
for (int p = 0; p < pdfFiles.Count(); p++)
{
images.Read(@"c:\temp\pdfs\" + pdfFiles[p].Name, settings);
int pageNumber = 1;
string pdfName = pdfFiles[p].Name;
foreach (MagickImage image in images)
{
using (Bitmap bmp = image.ToBitmap())
{
Console.WriteLine("PDF Filename: " + pdfName);
Console.WriteLine("Page Number: " + pageNumber + " of " + images.Count);
pageNumber++;
using (tessnet2.Tesseract tessocr = new tessnet2.Tesseract())
{
tessocr.GetThresholdedImage(bmp, System.Drawing.Rectangle.Empty).Save("c:\\temp\\bmps\\" + Guid.NewGuid().ToString() + ".bmp");
}
}
}
}
}
}