0. Трактор 1191 26.06.09 12:18 Сейчас в теме

Создание PDF из OpenOffice.

Возникла задача отправлять счета почтой. PDFcreator не подошёл поскольку не удалось вместить счёт на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашёл быстро, а вот как уместить счёт на одну страницу вширь искал долго.

2010.07.04 В версии 1С 8.2.232 появилась возможность сохранять табличный документ в xls файл на сервера под линуксом. А вот работать с Опеном офисом из-под линукса пока не получается.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. JohnyDeath 294 26.06.09 12:18 Сейчас в теме
SP 2 для Office 2007 теперь умеет сохранять в PDF, а также открывать/сохранять файлы OO.
Это я так, к слову ;)
2. Трактор 1191 26.06.09 12:41 Сейчас в теме
(1) А нас рать. Тех у кого нет МС офиса.
4. Noy 1062 26.06.09 13:39 Сейчас в теме
(1)+ http://download.microsoft.com/download/9/a/e/9ae639e6-770c-4700-9d96-a057a0875976/SaveAsPDFandXPS.exe
заплатка к МС Офису для сохранения в PDF (меньше мегабайта:)

(0) А вообще "+". Полезная информация - пригодится
Если бы еще и для 7.7...
6. Душелов 26.06.09 14:39 Сейчас в теме
7. Noy 1062 26.06.09 15:01 Сейчас в теме
3. konfed 26.06.09 13:37 Сейчас в теме
>Жаль что этот фрагмент работает только на клиенте.
>На сервере вопрос не решается :-(

т.е не работает какая комбинация :
1) 1С на терминальном сервере - ОО локальный
2) 1С стоит локально база сетевая - ОО локальный
3) 1С стоит локально база сетевая - ОО на терминальном сервере
4) 1С и ОО на терминальном сервере
?

5. Трактор 1191 26.06.09 14:21 Сейчас в теме
(3) Приведённый мной код не будет работать на сервере 1С:Предприятия поскольку:
1. на сервере нельзя сохранить таблицу как XLS файл. И на виндовом и на линуксовом.
2. на linux сервере нет доступа к API других программ.
Вариант базы или терминальность клиента значения не имеет. Важно чтобы PDF создавался на клиенте 1С и на этом же компе стоял Опен офис.

(4) Вот примеры для 7.7 Там решаются другие задачи, но после обработки напильником можно добиться чего пожелаешь.
http://www.forum.mista.ru/topic.php?id=372275
http://infostart.ru/projects/866/
8. I_G_O_R 57 13.11.09 01:08 Сейчас в теме
а еще есть "Bullzip PDF Printer", виртуальный принтер, печатаешь как на обычный, только сохраняется все в файл, уже давно им пользуюсь, даже можно коечто распечатывать и сохранять с возможностью копирования текста, когда стоит запрет на копирование, но нет запрета на печать. Юзайте на здоровье http://www.bullzip.com/
Para_1987; DimaP; Трактор; +3 Ответить
9. DanilaDru 251 24.10.10 01:46 Сейчас в теме
Хороший код. Спасибо. Под тонким клиентом отрабатывает замечательно на стороне сервера. А вот под веб-клиентом вешает платформу. Хотя код вроде как должен на стороне сервера отрабатывать независимо от клиентской части.
10. berserg 10.06.11 10:24 Сейчас в теме
А как быть если нужно установить запрем на копирование.
Пытаюсь добавить так:

НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 2);
PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
PropertyValue.Name = "FilterName";
PropertyValue.Value = "calc_pdf_Export";
НастройкиСохранения.SetValue(0, PropertyValue);

PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
PropertyValue.Name = "FilterData";

МассивПараметра = Новый COMSafeArray("VT_VARIANT", 41);

ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 0, "UseLosslessCompression", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 1, "Quality", 0, 90);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 2, "ReduceImageResolution", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 3, "MaxImageResolution", 0, 300);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 4, "UseTaggedPDF", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 5, "SelectPdfVersion", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 6, "ExportNotes", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 7, "ExportBookmarks", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 8, "OpenBookmarkLevels", 0, -1);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 9, "UseTransitionEffects", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 10, "IsSkipEmptyPages", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 11, "IsAddStream", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 12, "FormsType", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 13, "ExportFormFields", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 14, "HideViewerToolbar", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 15, "HideViewerMenubar", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 16, "HideViewerWindowControls", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 17, "ResizeWindowToInitialPage", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 18, "CenterWindow", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 19, "OpenInFullScreenMode", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 20, "DisplayPDFDocumentTitle", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 21, "InitialView", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 22, "Magnification", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 23, "Zoom", 0, 100);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 24, "PageLayout", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 25, "FirstPageOnLeft", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 26, "InitialPage", 0, 1);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 27, "Printing", 0, 2);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 28, "Changes", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 29, "EnableCopyingOfContent", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 30, "EnableTextAccessForAccessibilityTools", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 31, "ExportLinksRelativeFsys", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 32, "PDFViewSelection", 0, 0);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 33, "ConvertOOoTargetToPDFTarget", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 34, "ExportBookmarksToPDFDestination", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 35, "_OkButtonString", 0, "");
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 36, "EncryptFile", 0, false);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 37, "DocumentOpenPassword", 0, "123456789");
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 38, "RestrictPermissions", 0, true);
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 39, "PermissionPassword", 0, "123456789");
ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, 40, "", 0);

PropertyValue.Value = МассивПараметра;
НастройкиСохранения.SetValue(1, PropertyValue);



Процедура ДобавитьВCOMSafeArrayCOMSafeArray(МассивПараметра, Индекс, Первый, Второй, Третий = Неопределено);

Параметр = Новый COMSafeArray("VT_VARIANT", 4);
Параметр.SetValue(0, Первый);
Параметр.SetValue(1, Второй);
Если Третий <> Неопределено Тогда
Параметр.SetValue(2, Третий);
КонецЕсли;
Параметр.SetValue(3, 0);
МассивПараметра.SetValue(Индекс, Параметр);

КонецПроцедуры



Ошибок нет, но параметры не ставит :(. Подскажите как быть
11. cool.vlad4 45 25.07.11 12:37 Сейчас в теме
Для тех кому нужны ПФ с картинками, с прозрачностью, можно попробовать выставлять в 1С размер картинки - растянуть, затем делать фон либо прозрачным, либо rgb(255,255,255,0) , при сохранении штатными средствами 1С в xls прозрачность, вроде как сохраняется. Затем описанным здесь способом конвертировать в pdf. Параметры печати - надо пробовать настроить макросом. Также под Linux есть такая штука unoconv. Гуглите и пробуйте(поскольку всерьез unoconv еще не использовал, но в двух словах это специальная обертка для OO для различного конвертирования. Только под Linux)
12. Sheremeteva 27.06.12 10:39 Сейчас в теме
Начиная с платформы 8.2.15 PDF сохраняется штатными средствами 1с
13. Трактор 1191 27.06.12 10:43 Сейчас в теме
(12) Публикация старше чем 8.2.15. И суть её не только в конвертации в PDF. А в том как работать с Опен офисом из 1С под Линуксом.
15. Sheremeteva 27.06.12 11:22 Сейчас в теме
(13) да я в курсе возраста публикации. Просто есть люди, которые, как и я прочитают ее сегодня (завтра и далее). Сам же сказал,
Скорей всего найдутся люди для которых это тоже новое, нужное знание.
14. ATverdikov 27.06.12 10:52 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день


Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Архитектор 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 120 000 руб.
Полный день