Конвертирование XLS в PDF

24.09.08

Разработка - Универсальные функции

Как сохранить свою печатную форму в PDF? Ответ здесь! ;)
Что необходимо:
1. Microsoft Office 2007
2. Надстройка 2007 Microsoft Office: сохранение в формате PDF или XPS (Майкрософт) (скачиваем http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=4d951911-3e7e-4ae6-b059-a2e79ed87041 )

Для начала сохраняем печатную форму в xls файл.
И далее:
Процедура СконвертироватьXLSвPDF(ФайлВходящий)

Попытка 

Excel = Новый COMОбъект("Excel.Application");
ExcelWorkBook = Excel.WorkBooks.Open(ФайлВходящий,,1); // открытие в режиме ReadOnly 

Excel.DisplayAlerts = 0; 
ExcelЛист =Excel.ActiveSheet;
Исключение 

Сообщить("Ошибка открытия файла: " + ФайлВходящий);
		

Возврат;
КонецПопытки;
Если ExcelWorkBook <> Null Тогда

ФайлИсходящий =СтрЗаменить(ФайлВходящий, ".xls", ".pdf");
ExcelWorkBook.ExportAsFixedFormat(0,ФайлИсходящий , 0);
	

КонецЕсли;
Excel.ActiveWorkbook.Close(0); // без записи изменений

Excel.Quit();
	

Excel = 0;
КонецПроцедуры 

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    21078    dimanich70    81    

145

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4157    3    John_d    11    

57

Универсальные функции Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    19391    atdonya    24    

58

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    5601    ke.92@mail.ru    16    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    15109    YA_418728146    7    

169

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3673    57    progmaster    8    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18624    172    sapervodichka    112    

