Йоксель » Главный форум

Конвертер в PDF - автомасштабирование реально?

(2 posts)

Тэги:

  1. gena_danil
    Участник

    Или я не смог разобраться, или...
    Проблема - формируются прайс-листы разной ширины, ширина зависит от настроек пользователя, поэтому "стандартизировать" программно - нереально.

    Необходимо автомасштабирование по ширине как при печати, так и при выгрузке в файлы формата PDF.

    Пробовал так:
    1С 7.7, код:

    ТабДок = СоздатьОбъект("ТабличныйДокумент");
    ТабДок.ЗагрузитьИзТаблицы(Таб);
    ТабДок.ПараметрыПечати.АвтоМасштаб = 1;
    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
    Конвертер.Документ = ТабДок;
    Файл = КаталогИБ() + "ExtForms\777.pdf";
    Конвертер.ЗаписатьВФайл(Файл);

    безрезультатно - автомасштабирования нет, и если таблица не вмещается по ширине листа, "хвост" переносится на другую страницу. Менял ширину с высотой, чтобы сделать альбомный лист, но все равно нужно устанавливать автомасштабирование.

    Отправлено 12 года(лет) назад #
  2. Не знаю на сколько ещё кому актуально, но сам столкнулся с этой проблемой.
    Оно на самом деле не работает. Придумал такой обходной манёвр подбора масштаба:

    КонвертерPDF = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
    КонвертерPDF.Документ = ТабДокумент;
    КонвертерPDF.СтандартныеМетаданные.Автор = СокрЛП(глПользователь);

    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер");
    Конвертер.УстановитьДокумент(ТабДокумент);
    Конвертер.ВысотаСтраницы = КонвертерPDF.ВысотаСтраницы - КонвертерPDF.ПолеСверху - КонвертерPDF.ПолеСнизу;
    Конвертер.ШиринаСтраницы = (КонвертерPDF.ШиринаСтраницы*10) - КонвертерPDF.ПолеСлева - КонвертерPDF.ПолеСправа;
    n=Конвертер.РассчитатьКоличествоСтраниц();
    k=1;
    Пока 1=1 Цикл
    Конвертер.ВысотаСтраницы = (КонвертерPDF.ВысотаСтраницы*k) - КонвертерPDF.ПолеСверху - КонвертерPDF.ПолеСнизу;
    Конвертер.ШиринаСтраницы = (КонвертерPDF.ШиринаСтраницы*k) - КонвертерPDF.ПолеСлева - КонвертерPDF.ПолеСправа;
    Если Конвертер.РассчитатьКоличествоСтраниц() = n Тогда
    Прервать;
    КонецЕсли;
    k = k + 0.001;
    Состояние(k);
    КонецЦикла;
    Конвертер.ЗаписатьВсеСтраницы("c:\data\","jpg","test");
    Сообщить(k);

    КонвертерPDF.ВысотаСтраницы = Конвертер.ВысотаСтраницы + КонвертерPDF.ПолеСверху + КонвертерPDF.ПолеСнизу;
    КонвертерPDF.ШиринаСтраницы = Конвертер.ШиринаСтраницы + КонвертерPDF.ПолеСлева + КонвертерPDF.ПолеСправа;
    КонвертерPDF.ЗаписатьВФайл("c:\data\test.pdf");
    ----
    При печати проблем нет, т.к. есть автомасштабирование.

    Отправлено 10 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.