Извлечение текста PDF в Objective C

Прежде всего, вы должны учитывать, что индексы не всегда являются хорошей идеей .

Если Oracle будет читать большинство данных из таблицы, она будет использовать FULL TABLE SCAN, поскольку это быстрее, чем сначала чтение блоков индекса, а затем чтение блоков данных. Слишком много операций ввода-вывода.

Теперь вернемся к вашему вопросу.
Вы можете заставить Oracle использовать индекс, если хотите, предоставив подсказку:

/*+ INDEX(table_name index_name) */

Вы можете добавить его в свой запрос и проверить, что происходит с планом запроса, и сколько будет стоить новый план:

SELECT  /*+ INDEX(tableA index_name) */     --replace 'index_name' with the name of your index
        d.id,
        'Status' "ImportStatus",
        p.importid "ImportID",
        macid,
        p.daterequire "CreateDate",
        p.dateimport "DateImPort",
        TRANSLATE(p.accrequire USING NCHAR_CS) "CreateBy",
        TRANSLATE(p.accimport USING NCHAR_CS) "AccImPort",
        0 "isEdit",
        employee,
        deptid partner,
        equipmentid
    FROM
        (
            SELECT 
                id,
                importid,
                daterequire,
                dateimport,
                accrequire,
                accimport,
                subdeptid employee,
                deptid
            FROM
                tableA
            WHERE
                estatus = 2
                AND createdate BETWEEN to_timestamp('01/01/2019','dd/mm/yyyy') AND to_timestamp('12/02/2019','dd/mm/yyyy')
        ) p
        INNER JOIN tableB d ON d.importid = p.id
53
задан zachron 4 June 2018 в 18:05
поделиться

1 ответ

Foxit PDF SDK 6.4 для текста извлечения поддержки iOS в цели C. Ниже пример кода.

- (BOOL)extractTextOfDoc:(FSPDFDoc *)doc toPath:(NSString *)path {
    if (!doc || !path) {
        return NO;
    }

    int nPage = [doc getPageCount];
    if (nPage < 1) {
        return NO;
    }

    NSFileManager *fileMgr = [[NSFileManager alloc] init];
    [fileMgr createFileAtPath:path contents:nil attributes:nil];
    NSFileHandle *outFile = [NSFileHandle fileHandleForWritingAtPath:path];
    if (!outFile) {
        return NO;
    }
    for (int i = 0; i < nPage; i++) {
        FSPDFPage *page = [doc getPage:i];
        [page startParse:FSPDFPageParsePageTextOnly pause:nil is_reparse:YES];
        FSTextPage *textSelect = [[FSTextPage alloc] initWithPage:page flags:FSTextPageParseTextNormal];
        if (!textSelect) {
            continue;
        }

        NSString *fullText = [textSelect getChars:0 count:-1];
        if (!fullText) {
            continue;
        }

        [outFile writeData:[fullText dataUsingEncoding:NSUTF8StringEncoding]];
    }

    [outFile closeFile];

    return YES;
}

можно запросить пробную версию в этой ссылке: https://developers.foxitsoftware.com/pdf-sdk/free-trial. Пробная версия появляется в zip-файл, код, который я имею выше, может быть найден в samples\function_demo\function_demo\PlatformAPIDemo.m.

0
ответ дан 3 August 2019 в 09:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: