В библиотеке 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