|
Сохранение в pdf из xls | ☑ | ||
---|---|---|---|---|
0
Sun125
12.08.15
✎
11:38
|
Пытаюсь перевести xls-файл в pdf вот таким методом:
ФайлВходящий = "D:/111.xls"; Попытка 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; Выдает ошибку: ExcelWorkBook.ExportAsFixedFormat(0, ФайлИсходящий , 0); по причине: Произошла исключительная ситуация (0x80070057) Подскажите,пожалуйста, что не так делаю? |
|||
1
Провинциальный 1сник
12.08.15
✎
11:39
|
А почему бы не воспользоваться методами 1с?
|
|||
2
Sun125
12.08.15
✎
11:46
|
(1) Проблема в том, что нужно сохранить гиперссылку в pdf.
Есть табличный документ с гиперссылками, причем не просто "http://www.ya.ru", а "Название номенклатуры", на которое нажимаем и попадаем на сайт. Процедура запуска сайта отрабатывается в процедуре "ОбработкаРасшифровки". Если просто сохранить табличный документ в pdf, то гиперссылка не перенесется. Поэтому сначала сохраняю в xls, а потом хочу перевести в pdf. |
|||
3
Sun125
25.08.15
✎
13:58
|
Решил проблему предварительным удалением pdf файла. Не перезаписывает файл.
|
|||
4
Sun125
25.08.15
✎
14:00
|
Правда теперь пытаюсь решить проблему полей страницы pdf-файла.
Если сохраняю в pdf программно, через ExcelWorkBook.ExportAsFixedFormat(0, ФайлИсходящий , 0); то поля страницы очень большие, страница не помещается на лист. А если сохраняю табличный документ в pdf через "Сохранить как", то поля нормальные. Подскажите,пожалуйста, можно ли как-то программно отрегулировать поля pdf-файла? |
|||
5
Sun125
25.08.15
✎
14:04
|
(4) Это в xls так сохраняет. как мне настроить можно сохранение xls-файла, чтобы поля были не большие?
|
|||
6
Dolphinbet
25.08.15
✎
14:28
|
(2) А как сохраняете в xls с гиперссылками?
|
|||
7
Sun125
25.08.15
✎
15:02
|
(6) Страница.Hyperlinks.Add(Страница.Cells(2,5),"http://www.ya.ru",,"Ссылка", "Номенклатура текст");
|
|||
8
Sun125
25.08.15
✎
15:04
|
Поля xls-файла вроде настроил:
Страница.PageSetup.LeftMargin = Ексель.Application.InchesToPoints(10/25.4); // Поле слева Но теперь все время последний пустой лист выходит. Подскажите,пожалуйста, как избавиться? |
|||
9
Sun125
25.08.15
✎
15:12
|
удаляю в самом Екселе колонки справа и строки снизу, а все равно в предварительном просмотре лишний пустой лист в конце. Не специалист по Екселю, не могу понять, откуда этот лист и как его убрать?
|
|||
10
NikVars
25.08.15
✎
15:14
|
||||
11
NikVars
25.08.15
✎
15:16
|
||||
12
Sun125
25.08.15
✎
15:21
|
(11) Экспорт в pdf из xls уже работает на компах. Но пользователь не будет вручную сидеть экспортировать, ему нужно в 1с нажать кнопку и получить готовый pdf.
|
|||
13
Sun125
25.08.15
✎
15:26
|
(10) Думаю у меня проблема не с ExcelWorkBook.ExportAsFixedFormat(0, ПутьВыгрузкиФайлаPDF , 0).
Потому что до преобразования в pdf открываю в Екселе файл xls и он уже с пустым листом в предварительном просмотре. |
|||
14
NikVars
25.08.15
✎
15:26
|
(12) https://support.microsoft.com/ru-ru/kb/982736
Может поможет... |
|||
15
NikVars
25.08.15
✎
15:26
|
Чего там с языками и регионами на компе?
|
|||
16
Sun125
25.08.15
✎
15:29
|
(15) Да проблему с выскакивающей ошибкой я решил.
У меня проблема, что в в xls-файле в предварительном просмотре пустой лист, хотя уже все колонке справа и строки снизу поудалял. |
|||
17
Sun125
25.08.15
✎
15:39
|
А если параметры страницы не задавать (Страница.PageSetup.LeftMargin = Ексель.Application.InchesToPoints(10/25.4);// Поле слева)
то пустой страницы в конце нет, но опять на страницу не помещается. |
|||
18
NikVars
25.08.15
✎
16:08
|
(17) В посте (10) как раз и говорится о проблеме с областью печати. Может это и есть твоя проблема.
|
|||
19
Dolphinbet
25.08.15
✎
16:58
|
(7) Гиперссылки добавил, но что-то там какой-то косяк с кодировками. При открытии в браузере русские символы преобразуются в крякозябры почему-то...
|
|||
20
Dolphinbet
25.08.15
✎
18:31
|
(19) закодировал русские символы в url encoded, но проблема осталась, все равно при открытии гиперссылки в браузере проблема с кодировкой...
|
|||
21
Dolphinbet
25.08.15
✎
18:44
|
Похоже что-то с кодировкой данных в ячейке не то...
|
|||
22
Dolphinbet
25.08.15
✎
18:45
|
А как ее можно в принципе поменять?
|
|||
23
Sun125
27.08.15
✎
00:01
|
(18) Может кто знает, как скрипт запустить из обработки 1С?
Строка exec(APPLICATION_SCRIPT_FOLDER.'\\excel.vbs C:\\tmp\\test.xlsx C:\\tmp\\test.pdf"); не работает |
|||
24
Sun125
27.08.15
✎
00:15
|
Процедура или функция с указанным именем не определена (exec)
|
|||
25
Sun125
27.08.15
✎
00:27
|
Может у кого пример есть, как запустить скрипт VBS из 1С? Поделитесь,пожалуйста.
|
|||
26
Апош
27.08.15
✎
07:21
|
казалось бы, при чём тут 1с?
(25) а команду системы пробовал? |
|||
27
Dolphinbet
27.08.15
✎
16:47
|
ПутьКСкрипту=ПолучитьИмяВременногоФайла("vbs");
Скрипт=Новый ЗаписьТекста(ПутьКСкрипту,КодировкаТекста.ANSI); Скрипт.ЗаписатьСтроку("WScript.Sleep "+СтрЗаменить(ВремяВМиллисекундах,Символы.НПП,"")); Скрипт.ЗаписатьСтроку("Set FSO=CreateObject(""Scripting.FileSystemObject"")"); Скрипт.ЗаписатьСтроку("Set File=FSO.GetFile(WScript.ScriptFullName)"); Скрипт.ЗаписатьСтроку("File.Delete"); Скрипт.Закрыть(); Shell = Новый COMОбъект("WScript.Shell"); Shell.run(""""+ПутьКСкрипту+"""",0,1); |
|||
28
Sun125
28.08.15
✎
10:24
|
(27) Спасибо!Попробую
|
|||
29
Sun125
28.08.15
✎
13:49
|
Обнаружил такую ошибку:
Произошла исключительная ситуация (MS Excell). Невозможно получить свойство Open класса WorkBooks. Возникает при попытке открыть файл xls для редактирования, если табличный документ содержит много строк (в моем случае больше 20). Подскажите,пожалуйста, как это можно решить? |
|||
30
Sun125
28.08.15
✎
14:00
|
Посмотрел, что с файлом xls после это команды: ТабличныйДокумент.Записать(ПутьВыгрузкиФайлаXLS,"XLS");
Файл даже вручную не открывается. Пишет, что в книге обнаружено содержимое,которое не удалось прочитать. Хотя ничего нового там не выводится, просто строка лишняя. Может есть какие-то ограничения на размер содержимого в листе Екселя? |
|||
31
Sun125
28.08.15
✎
14:02
|
А если вместо команды:
ТабличныйДокумент.Записать(ПутьВыгрузкиФайлаXLS,"XLS") сохранить табличный документ вручную, через Файл-Сохранить как, то файл xls открывается нормально. |
|||
32
Апош
28.08.15
✎
14:02
|
тип попробуй более другой задать
|
|||
33
Dolphinbet
28.08.15
✎
14:03
|
Лучше использовать формат xlsx
|
|||
34
Dolphinbet
28.08.15
✎
14:07
|
ТабличныйДокумент.Записать(ПутьВыгрузкиФайлаXLS,ТипТабличногоДокумента.XLSX);
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |