На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Как посчитать количество страниц в PDF-документе?
    Исходная задача: Дана папка с кучей PDF-ок. Прога должна считать количество файлов и количество страниц в них. Как решить данную задачу? Если есть у кого-нибудь примерный алгоритм и/или исходники, буду премного благодарен. Заранее спасибо!
    З.Ы. Решения на других языках тоже приветствуются!
      M@ster :-) я бы делал таким образом:

      импортировал элементы управления Acrobat AxtiveX таким образом:

      1. Component -> Import ActiveX Control
      2. Acrobat Control for ActiveX и нажать install
      3. выбрать пакет ActiveX control для инсталяции
      4. добавил PDFlib_tlb в проект (файл находится в директории Borland\Delphi(x)\Imports)

      а после использовал бы импортированные компоненты для работы с pdf-данными ...
        andrew.virus, компонент отличный, но, к сожалению, там нету метода определения количества страниц, метода определения текущей страницы, а переход на страницы реализован в виде процедуры, так что пока я не приблизился к решению проблемы. Что ещё можно попробовать?
          Компонент понятно что хороший, от производителя :) И есть там все, если поискать.
          Вот только если посмотреть файл и почитать его построчно, то во второй строке количество страниц написано. readln спокойно должен прочитать. Первая строка - сигнатура, вторая - читаешь и смотришь параметр N <pagecount>.
          Для уточнения и остального стоит посмотреть стандарт pdf
            Romkin, если бы все было так просто... Данный параметр /N <pagecount> есть только в таких документах, которые имеют параметр Linearized. А данный параметр встречается не во всех документах, и что самое неприятное, он почти не встречается в сканированных документах, которые будут составлять большинство файлов в этой папке.
            Кроме того, за количество страниц отвечает параметр /Page Count. Однако для некоторых документов их может быть несколько, причем некоторые с отрицательным значением. Пробовал считать кол-во элементов типа /page, которые означают новую страницу в документе, но недавно нашел такой документ, который имеет таких элементов 330, а страниц - 168.
            Ещё варианты решения проблемы есть? Может, не там копаю?
              Хех. Все как обычно :) Скорее всего разные версии pdf.
              Посмотри стандарт pdf, он с недавнего времени открыт.
              Посмотри на sourceforge, там куча библиотек для работы с pdf, правда все больше на java
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0581 ]   [ 16 queries used ]   [ Generated: 14.06.25, 15:18 GMT ]