Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Йоксель - PDF

v7: Йоксель - PDF
Я
   Масянька
 
12.11.18 - 09:52
Доброе утро!
Имеем печ. форму.
При печати - все норм: влазит на А4 (книжная, альбомная).
При конвертации в PDF - алес... Нижний и верхний колонтитул не влазят, да, и сама форма отличается (шрифты в частности).
Вариант выкрутится? Если да - как?
Спасибо.
 
 
   ДенисЧ
 
1 - 12.11.18 - 09:54
Поставь внешний пдф-принтер и не парься
   trdm
 
2 - 12.11.18 - 10:01
(0) Конвертируй 8-кой.
Наиболее управляемый вариант.
   Масянька
 
3 - 12.11.18 - 10:02
(1) Подумаю...
   Масянька
 
4 - 12.11.18 - 10:03
(2) А что такое 8-ка?
   ДенисЧ
 
5 - 12.11.18 - 10:04
(2) Неа. Было обнаружено, что у некоторых клиентов 1сные пдфы не отображаются.
Сделал как в (1) - всё нормально стало
   Масянька
 
6 - 12.11.18 - 10:05
(5) Бесплатный посоветуешь?
   АгентБезопаснойНацио
 
7 - 12.11.18 - 10:08
(4) снеговик!
   ДенисЧ
 
8 - 12.11.18 - 10:09
(6) Я пользовался этим http://www.bullzip.com/products/pdf/info.php
Правда, у него там лицензия есть...
Но по 300 штук за 15 минут он вполне мне делал без заморочек
   АгентБезопаснойНацио
 
9 - 12.11.18 - 10:09
(6)  PDFCreator - им можно даже командной строкой управлять....
   trdm
 
10 - 12.11.18 - 10:11
(5) Пока нареканий не было. Пришлось подвигать колонки и подщаманить, но ничего особенного.
 
 Рекламное место пустует
   ДенисЧ
 
11 - 12.11.18 - 10:12
(10) У меня были. Может, это было связано с 8.2.19 - не знаю, платформу не повышали, там конфа была замороченная, слишком долго было проверять всё.
   Ёпрст
 
12 - 12.11.18 - 10:17
(0) правильно настраивай параметры конвертера в пдф и всё влезет.
Но минус один - в пдф-ке будет "картинка"
   Масянька
 
13 - 12.11.18 - 10:18
(12) Вопрос - правильно это как?
У меня:
    Попытка
        ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll");
    Исключение
        Предупреждение("Не удалось загрузить компоненту SpreadSheet.dll.");
        Ошибка = 1;
        Возврат Ошибка;
    КонецПопытки;
    
    Йоксель = СоздатьОбъект("ТабличныйДокумент");
    
    Йоксель.ЗагрузитьИзТаблицы(АктивныйКонтекст);
    
    Параметры =    Йоксель.ПараметрыПечати;
    Параметры.ПолеСверху    = 5;
    Параметры.ПолеСнизу        = 4;    
    Параметры.ПолеСлева        = 5;
    Параметры.ПолеСправа    = 5;
    Параметры.АвтоМасштаб     = 1;
    Параметры.Ориентация    = СтрОриентация;
    
    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
    //Конвертер.УстановитьДокумент(АктивныйКонтекст);


    // ориентация печ. формы: для всех, кроме счета - 2 (альбомная)

    Если (СтрОриентация = 2) Тогда
        //Конвертер.ВысотаСтраницы = 210*56.7;

        //Конвертер.ШиринаСтраницы = 297*56.7;

        Конвертер.ВысотаСтраницы = 11907;
        Конвертер.ШиринаСтраницы = 16839;
    Иначе
        Конвертер.ВысотаСтраницы = 297*56.7;
        Конвертер.ШиринаСтраницы = 210*56.7;
    КонецЕсли;
    
    Конвертер.КоличествоБитНаПиксел =4// 24;

    //Йоксель.Показать(1);

    Конвертер.Документ = Йоксель;    //это табличный документ от йокселя

    
    Конвертер.ПолеСлева     = 5*56.7//450;

    Конвертер.ПолеСверху     = 5*56.7//300;

    Конвертер.ПолеСправа     = 5*56.7;
    Конвертер.ПолеСнизу     = 4*56.7//300;

    Конвертер.ЗаписатьВФайл(СохранитьМакетВфайл);    
    
    Йоксель.Очистить();
Где неправильно?
   Ёпрст
 
14 - 12.11.18 - 10:33
(13) так, например
        Йоксель = СоздатьОбъект("ТабличныйДокумент");
        Йоксель.ЗагрузитьИзТаблицы(Таб);
        Конв = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF");
        Конв.Документ = Йоксель;
        Конв.ВысотаСтраницы = 347*56.7;
        Конв.ШиринаСтраницы = 260*56.7;
        Конв.КоличествоБитНаПиксел = 1;
        Конв.ПолеСлева = 0;
        Конв.ПолеСверху = 0;
        Конв.ПолеСправа = 0;
        Конв.ПолеСнизу = 0;
        Конв.ЗаписатьВФайл (Форма.Параметр.Получить("ИмяФайла"));
   Масянька
 
15 - 12.11.18 - 11:12
(14) Колонтитулов нет... Нету...
   Ёпрст
 
16 - 12.11.18 - 11:58
(15) высотой играйся
   Ёпрст
 
17 - 12.11.18 - 11:59
Или, ужаста пинай, пусть доделает.
   Масянька
 
18 - 12.11.18 - 12:23
(16) (17) А ничё, что колонтитулы это в настройках таблицы? :))))
   MadDAD
 
19 - 12.11.18 - 12:29
(13) Йоксель не умеет масштабировать. Поэтому нужно для начала посчитать размеры страницы, а потом привести их к соотношению как у А4. Ел эту собаку половину прошлого года и почти подавился.

    ТвиповНаМиллиметр = 56.7;
    ШиринаТабДокумента = 0;
    ВысотаТабДокумента = 0;
    
    Йоксель = СоздатьОбъект("ТабличныйДокумент");
    Йоксель.ЗагрузитьИзТаблицы(АктивныйКонтекст);
    Йоксель.Область().РассчитатьРазмеры(ШиринаТабДокумента, ВысотаТабДокумента);
    
    Если (ШиринаТабДокумента / ВысотаТабДокумента  <= 1.3)   Тогда 
        Ориентация = 1;
    Иначе
        Ориентация = 2;
    КонецЕсли;
    
    Если Ориентация = 1 Тогда//портрет

        ВыбШиринаСтраницы = 11909;
        ВыбВысотаСтраницы = 16839;
    Иначе// альбом

        ВыбШиринаСтраницы = 16839;
        ВыбВысотаСтраницы = 11909;
    КонецЕсли;        
    
    ПолеСлева = 5 * ТвиповНаМиллиметр;//5 мм

    ПолеСправа = 5 * ТвиповНаМиллиметр;
    ПолеСверху = 5 * ТвиповНаМиллиметр;
    ПолеСнизу = 5 * ТвиповНаМиллиметр;
    
        
    КоэффициентA4 = ВыбВысотаСтраницы/ВыбШиринаСтраницы;
        
    ШирСтраницы = ВыбШиринаСтраницы;
    ВысСтраницы = ВыбВысотаСтраницы;    
    
    //Отмасштабируем по ширине листа. Высоту страницы посчитаем исходя из соотношения сторон А4

    Масштаб = (ВыбШиринаСтраницы - ПолеСлева - ПолеСправа) / ШиринаТабДокумента;
    ВысСтраницы = ШирСтраницы * КоэффициентA4;    
    
    Конвертер.Документ = Йоксель;
    
    Конвертер.ШиринаСтраницы = ШирСтраницы / Масштаб;
    Конвертер.ВысотаСтраницы = ВысСтраницы / Масштаб; 
    
    Конвертер.КоличествоБитНаПиксел = 24;
    
    Конвертер.ПолеСлева     = ПолеСлева / Масштаб;
    Конвертер.ПолеСверху     = ПолеСверху / Масштаб;
    Конвертер.ПолеСправа     = ПолеСправа / Масштаб;
    Конвертер.ПолеСнизу     = ПолеСнизу / Масштаб;    
    
    Конвертер.ЗаписатьВФайл(СохранитьМакетВфайл);
   MadDAD
 
20 - 12.11.18 - 12:36
Как-то отчаявшись аоймать коэффициенты масштабирования чтобы PDF совпадал с етм что дает предпросмотр даже родил вот такого монстра:

СтраницДокумента = Таблица.КоличествоСтраниц();    
Если ПодобратьМасштаб = 1 Тогда
    ГрафическийКонвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер")
    ГрафическийКонвертер.УстановитьДокумент(Таб);
    ГрафическийКонвертер.ШиринаСтраницы = (ВыбШиринаСтраницы - ПолеСлева - ПолеСправа) / Масштаб;
    ГрафическийКонвертер.ВысотаСтраницы = (ВыбВысотаСтраницы - ПолеСверху - ПолеСнизу)  / Масштаб;
    СтраницРасчетно = ГрафическийКонвертер.РассчитатьКоличествоСтраниц();
    
    Если СтраницРасчетно > СтраницДокумента Тогда
        Пока ГрафическийКонвертер.РассчитатьКоличествоСтраниц() > СтраницДокумента Цикл
            Масштаб = Масштаб - 0.01;
            ГрафическийКонвертер.ШиринаСтраницы = (ВыбШиринаСтраницы - ПолеСлева - ПолеСправа) / Масштаб ;
            ГрафическийКонвертер.ВысотаСтраницы = (ВыбВысотаСтраницы - ПолеСверху - ПолеСнизу) / Масштаб;
        КонецЦикла;
    ИначеЕсли СтраницРасчетно <= СтраницДокумента Тогда
        Пока ГрафическийКонвертер.РассчитатьКоличествоСтраниц() <= СтраницДокумента Цикл
            Масштаб = Масштаб + 0.01;
            ГрафическийКонвертер.ШиринаСтраницы = (ВыбШиринаСтраницы - ПолеСлева - ПолеСправа) / Масштаб;
            ГрафическийКонвертер.ВысотаСтраницы = (ВыбВысотаСтраницы - ПолеСверху - ПолеСнизу)  / Масштаб;
        КонецЦикла;
        Масштаб = Масштаб - 0.01;
    КонецЕсли;
КонецЕсли;

Конвертер.Документ = Йоксель;
    
    Конвертер.ШиринаСтраницы = ШирСтраницы / Масштаб;
    Конвертер.ВысотаСтраницы = ВысСтраницы / Масштаб; 
    
    Конвертер.КоличествоБитНаПиксел = 24;
    
    Конвертер.ПолеСлева     = ПолеСлева / Масштаб;
    Конвертер.ПолеСверху     = ПолеСверху / Масштаб;
    Конвертер.ПолеСправа     = ПолеСправа / Масштаб;
    Конвертер.ПолеСнизу     = ПолеСнизу / Масштаб;    
    
    Конвертер.ЗаписатьВФайл(СохранитьМакетВфайл);

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует