Возможность группировки нескольких страниц на одной странице в pdf документе

В библиотеке PDF Creator Pilot появилась возможность сгруппировать 2, 3, 4, и т.д. страниц в pdf документе. Для этой цели мы добавили функцию DrawPageOnPage, которая имеет следующие параметры:
srcPageIndex – индекс страницы, которую необходимо нарисовать;
destPageIndex – индекс страницы, на которой будет рисование;
left – x-координата, в пикселях, верхнего левого угла в ограничивающем прямоугольнике;
top – y- координата, в пикселях, верхнего левого угла в ограничивающем прямоугольнике;
width – ширина, в пикселях, ограничивающего прямоугольника;
height – высота, в пикселях, ограничивающего прямоугольника.

Приведем пример использования данной функции. Предположим, что мы имеем pdf файл с 4 страницами и желаем нарисовать (сгруппировать, уместить) их на одной странице. Ниже следует пример кода на С/С++, решающий обозначенную задачу.

// PDF объект уже создан
// PDF содержит 4 страницы формата A4
PDF->Open(“4pagesA4.pdf”, “”);

// Добавляем новую страницу для рисования в конец документа
PDF->NewPage();
PDF->PageSize = pfA4; // здесь можно установить любой размер

PDF->CurrentPage = 4; // индекс новой страницы
long height = PDF->PageHeight;
long width = PDF->PageWidth;

// Собственно, само рисование страниц на странице
PDF->DrawPageOnPage(0, 4, 0.0, 0.0, width/2, height/2);
PDF->DrawPageOnPage(1, 4, width/2, 0.0, width/2, height/2);
PDF->DrawPageOnPage(2, 4, 0.0, height/2, width/2, height/2);
PDF->DrawPageOnPage(3, 4, width/2, height/2, width/2, height/2);

PDF->SaveToFile(“result.pdf”, true);

Здесь Вы сможете посмотреть результат группировки файлов на странице: result.pdf

Артём Голубиченко,

Два Пилота

http://www.colorpilot.ru

Leave a Reply

Your email address will not be published. Required fields are marked *