Так чем не устроил Йоксель? Работает быстро, корректно. Есть только пара нареканий: в этих PDF не работает поиск и качество заточено для просмотра на экране - для распечатки на принтере видна зернистость.
Вот мой вариант сохранения в PDF. Он интересен тем, что есть автоподбор ширины для A4.
Функция глПолучитьСтандартныеМетаданныеPDF(Заголовок="", Тема="", Автор=0, КлючевыеСлова=0, ГенераторОригинальногоДокумента=0, ГенераторДокументаPDF=0) Экспорт
спМД = СоздатьОбъект("СписокЗначений");
спМД.ДобавитьЗначение(СокрЛП(глОсновнаяФирма.ПолнНаименование), "Автор");
спМД.ДобавитьЗначение("1С:Предприятие 7.7", "ГенераторОригинальногоДокумента");
спМД.ДобавитьЗначение("Йоксель", "ГенераторДокументаPDF");
спМД.ДобавитьЗначение("", "КлючевыеСлова");
спМД.ДобавитьЗначение(Заголовок, "Заголовок");
спМД.ДобавитьЗначение(Тема, "Тема");
Если ТипЗначенияСтр(Автор) = "Строка" Тогда
спМД.Установить("Автор", Автор);
КонецЕсли;
Если ТипЗначенияСтр(КлючевыеСлова) = "Строка" Тогда
спМД.Установить("КлючевыеСлова", КлючевыеСлова);
КонецЕсли;
Если ТипЗначенияСтр(ГенераторОригинальногоДокумента) = "Строка" Тогда
спМД.Установить("ГенераторОригинальногоДокумента", ГенераторОригинальногоДокумента);
КонецЕсли;
Если ТипЗначенияСтр(ГенераторДокументаPDF) = "Строка" Тогда
спМД.Установить("ГенераторДокументаPDF", ГенераторДокументаPDF);
КонецЕсли;
спМД.ДобавитьЗначение(Заголовок, "Заголовок");
Возврат спМД;
КонецФункции //глПолучитьСтандартныеМетаданныеPDF
//*****************************************************************************
Функция глКонвертироватьPDF(Таб, ИмяФайла, Знач спМетаданных="") Экспорт
Перем ЧЧ, ММ, СС;
ТабДокумент = СоздатьОбъект("ТабличныйДокумент");
ТабДокумент.ЗагрузитьИзТаблицы(Таб);
//автоопределение ширины PDF-файла
ШиринаТаблицыВСимволах = 0;
Для К = 1 По ТабДокумент.ШиринаТаблицы() Цикл
ШиринаТаблицыВСимволах = ШиринаТаблицыВСимволах + ТабДокумент.Область(1, К).ШиринаСтолбца();
КонецЦикла;
//масштабируем исходя из 567 твипов в 1 см. Коэф. 116.2 в одном символе определен экспериментально
ШиринаСтраницыВТвипах = Макс(11907, Окр(ШиринаТаблицыВСимволах * 116.2));
Отступы = Окр(567 * ШиринаСтраницыВТвипах / 11907);
Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
Конвертер.ВысотаСтраницы = Окр(ШиринаСтраницыВТвипах * 297 / 210);
Конвертер.ШиринаСтраницы = ШиринаСтраницыВТвипах;
Конвертер.КоличествоБитНаПиксел = 24;
Конвертер.Документ = ТабДокумент;
Конвертер.ПолеСлева = Отступы;
Конвертер.ПолеСверху = Отступы;
Конвертер.ПолеСправа = Отступы;
Конвертер.ПолеСнизу = Отступы;
Если ПустоеЗначение(спМетаданных) = 1 Тогда
спМетаданных = глПолучитьСтандартныеМетаданныеPDF();
КонецЕсли;
Данные = Конвертер.СтандартныеМетаданные;
Данные.Автор = спМетаданных.Получить("Автор");
Данные.Заголовок = спМетаданных.Получить("Заголовок");
Данные.Тема = спМетаданных.Получить("Тема");
Данные.КлючевыеСлова = спМетаданных.Получить("КлючевыеСлова");
Данные.ГенераторОригинальногоДокумента = спМетаданных.Получить("ГенераторОригинальногоДокумента");
Данные.ГенераторДокументаPDF = спМетаданных.Получить("ГенераторДокументаPDF");
ДатаСоздания = ТекущаяДата();
ВремяСоздания = ТекущееВремя(ЧЧ, ММ, СС);
Данные.УстановитьДатуСоздания(ДатаГод(ДатаСоздания), ДатаМесяц(ДатаСоздания), ДатаЧисло(ДатаСоздания), ЧЧ, ММ, СС);
Конвертер.ЗаписатьВФайл(ИмяФайла);
Возврат 1;
КонецФункции //глКонвертироватьPDF
Показать