Задать вопрос
  • Какое ПО может посчитать количество страниц PDF документов в папке?

    Ужасно глупо звучит, но такое "решение для организации учёта PDF-документов" умещается в 100 строк на питоне и его даже нейросеть может реализовать:

    #!/usr/bin/env python3
    """
    pdf_report.py
    
    This script recursively scans a given directory for PDF files and generates a report
    listing each PDF's file path, size (in bytes), and page count. The report is printed
    as a table to stdout, and can optionally be saved as an XLSX file.
    
    Usage:
        python pdf_report.py /path/to/folder [--xlsx output.xlsx]
    
    Dependencies:
        - PyPDF2
        - tabulate
        - openpyxl
    
    Install dependencies:
        pip install PyPDF2 tabulate openpyxl
    """
    import os
    import argparse
    from PyPDF2 import PdfReader
    from tabulate import tabulate
    from openpyxl import Workbook
    
    def get_pdf_info(path):
        """
        Given a PDF file path, returns a tuple (size_in_bytes, page_count).
        """
        try:
            size = os.path.getsize(path)
            reader = PdfReader(path)
            pages = len(reader.pages)
            return size, pages
        except Exception:
            # If unreadable or corrupted, return None values
            return None, None
    
    def scan_directory(root_dir):
        """
        Walks through root_dir recursively, finds all .pdf files,
        and collects their path, size, and page count.
        Returns a list of dicts.
        """
        report = []
        for dirpath, _, filenames in os.walk(root_dir):
            for filename in filenames:
                if filename.lower().endswith('.pdf'):
                    full_path = os.path.join(dirpath, filename)
                    size, pages = get_pdf_info(full_path)
                    report.append({
                        'path': full_path,
                        'size_bytes': size,
                        'page_count': pages
                    })
        return report
    
    def print_report(report):
        """
        Prints the report as a formatted table to stdout.
        """
        headers = ['File Path', 'Size (bytes)', 'Pages']
        rows = [(item['path'], item['size_bytes'], item['page_count']) for item in report]
        print(tabulate(rows, headers=headers, tablefmt='github'))
    
    def save_xlsx(report, xlsx_path):
        """
        Saves the report to an XLSX file at xlsx_path.
        """
        wb = Workbook()
        ws = wb.active
        ws.title = "PDF Report"
    
        # Write header
        ws.append(['File Path', 'Size (bytes)', 'Pages'])
    
        # Write data rows
        for item in report:
            ws.append([item['path'], item['size_bytes'], item['page_count']])
    
        wb.save(xlsx_path)
    
    def main():
        parser = argparse.ArgumentParser(description='Generate a PDF report for a directory.')
        parser.add_argument('directory', help='Path to the directory to scan')
        parser.add_argument('--xlsx', dest='xlsx_output', help='Optional XLSX output path')
        args = parser.parse_args()
    
        report = scan_directory(args.directory)
    
        if args.xlsx_output:
            save_xlsx(report, args.xlsx_output)
            print(f"Report saved to XLSX: {args.xlsx_output}")
        else:
            print_report(report)
    
    if __name__ == '__main__':
        main()

    А если нужен гайд, то берите любую книжку по программированию на Python и учитесь)
    Ответ написан
    Комментировать
  • Какое ПО может посчитать количество страниц PDF документов в папке?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    exiftool -j -r -all -ext pdf * |jq -r '"NAME;SIZE;PAGES", (.[] | "\(.FileName);\(.FileSize);\(.PageCount)")'
    Ответ написан
    Комментировать
  • Какое ПО может посчитать количество страниц PDF документов в папке?

    Adamos
    @Adamos
    Количество страниц в PDF:
    pdfinfo "file.pdf" | grep Pages | awk '{print $2}'
    Обвязка с find и вывод в csv - элементарно.
    Ни один питон не пострадает.
    Ответ написан
    Комментировать
  • Существуют ли бесплатные программы для печати изображений из командной строки Windows?

    @alexalexes
    У irfanview большой функционал, доступный из командной строки.
    Есть описание команд, но на странице сломана кодировка (на сервере не прописали заголовок для cp1251):
    https://tc-image.3dn.ru/Help/Other/irfanviewcmdline.htm
    В веб архиве можно посмотреть в нормальном виде:
    https://web.archive.org/web/20170425042557/http://...
    Смотрите всё, что имеет ключ /print
    Ответ написан
    Комментировать
  • Как в CSS остановить одну анимацию и сразу запустить вторую для одного элемента?

    @ImagineTables
    Если правильно понял вопрос, попробуйте это (придётся подписаться на событие focusin):

    // Resets CSS animation based on keyframes.
    System.resetAnimation = function (elements)
    {
    	elements.forEach(element =>
    	{
    		element.style.animation = 'none';
    		element.offsetHeight; // Trigger reflow.
    		element.style.animation = null;
    	});
    }


    Опять же, если я понял ваш вопрос правильно, можно обе анимации объединить на основе переменных, а в нужный момент задавать значение переменной, управляющее ходом анимации, и сбрасывать её. Примерно так:

    const map = $('.map');
    map
    	.css('--current-position-y', getComputedStyle(map[0]).backgroundPositionY)
    	.css('--direction', position.y > 0 ? '-1' : '1') // Map is scrolled in opposite direction.
    	.css('--speed', Math.abs(position.y).toString());
    
    System.resetAnimation([map[0]]);


    @keyframes move-map-bg_map
    {
    	from
    	{
    		background-position-y: var(--current-position-y);
    	}
    
    	to
    	{
    		background-position-y: calc(var(--current-position-y) + var(--direction) * var(--city-map-size));
    	}
    }


    Выше показано, как одна анимация плавно переходит в другую, в данном случае — на лету меняется скорость и направление анимации фона.
    Ответ написан
    Комментировать
  • Что делать если клиент не отдает деньги?

    an-tar
    @an-tar
    Full stack web developer
    А чем мотивирует задержку клиент?
    Все варианты возможны - ограничьте доступ, сделайте бекап, если выплаты были обещаны много ранее через полгода. В суде вряд ли что-то удастся доказать, или это будет долго и муторно. Вам урок - документы нужны, вот как раз для такого случая.
    Решать вам, по ситуации и контексту, мы тут всех нюансов не знаем.
    Ответ написан
    4 комментария
  • Что делать если клиент не отдает деньги?

    @Drno
    отключи сайт и всё
    Ответ написан
    Комментировать
  • Каким образом запустить и провести калькуляции с файлом excel, не открывая excel?

    Vindicar
    @Vindicar
    RTFM!
    Использовать COM (в питоне это пакет comtypes, в других языках есть свои средства) чтобы обращаться к средствам автоматизации Excel. По сути, это то же самое апи, которое доступно через макросы или скрипты Visual Basic. Но это будет требовать установленного на машине Excel для работы. Так что это скорее костыль, чем решение.
    Ответ написан
    2 комментария
  • Как в Unity зафиксировать ориентацию системы частиц относительно глобальных координат?

    @DrRen7
    В partical system делаешь start speed = 0, далее идешь в Velocity Over Lifetime там направление line y и space world
    Так же в partical system есть simulation space это отвечает признана ли частица к месту создания, частица может крутится при Local режиме но всегда будет подниматься вверх
    Ответ написан
    Комментировать
  • Как в Unity зафиксировать ориентацию системы частиц относительно глобальных координат?

    vkvk
    @vkvk
    У компонента ParticlesSystem в главном разделе есть параметр Sumulation Space, который отвечает за это. Если поставить значение World, то партиклы будут работать относительно мирового пространства, а не локального.

    6756e2a52dfe0144216961.png
    Ответ написан
    Комментировать
  • Как максимально защитить свой софт ( и систему ) от несанкционированного доступа?

    @SunTechnik
    Административно.
    Корпус опечатывается.
    На BIOS вешается пароль, с запретом выбора загрузочного носителя.

    При нарушении пломбы - спрос почему.
    Привлечение отдела безопасности.
    Ответ написан
    3 комментария