У кого-нибудь есть опыт работы с PDF, в которых есть изображения, закодированные как ccitt.
Я использую Xamarin, кажется, почти все PDF-файлы работают. Но эта кодировка кажется борьбой. Приложение для iOS.
Размер страницы правильный, но полностью пустой.
var pageRect = _page.GetBoxRect(CGPDFBox.Media);
pageRect.Size = new CGSize(pageRect.Size.Width, pageRect.Size.Height);
//pageRect.Origin = CGPointZero;
UIGraphics.BeginImageContext(pageRect.Size);
CGContext context = UIGraphics.GetCurrentContext();
//White BG
context.SetFillColor(1.0f, 1.0f, 1.0f, 1.0f);
context.FillRect(pageRect);
context.SaveState();
// Next 3 lines makes the rotations so that the page look in the right direction
context.TranslateCTM(0.0f, pageRect.Size.Height);
context.ScaleCTM(1.0f, -1.0f);
CGAffineTransform transform = _page.GetDrawingTransform(CGPDFBox.Media, pageRect, 0, true);
context.ConcatCTM(transform);
context.DrawPDFPage(_page);
context.RestoreState();
UIImage img = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
return img;
_page - это объект CGPDFPage
.
Или у кого-нибудь есть фрагмент для получения изображений из файла PDF?
DrawPDFPage, я думаю, проблема, которая не может справиться с этим PDF.
Отрывки в swift или c не проблема
Обновление
Я использую в своем приложении по умолчанию CATiledLayer
. Это отобразит pdf по частям (плиткам), поэтому большие pdf будут показывать части, вместо этого ожидая долгое время.
Я обнаружил, что когда кодировка установлена, приведенный выше код будет работать, потому что сначала он отображает полный pdf, а затем показывает на экране.
CATiledLayer в этом случае не работает и показывает пустую / пустую страницу.
Теперь я буду искать способ, которым CGPDFDocument или CGPDFPage вернет мои метаданные, чтобы я мог просматривать кодировку.
Кто-нибудь уже сталкивался с?