Имя: Пароль:
1C
1C 7.7
v7: Йоксель - PDF
,
0 Масянька
 
12.11.18
09:52
Доброе утро!
Имеем печ. форму.
При печати - все норм: влазит на А4 (книжная, альбомная).
При конвертации в PDF - алес... Нижний и верхний колонтитул не влазят, да, и сама форма отличается (шрифты в частности).
Вариант выкрутится? Если да - как?
Спасибо.
1 ДенисЧ
 
12.11.18
09:54
Поставь внешний пдф-принтер и не парься
2 trdm
 
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 - им можно даже командной строкой управлять....
10 trdm
 
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) А ничё, что колонтитулы это в настройках таблицы? :))))
19 MadDAD
 
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;
    
    Конвертер.ПолеСлева     = ПолеСлева / Масштаб;
    Конвертер.ПолеСверху     = ПолеСверху / Масштаб;
    Конвертер.ПолеСправа     = ПолеСправа / Масштаб;
    Конвертер.ПолеСнизу     = ПолеСнизу / Масштаб;    
    
    Конвертер.ЗаписатьВФайл(СохранитьМакетВфайл);
20 MadDAD
 
12.11.18
12:36
Как-то отчаявшись аоймать коэффициенты масштабирования чтобы PDF совпадал с етм что дает предпросмотр даже родил вот такого монстра:

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

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