|
Создание PDF из OpenOffice | ☑ | ||
---|---|---|---|---|
0
sergey198
18.08.11
✎
15:12
|
тд = ТабДок;
ВременныйФайл =ПолучитьИмяВременногоФайла(); ВременныйФайлXLS =ВременныйФайл + ".xls"; ВременныйФайлPDF =ВременныйФайл + ".pdf"; тд.Записать(ВременныйФайлXLS, ТипФайлаТабличногоДокумента.XLS97); // Преобразовываем временный xls файл В PDF Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); НастройкиОткрытия = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "Hidden"; PropertyValue.Value = Истина; НастройкиОткрытия.SetValue(0, PropertyValue); ВременныйФайлXLS_какУРЛ = "file:///" + СтрЗаменить(ВременныйФайлXLS, "\", "/"); // приводим путь к файлу из виндового формата в опен офисный // Откроем файл в опене офисе ОпенОфис = Desktop.LoadComponentFromURL(ВременныйФайлXLS_какУРЛ, "_blank", 0, НастройкиОткрытия); //ПараметрыСтраницы = ОпенОфис.createInstance("com.sun.star.style.PageStyle"); //ПараметрыСтраницы.ScaleToPagesX = 1; // // Установим масштаб, чтобы счёт помещался на одной странице вширь // страниц почему-то много, поэтому устанавливаем масштаб для всех Стили = ОпенОфис.StyleFamilies.getByName("PageStyles"); Для поз = 0 по Стили.count - 1 Цикл МойСтиль = Стили.getByIndex(поз); МойСтиль.ScaleToPagesX = 1; // уместить на одной странице вширь //МойСтиль.PageScale = 50; // масштаб 50% КонецЦикла; НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "FilterName"; PropertyValue.Value = "calc_pdf_Export"; НастройкиСохранения.SetValue(0, PropertyValue); ВременныйФайлPDF_какУРЛ = "file:///" + СтрЗаменить(ВременныйФайлPDF, "\", "/"); // приводим путь к файлу из виндового формата в опен офисный ОпенОфис.storeToURL(ВременныйФайлPDF_какУРЛ, НастройкиСохранения); // сохранили PDF файл ОпенОфис.close(-1); ОпенОфис = Неопределено; // С опеном офисом разобрались. Прикрепляем вложение к письму и удаляем временные файлы. //Файл = Новый Файл(ВременныйФайлPDF); //объектПисьмо = Письмо.ПолучитьОбъект(); //стрВложение = объектПисьмо.Вложения.Добавить(); //стрВложение.ИмяФайла = "Счёт " + Строка(Заказ.Номер) + ".pdf"; //стрВложение.Файл = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ВременныйФайлPDF)); //объектПисьмо.Записать(); Попытка УдалитьФайлы(ВременныйФайлXLS); УдалитьФайлы(ВременныйФайлPDF); Исключение КонецПопытки; После этого выскакивает ошибка: Произошла исключительная ситуация ([automation bridge] ): com.sun.star.task.ErrorCodeIOException |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |