PDF изображения не отображаются в UIWebView - PullRequest
0 голосов
/ 03 ноября 2018

У меня проблема с изображениями PDF, которые не отображаются в UIWebView

Путь логики таков: 1. UIWebView получает строку base64 2. Конвертировать строку в NSData 3. Загрузите NSData в UIWebView

Вот часть кода

NSString *b64 = @"JVBERi0xLjMNCiW9vrwNCjEgMCBvYmoNCjw8DQoJL0Jhc2VGb25...."; 
NSData *d =[[NSData alloc] initWithBase64EncodedString:b64 options:nil];
[uiWebview loadData:d MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

Есть обходной путь, который мне удается показать изображения в UIWebView, обходной путь -

  1. Скопируйте строку base64 в онлайн-конвертер, чтобы преобразовать ее в файл PDF
  2. Снова экспортируйте туда pdf-файл, используя Mac Application Preview, используя «Экспорт в PDF»
  3. Снова преобразовать файл в строку base64 и отобразить в UIWebView

Но этот обходной путь невозможен, так как у меня нет приложения Preview в приложении

Я также заметил, что перед тем, как я «Экспортирую как PDF» в приложении «Просмотр», PDF можно редактировать, например, изображения можно перетаскивать или удалять.

Так что мой вопрос будет,

  1. Я неправильно реализовал код UIWebView?

  2. Есть ли какая-либо библиотека для «Экспорт в PDF» для приложения iOS? Я изучал PDFKit, но в нем, похоже, есть функция экспорта

1 Ответ

0 голосов
/ 03 ноября 2018

b64 относится к типу NSString

initWithBase64EncodedData: b64 options: nil нуждается в качестве первого параметра NSData.

Попытка:

NSString *b64 = @"JVBERi0xLjMNCiW9vrwNCjEgMCBvYmoNCjw8DQoJL0Jhc2VGb25...."; 
NSData *d =[[NSData alloc] initWithBase64EncodedString:b64 options:nil];
[uiWebview loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

Или попробуйте:

[[PDFDocument alloc] initWithData: d];

чтобы получить PDF из строки base64.

...