Adobe RM SDK Аннотация
Вы, ребята, использовали RM SDK для iOS? RM SDK сохраняет аннотацию в следующем формате:
startBookmark = "#pdfloc(bd0d,0,101,5,2,0,0,1)"; endBookmark = "#pdfloc(bd0d,0,101,14,0,0,1,1)";
Как мы можем выйти из этих двух строк?
- Как открыть файл PDF с помощью UIView в IOS
- Как отобразить PDF-файл в Objective-C?
- MonoTouch: как загрузить pdf пошагово, как указано в слайдах Apple «Building Newsstand Apps», сессия 504?
- Отображение страницы UIWebView для PDF-файлов на iOS
- Векторное искусство на iOS
- Используйте PDF в XCode для AppIcon (коллекция .appiconset)
- Как я могу сделать Pdf из UIImage?
- Как отобразить сложный UIView в PDF-контекст с высоким разрешением?
- Функция поиска PDF-файлов VFR
- iOS рисует таблицу в формате pdf
- Сохранение PDF-файлов с помощью Swift в iOS и отображение их
- iOS: Как установить шрифт при рисовании текста в формате pdf?
- Преобразование PPT или PPTX в PDF в iOS объектно-c (xcode)
В ваших местоположениях PDF укажите конкретный объект в файле PDF. Этот объект напрямую не связан с координатой (x, y) на экране, поскольку это зависит от разрешения и DPI, которые вы используете для рендеринга PDF-файла. Это также зависит от механизма рендеринга, который вы используете для рендеринга файла.
Чтобы нарисовать ящик в iOS, вам нужно будет нарисовать его, используя (x, y) координаты. Вам нужно получить координаты (x, y), которые находятся вокруг аннотаций, с которыми вы работаете. Вы можете сделать это с помощью RMSDK, используя getRangeInfo . Вы также можете использовать расположенные выше поля PDF, чтобы перейти к конкретной аннотации. Обратите внимание, что поле, в которое вы вернетесь, действителен только для исполнения вашего файла с параметрами, которые у вас есть. Если вы измените любой из параметров – версию RMSDK, значения матрицы навигации, dpi, разрешение рендеринга, вам нужно будет получить новые значения для поля из RMSDK.
Ниже приведен код, который поможет вам получить координаты (x, y) из ваших двух мест с помощью RMSDK. Код предназначен для основной библиотеки C / C ++, так как я не уверен, как выглядит ваш слой Objective-C. Это может отличаться в зависимости от того, какую версию RMSDK вы используете.
dpdoc::RangeInfo* rangeInfo = renderer->getRangeInfo(startBookmark, endBookmark); dpdoc::Rectangle* rect; rangeInfo->getBox(0, false, rect&);
Затем переменная «rect» будет содержать (x, y) координаты для полей, которые нужно рисовать. Обратите внимание, что может быть несколько ящиков для каждых 2 наборов координат. В этом случае вам нужно будет пройти через них.
Если у вас есть слой Objective-C, который обычно поставляется с RMSDK, то он должен быть немного проще. Вы в этом случае должны выглядеть примерно так:
NSArray *boxes = nil; RMRangeInfo *rangeInfo = [document getRangeInfoWithStart:startBookmark end:endBookmark]; boxes = rangeInfo.boxes
Затем вы можете перебирать массив блоков, чтобы получить (x, y) и нарисовать их на экране. В большинстве случаев вы получите 1 поле, но вы должны учитывать случаи, когда у вас есть несколько ящиков для рисования. Простой цикл должен сделать трюк.