перейти к последнему сообщению в данном обсуждении
| | PDF принтер [ Алексей Показиев ]Пятница, 17 июня 2016, 15:21
| Приветствую! Подскажите, можно как-то настроить PDF принтер так, чтобы при печати альбомной ориентации, размер страницы задавался тоже альбомный, а не книжный? |
|
| | [ ВладимиR [42] ]Суббота, 18 июня 2016, 07:57
| в анонсах разработчиков было, что они добавили патч на такой случай. А тема есть на форуме - пошарьтесь. |
|
| | [ Алексей Показиев ]Суббота, 18 июня 2016, 13:36
| Да я же и поднимал эту тему, но в прошлый раз вопрос заключался в функционале ПКЗО, в котором графические разделы, формируемые в ПКЗО, выгружались в соответствии с заданной ориентацией по умолчанию. Теперь графику на листах больших форматов делаю в сторонней программе. При использовании графических разделов из готовых файлов ПКЗО их не переворачивает как надо, приходится тратить лишнее время на редактирование. Всё это, конечно, мелочи, но когда в проекте 450 графических разделов- уходит много времени |
|
| | [ Виктор ]Суббота, 18 июня 2016, 14:53
| Как вариант, в свойствах принтера по умолчанию, настроить ориентацию |
|
| | [ Алексей Показиев ]Суббота, 18 июня 2016, 20:23
| В том-то и суть, что нет такой настройки. Пдф принтер по умолчанию распечатывает альбомный лист с параметрами листа в книжной ориентации |
|
| | [ Николаев Денис (разработчик) ]Суббота, 18 июня 2016, 20:38
При использовании готовых файлов для графического раздела программа не выполняет никакой обработки этих файлов и включает их в состав пакета в том виде, в котором они были добавлены в программу. В данном случае программа и не может ничего сделать, т.к. не имеет информации о содержимом файла и о том, что с ним еще нужно что-то сделать (повернуть, например). Если нужна какая-то обработка файлов, это нужно сделать до загрузки файлов в программу. Если вы формируете JPEG-файлы с помощью PDFCreator, то решить проблему с поворотом в случае альбомной ориентации не получится. Мы этот вопрос изучали - соответствующих настроек не предусмотрено. JPEG-файлы, формируемые программой, поворачиваются вручную (после того, как отработал PDFCreator). В вашем случае можно использовать команду поворота изображений, встроенную в Windows (начиная с Windows 7). Выделите в Проводнике нужные изображения (сразу все 450 файлов) и выполните в контекстном меню команду "Повернуть вправо" или "Повернуть влево". |
|
| | [ Виктор ]Воскресенье, 19 июня 2016, 11:59
Можно проверить размеры рисунка ширина высота и автоматом выставить ориентацию листа на принтере (можно опцию добавить), примеры кода
CPrintDialog dlgPrint(FALSE);
if (dlgPrint.GetDefaults()) {
ASSERT(dlgPrint.m_pd.hDC != NULL);
DEVMODE* pDevMode = reinterpret_cast<DEVMODE*>(::GlobalLock(dlgPrint.m_pd.hDevMode));
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
VERIFY(::ResetDC(dlgPrint.m_pd.hDC, pDevMode));
::GlobalUnlock(dlgPrint.m_pd.hDevMode);
}
или
if (PrintDlg(&pd))
{
lpDevNames = (LPDEVNAMES) GlobalLock(pd.hDevNames);
lpszDriverName = (LPSTR) lpDevNames + lpDevNames->wDriverOffset;
lpszDeviceName = (LPSTR) lpDevNames + lpDevNames->wDeviceOffset;
lpszPortName = (LPSTR) lpDevNames + lpDevNames->wOutputOffset;
// вот здесь Вы должены в pd.hDevMode поменять ориентацию и передать
вместо NULL
hdc = CreateDC(lpszDriverName, lpszDeviceName, lpszPortName, NULL);
GlobalUnlock(pd.hDevNames);
if (pd.hDevMode != NULL)
GlobalFree(pd.hDevMode);
if (pd.hDevNames != NULL)
GlobalFree(pd.hDevNames);
return hdc;
См. DEVMODE , dmOrientation. |
|
| | [ Алексей Показиев ]Воскресенье, 19 июня 2016, 12:23
| Денис,спасибо. Виктор, спасибо. Виктор, боюсь не осилить то, что Вы предложили. Для меня, на данное, это сравнимо с изучением китайского языка:) |
|
| | [ Виктор ]Воскресенье, 19 июня 2016, 13:19
| Это к разработчикам посыл.. это древние примеры кода.. можно и через современные интерфейсы настроить... |
|
| | [ Николаев Денис (разработчик) ]Понедельник, 20 июня 2016, 10:12
Виктор, вы не поняли суть проблемы. Виртуальный принтер PDFCreator обладает такой особенностью, что в случае альбомной ориентации (она уже выставлена в настройках) при использовании JPEG-формата изображение в файлах получается повернутым на 90 градусов. Исправить это можно только поворотом файла после печати. Когда такой файл формируется программой, она автоматически его поворачивает. Если конвертация в JPEG-формат выполняется вручную, то поворачивать файлы необходимо пользователю самостоятельно (способ я предложил выше), до их добавления в программу. |
|
ОтветитьЗнаком «*» отмечены обязательные для заполнения поля. |