Я использую приведенный ниже фрагмент кода для преобразования страниц документа PDF в изображения (.jpg) с помощью пакета с открытым исходным кодом iTextSharp v5.5.13.
List<string> pdfImage = new List<string>();
string fileName = Path.GetFileNameWithoutExtension(pdfFullPath);
var pdf = new PdfReader(pdfFullPath);
int n = pdf.NumberOfPages;
for (int j = 1; j <= n; j++)
{
var pg = pdf.GetPageN(j);
var res = PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES)) as PdfDictionary;
var xobj = PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT)) as PdfDictionary;
if (xobj == null) continue;
var keys = xobj.Keys;
if (keys.Count == 0) continue;
var obj = xobj.Get(keys.ElementAt(0));
if (!obj.IsIndirect()) continue;
var tg = PdfReader.GetPdfObject(obj) as PdfDictionary;
var type = PdfReader.GetPdfObject(tg.Get(PdfName.SUBTYPE)) as PdfName;
if (!PdfName.IMAGE.Equals(type)) continue;
int XrefIndex = (obj as PRIndirectReference).Number;
var pdfStream = pdf.GetPdfObject(XrefIndex) as PRStream;
var data = PdfReader.GetStreamBytesRaw(pdfStream);
var jpeg = Path.Combine(pdfImgPath, string.Format(fileName + j + ".jpg"));
System.IO.File.WriteAllBytes(jpeg, data);
pdfImage.Add(Path.GetFileName(jpeg));
}
Этот фрагмент кода принимает только изображения на каждой странице документа PDF, а не всю страницу. Я ожидаю, что вывод должен быть 'n' нет изображений, которые имеют все содержимое страниц документа PDF, где n -> нет. страниц в PDF документе. Может ли кто-нибудь помочь мне понять, что я должен изменить в своем коде, чтобы получить желаемый результат?