...

Подсчет страниц PDF-файла

Тема в разделе "Вопросы по платформе", создана пользователем uvaev.nikita, 11 ноя 2025 в 04:12.

  1. uvaev.nikita

    uvaev.nikita Новичок

    Коллеги, всем доброго времени суток!

    Подскажите, каким образом можно получить количество страниц PDF-файла, а также количество страниц с разбивкой на форматы - А4, А3 и т.д.
    Заранее, благодарю всех неравнодушных))
  2. User

    User Новичок

    https://www.npmjs.com/package/page-count
    https://elma365.com/ru/help/platform/npm-package.html
    https://elma365.com/ru/help/platform/extention-api.html
    Если именно в одном pdf может быть A4\A3 и надо получить их кол-во. То можно взять библиотеку pdf-lib
    Код:
    
    import DocxCounterOdtCounterPdfCounterPptxCounter from "page-count";
    async function count(reqHttpApiRequest): Promise<HttpResponse void> {

        const 
    response = new HttpResponse()
        const 
    id req.query?.\['id'\] as string
        
    const file await System.files.search().where(=> f.id.eq(id)).first();

        if (
    file) {

            const 
    arrayBuffer await (await fetch((await file.getDownloadUrl()))).arrayBuffer();
            
    let u = new Uint8Array(arrayBuffer);
            
    let file_extension await ext(file.data.name)
            
    let page_count;
            if (
    file_extension == 'pdf') {
                
    page_count await PdfCounter.count(u);
            } else if (
    file_extension == 'docx') {
                
    page_count await DocxCounter.count(u);
            } else {
                
    page_count 0
            
    }
            
    response
                
    .status(200)
                .
    json({
                    
    msg'success',
                    
    ext file_extension,
                    
    page_countpage_count
                
    })
                .
    set('Content-Type''application/json')
        }
        else {
            
    response
                
    .status(404)
                .
    json({
                    
    msg'error: file not found'
                
    })
                .
    set('Content-Type''application/json')
        }

        return 
    response
    }

    async function ext(namestring) {
        
    let m name.match(/.(\[^.\]+)$/)
        return 
    && m\[1\]
    Последнее редактирование: 11 ноя 2025 в 16:29
  3. semenova

    semenova Техническая поддержка

    Добрый день!

    В системе не предусмотрены стандартные методы для анализа pdf файлов. Вы можете реализовать это с помощью использования библиотек или npm-пакетов.
    JS-библиотеки подходят для использования в виджетах в клиентских скриптах. Например, для Вашей задачи пойдет библиотека PDF.js.
    Информацию о том, как их подключать, можно изучить по ссылкам:
    https://elma365.com/ru/help/platform/designer-tabs.html#Вкладка«Файлы»
    https://community.elma365.com/ru/threads/2133/
    https://community.elma365.com/ru/threads/137/
    В серверных скриптах и бизнес-процессах можно использовать npm-пакеты. Подробнее о настройке и использовании:
    https://elma365.com/ru/help/platform/npm-package.html
    https://elma365.com/ru/help/platform/extention-api.html
    https://community.elma365.com/ru/threads/3034/