135
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. megatrend 131 06.10.09 11:00 Сейчас в теме
А через COM-объект бесплатной программы PDFCreator нельзя в файл напечатать? ;)
2. Трактор 1254 06.10.09 11:08 Сейчас в теме
(1) PDFCreator не всегда верно сохраняет. У меня не получилось уместить счёт на одну страницу. Бесплатное решение с помощью опена офиса описано тут http://infostart.ru/public/20710/ Работает лучше PDFCreator'а.
5. Душелов 4019 24.09.08 22:05 Сейчас в теме
(2) то, что я дал- самый простой способ, т.к. офис обычно есть у многих... Без всего этого - только внешняя компонента, которая все это будет делать ;) Написать могу, а есть ли смысл?
(3) почитай ветку из 1 коммента ;)
(4) Ломать - плохо! Я уважаю труд других программистов :)
6. CheBurator 2712 25.09.08 00:22 Сейчас в теме
(5) > Написать могу, а есть ли смысл?
есть...
39. sp18s 10.10.19 16:12 Сейчас в теме
(5) только этот код не работает на Office 2003. Ошибка!
ExportAsFixedFormat добавили в 2010.
1. Душелов 4019 24.09.08 15:51 Сейчас в теме
2. CheBurator 2712 24.09.08 20:34 Сейчас в теме
бяка! ;-)
- нужен офис... а если его у мну нет...?
- подойдет 2007, а если 2003? или не дай бог 2000? - где проверка на версию/возможность?
- и это похоже на гланды через ЗПС ;-)
- а где вариант для Оо...? в котором есть родное ПДФ...
3. ineoosaki 24.09.08 21:30 Сейчас в теме
А что мешает печатать бесплатным пдф-принтером?
4. ineoosaki 24.09.08 21:41 Сейчас в теме
немного не по теме, но всеже про пдф.
наткнулся я как-то у себя в архиве на Новейший отчет за 2005год. Решил пдф-хелп почитать. Смотрю, а он (хелп) триальной прогой сконвертирован, и на каждой странице об этом жирным текстом сказано. ИМХО, как-то несолидно к платной проге такой хелп прикладывать.
Ломанули бы прогу, и не писал бы я об этом здесь. :)
7. CheBurator 2712 25.09.08 16:09 Сейчас в теме
По ссылке http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=4d951911-3e7e-4ae6-b059-a2e79ed87041)
- запрашиваемая страница не найдена.. так и хочется -1 влепить... а еще спрашиваешь нужна ВК или нет....
8. Душелов 4019 25.09.08 16:36 Сейчас в теме
(7) Пинай админов инфостарта, что так коряво отображают ссылки - удали скобку в конце.
10. Abadonna 3969 25.09.08 16:47 Сейчас в теме
(7)Чебуратор, ти мене убив
9. JohnyDeath 302 25.09.08 16:36 Сейчас в теме
скобку последнию убери!
млин, прям как маленький...
11. JohnyDeath 302 25.09.08 16:55 Сейчас в теме
иногда, конечно, хорошо, что Чебур докапывается до мелочей, но это ИМХО уже перебор! Весь свой статус так растеряет ;)
12. CheBurator 2712 26.09.08 13:57 Сейчас в теме
Чебуру не влом растерять весь свой статус... я от эникейщика ухожу все дальше и дальше... матом в адрес админов инфостарта - ну вы поняли.. если там сидят эникейщики, которые толком не могут сделать - это не в моей власти... ;-)
13. CheBurator 2712 26.09.08 13:58 Сейчас в теме
так самое интересное что эту приблуду фиг скачаешь, если у тебя на компе офис не стоит... тоже мне, блин, автоматизаторы... (это я автору сабжа... ;-))
14. Душелов 4019 26.09.08 14:11 Сейчас в теме
(13) так и написано, что для этого требуется ;) 1 пункт! :)
15. Abadonna 3969 26.09.08 14:13 Сейчас в теме
(12-14) Как-то гаишник меня останавливает:
- почему скорость превышаешь?
- дык у тебя ж радара нет
- как будто я до чего-нибудь еще не докопаюсь ;)
16. ineoosaki 26.09.08 18:22 Сейчас в теме
А вот как в дежавю конвертнуть, не подскажете?
17. Душелов 4019 26.09.08 21:09 Сейчас в теме
(16) а для каких целей? мало информации по этому формату
18. ineoosaki 26.09.08 21:29 Сейчас в теме
(17)
Мне дежавю больше чем пдф нравиться.
Хорошая компресия картинок (1мб ч/б картинка бмп уменьшается до 20кб), в просмотрщиках файл быстрее открывается, чем н-р пдф в акробате.
19. JohnyDeath 302 27.09.08 10:01 Сейчас в теме
(18) pdf, ИМХО, лучше всего открывать FoxIt Reader-ом (бесплатный) https://www.foxitsoftware.com/pdf/reader_2/down_reader.htm
ineoosaki; Душелов; +2 Ответить
20. moonlight81 01.10.08 09:33 Сейчас в теме
Для таких целей я обычно ставлю бесплатный принтер PDFCreator и на него посылаю печать....вот и получается файлик pdf, а тут промежуточная фаза в виде XLS
21. Душелов 4019 01.10.08 09:36 Сейчас в теме
22. gull71 01.10.08 10:56 Сейчас в теме
А можно узнать какой смысл конвертить *.xls в *.pdf, если при сохранении в *.xls теряется форматирование?Не проще напечатать на *.pdf-принтер сразу?Ну если не pdf, то Skitex можно поставить:-)И в дальнейшем отконвертить AcrobatDistiller-ом в pdf?
23. Душелов 4019 01.10.08 10:58 Сейчас в теме
(22) 1. Смотря в формате какого офиса сохранять в xls.
2. Как я понял, все должно делаться программно.
24. sea-man 01.10.08 19:33 Сейчас в теме
Василь, респект и уважуха!
Лавр.
25. Душелов 4019 01.10.08 19:38 Сейчас в теме
26. dance000 03.10.08 09:41 Сейчас в теме
Поддержу по поводу ненужности формата xls, т.к. у себя сделал что печатается прямо на принтер Adobe Distiller и полученный файлик забираю и складываю куда мне нужно.
29. barsuk 24.01.10 15:42 Сейчас в теме
Выдает ошибку - Ошибка при вызове метода контекста (ExportAsFixedFormat): Произошла исключительная ситуация (0x800a03ec)
ExcelWorkBook.ExportAsFixedFormat(0, ФайлВФорматеXLS , 0);
по причине:
Произошла исключительная ситуация (0x800a03ec)
Не работает. Офис 2007.
30. Душелов 4019 24.01.10 15:56 Сейчас в теме
(29) Да, описание ошибки многозначащая... :)
А просто так, из офиса из меню сохраняет?
31. barsuk 24.01.10 16:14 Сейчас в теме
(30) принтера не стояло - из-за этого:) но при попытки открытия пдф файла сохраненног выдает -файл не пдф или поврежден
32. Душелов 4019 24.01.10 16:22 Сейчас в теме
(31) Ну тут уже вопрос к микрософту :)
33. barsuk 24.01.10 16:27 Сейчас в теме
Стоит Foxit Reader - он не открывает его. В чем проблема? Файл пересораненный таким образом будет открываться только акробатом? Или им тоже не будет?:)
34. barsuk 24.01.10 16:29 Сейчас в теме
Но если попробовать открыть этот фал экселем - то все нормально:)
35. Душелов 4019 24.01.10 16:30 Сейчас в теме
(34) Я не знаю, как сохраняет офис. Я не разработчик этой надстройки.
У меня - все открывается. Всеми ридерами. Офис 2007 - лицензия со всеми обновлениями.
36. barsuk 24.01.10 16:34 Сейчас в теме
(35) :) а нет идей почему такое может происходить? Такое ощущение что расширение поменял но в формат пдф не перевел:(
37. cool.vlad4 2 25.07.11 12:08 Сейчас в теме
Пишу только из удивления и возможно, для тех кому надо сохранять mxl в pdf, используя описанный в статье способ(если excel стоит на сервере, то наверное можно сохранять и в контексте сервера). Вся проблема заключается в том, что при сохранении в xls, картинки теряют прозрачность. Если выставлять размер картинки - растянуть, затем делать фон либо прозрачным, либо rgb(255,255,255,0) , то сохраняется в excel(и кстати в open office тоже) с прозрачностью. Остается проблема размещения в одну страницу, которая легко решается либо макросом, либо лучше через com, например
xlPaperA4 = 9;
xlPrintNoComments = -4142;
xlAutomatic = -4105;
xlPortrait = 1;
xlDownThenOver = 1;
xlPrintErrorsDisplayed = 0;
ExcelЛист.PageSetup.LeftMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.RightMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.TopMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.BottomMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.HeaderMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.FooterMargin = Excel.InchesToPoints(0);
ExcelЛист.PageSetup.PrintHeadings = False;
ExcelЛист.PageSetup.PrintGridlines = False;
ExcelЛист.PageSetup.CenterHorizontally = False;
ExcelЛист.PageSetup.CenterVertically = False;
ExcelЛист.PageSetup.Orientation = xlPortrait;
ExcelЛист.PageSetup.PrintComments = xlPrintNoComments;
ExcelЛист.PageSetup.Draft = False;
ExcelЛист.PageSetup.PaperSize = xlPaperA4;
ExcelЛист.PageSetup.FirstPageNumber = xlAutomatic;
ExcelЛист.PageSetup.Order = xlDownThenOver;
ExcelЛист.PageSetup.BlackAndWhite = False;
ExcelЛист.PageSetup.Zoom = 100;
ExcelЛист.PageSetup.PrintErrors = xlPrintErrorsDisplayed;
ExcelЛист.PageSetup.OddAndEvenPagesHeaderFooter = False;
ExcelЛист.PageSetup.DifferentFirstPageHeaderFooter = False;
ExcelЛист.PageSetup.ScaleWithDocHeaderFooter = True;
ExcelЛист.PageSetup.AlignMarginsHeaderFooter = True;
atdonya; NewLifeMan; kanimot; +3 Ответить
38. Shmell 546 20.12.11 08:04 Сейчас в теме
Перенос по строкам в многострочном поле не корректно отображается. Само сохранение в xls уже делает все без переноса и соответственно в pdf все не очень красиво переносится
Оставьте свое сообщение