В данной статье приведу пример получения количества страниц PDF и определения формата бумаги.
Основные требования:
- необходимо наличие программы Adobe Acrobat.
Ниже текст процедуры.
&НаКлиенте
Процедура ПолучитьДанныеДокументаPDF(Команда)
// создаем экземлпяр COM объекта программы Adobe Acrobat «AcroExch.PDDoc»
// Для возможности создания данного объекта необходимо установить программу Adobe Acrobat
// Внимание: Acrobat Reader не содержит данной компоненты!!!
PDDoc = Новый COMОбъект("AcroExch.PDDoc");
// открываем pdf документ
PDDoc.Open(ПутьКФайлу);
// определяем количество страниц
КоличествоСтраниц = PDDoc.GetNumPages();
// определяем размерность листа (страницы) по первой странице (Нумерация страниц начинается с 0)
// В Adobe размерность указывается в компьютерных пунктах.
x = PDDoc.AcquirePage(0).GetSize().x;
y = PDDoc.AcquirePage(0).GetSize().y;
// Компьютерный пункт (нем. Punkt — точка) — единица измерения кегля шрифта
// и основная единица измерения в типографике. Один пункт равен 1R60;12 цицеро (пайка) = 1R60;48 квадрата.
// В типографиях стран на постсоветском пространстве пункт равен 0,3759 мм.
// В программах компьютерной вёрстки широко используется введённый компанией Adobe пункт,
// приравненный к 1R60;72 дюйма, т. е. 25,4R60;72 мм = 0,3527 мм. Такой пункт
// называют также пунктом PostScript.
// переведем пункты в миллиметры
x1 = Окр(x * 0.3527);
y1 = Окр(y * 0.3527);
// основные форматы бумаги
// А0 : 841 мм * 1189 мм
// А1 : 841 мм * 594 мм
// А2 : 420 мм * 594 мм
// А3 : 297 мм * 594 мм
// А4 : 210 мм * 297 мм
// А5 : 148 мм * 210 мм
// А6 : 105 мм * 148 мм
// определим формат бумаги
ФорматБумаги = "";
Если (x1 = 841 И y1 = 1189) ИЛИ (x1 = 1189 И y1 = 841) Тогда
ФорматБумаги = "А0";
ИначеЕсли (x1 = 841 И y1 = 594) ИЛИ (x1 = 594 И y1 = 841) Тогда
ФорматБумаги = "А1";
ИначеЕсли (x1 = 420 И y1 = 594) ИЛИ (x1 = 594 И y1 = 420) Тогда
ФорматБумаги = "А2";
ИначеЕсли (x1 = 297 И y1 = 594) ИЛИ (x1 = 594 И y1 = 297) Тогда
ФорматБумаги = "А3";
ИначеЕсли (x1 = 297 И y1 = 210) ИЛИ (x1 = 210 И y1 = 297) Тогда
ФорматБумаги = "А4";
ИначеЕсли (x1 = 148 И y1 = 210) ИЛИ (x1 = 210 И y1 = 148) Тогда
ФорматБумаги = "А5";
ИначеЕсли (x1 = 105 И y1 = 148) ИЛИ (x1 = 148 И y1 = 105) Тогда
ФорматБумаги = "А6";
КонецЕсли;
КонецПроцедуры