Имя: Пароль:
1C
 
Сохранения в PDF из Excel 2007
0 Santa4527
 
12.08.10
17:08
Попытка
       Excel         = Новый  COMОбъект("Excel.Application") ;
   Исключение
       Excel.Workbooks.Close();
       Сообщить("Размещение файла недоступно или другая ошибка доступа.", СтатусСообщения.Важное);
       Возврат;
   КонецПопытки;
   
   
   Режим = "123йцу";
   Excel.Application.Workbooks.Add(1);
   
   ПрайсКнига = Excel.Workbooks.Item(1);
   ПрайсЛист = Excel.ActiveSheet;
   ПрайсЛист.Name = "Первый";
   ПрайсЛист.Cells(4, 2).Value = "Данные на дату: " +  ТекущаяДата() + ". Прайс-лист действителен в течение одного дня.";
   ПрайсЛист.SaveAs("C:\" + Режим + ".pdf", "xlHtml");
   Excel = Неопределено;

НА компе стоит Excel 2007 он может сохранить в pdf. Пытаюсь программно это сделать, но не открывает файл pdf т.к. формат файл не поддерживается или файл поврежден. Может, кто делал, подскажите??????????
1 BoCh
 
12.08.10
17:09
Обязательно через excel или можно сразу в пдф?
2 BoCh
 
12.08.10
17:10
Всмысле, прайс только в екселе? или берутся из 1с данные?
3 Santa4527
 
12.08.10
17:11
(1)
Нужно excel сохранить в pdf
(2)
Беруться из 1С
4 borozavr
 
12.08.10
17:14
(3) ПрайсЛист.SaveAs("C:\" + Режим + ".pdf", "xlHtml"); xlHtml-очень странный параметр для сохранения в PDF
5 BoCh
 
12.08.10
17:15
Для Windows у меня реализовано так
Попытка
       Принтер=Новый ComObject("Bullzip.PDFPrinterSettings");
       принтер.SetValue("output", ИмяФайла);
       принтер.SetValue("ShowSaveAS", "never");
       принтер.SetValue("ShowProgress", "no");
       принтер.SetValue("ShowProgressFinished", "no");
       принтер.SetValue("ShowSettings", "never");
       принтер.SetValue("ShowPDF", "no");
       принтер.SetValue("ConfirmOverwrite","no");
       принтер.SetValue("OwnerPassword","");
       принтер.SetValue("Permissions",61636);
       принтер.WriteSettings();
       Таб.Автомасштаб=Истина;
       Таб.Имяпринтера="Bullzip PDF Printer";
       
       Таб.Напечатать(Истина);
       PDFФайл = Новый Файл(ИмяФайла);
       
       Пока  НЕ PDFФайл.Существует() Цикл
           ОбработкаПрерыванияПользователя();
       КонецЦикла;            
               
   Исключение
       Сообщить(ОписаниеОшибки());
       Сообщить("Не установлен виртуальный принтер!");
   КонецПопытки;    
для Linux
Попытка
   Таб.ИмяПринтера = "Generic-CUPS-PDF-Printer";    
   Таб.Напечатать(Истина);
Исключение
   Сообщить(ОписаниеОшибки());
   Сообщить("Не установлен CUPS-PDF или не создан каталог PDF в домашней папке пользователя!");
КонецПопытки;

В случае с виндой стоит BullZip PDF Printer
6 Santa4527
 
12.08.10
17:19
А не через принтер виртуальный возможно!!!
7 BoCh
 
12.08.10
17:20
А я хз, у нас организация не настолько богатая, чтоб MS Office ставить =)
8 mikecool
 
12.08.10
17:20
закладка
9 Santa4527
 
12.08.10
17:21
(8)
Что "закладка"?
10 borozavr
 
12.08.10
17:21
(5) для 2007 офиса есть родная скачиваемая надстройка от мелкомягких (в бете была в составе, но по требованию Adobe убрали),позволяющая сохранять в PDF без виртуального принтера, причем очень быстрая (попробуй отправить на виртуальник документ в 1000 листов).
11 Нуф-Нуф
 
12.08.10
17:22
узнал что офис2007 может сохранять в пдф... удивлен...
12 borozavr
 
12.08.10
17:27
(11) для неверующих: http://www.youtube.com/watch?v=liihH3v0Nak
13 Liova
 
12.08.10
17:29
Так! Смотрим тут: http://msdn.microsoft.com/en-us/library/bb241279(office.12).aspx

PDF-Format
The pdf format is not listed here. However it has number 57.

Так что тебе надо

ПрайсЛист.SaveAs("C:\" + Режим + ".pdf", 57);
14 Santa4527
 
12.08.10
17:32
(13)
Спасибо!!!!
15 Santa4527
 
12.08.10
17:53
А как сохранить всю книгу, а не один лист в ПДФ? Как указать нужные параметры?
16 Santa4527
 
12.08.10
17:58
А как сохранить всю книгу, а не один лист в ПДФ?
17 Santa4527
 
13.08.10
11:30
Попытка
       Excel         = Новый  COMОбъект("Excel.Application") ;
   Исключение
       Excel.Workbooks.Close();
       Сообщить("Размещение файла недоступно или другая ошибка доступа.", СтатусСообщения.Важное);
       Возврат;
   КонецПопытки;
   
   
   Режим = "123йцу";
   Excel.Application.Workbooks.Add(1);
   
   ПрайсКнига = Excel.Workbooks.Item(1);
   ПрайсЛист = Excel.ActiveSheet;
   ПрайсЛист.Name = "Первый";
   ПрайсЛист.Cells(4, 2).Value = "Данные на дату: " +  ТекущаяДата() + ". Прайс-лист действителен в течение одного дня.";
   ПрайсЛист.SaveAs("C:\" + Режим + ".pdf", 57);
   Excel = Неопределено;


ВОПРОС. Как указать параметры в SaveAs, что бы сохранить всю книгу в PDF, а не один лист?
18 levlvov
 
13.08.10
11:35
(17) у вас превышен лимит на количество вопросов за один час...
19 Santa4527
 
13.08.10
11:41
(18)
Это хорошо или плохо?)
А по существу?
20 Santa4527
 
13.08.10
12:08
В VD пишеться так
ChDir "C:\"
   ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "C:\?????-???? ??????? 3_PDF.pdf", Quality:=xlQualityMinimum, _
       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
       False

в 1 с Пытаюсь написать так
ПрайсЛист.SaveAs("C:\" + Режим + ".pdf","xlTypePDF","xlQualityMinimum","True","False","False");

{Форма.Форма(19)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (0x800a03ec)
   ПрайсЛист.SaveAs("C:\" + Режим + ".pdf","xlTypePDF","xlQualityMinimum","True","False","False");
21 Santa4527
 
13.08.10
12:09
в VB (Visual Basic)
22 Santa4527
 
13.08.10
12:18
Ап!!!!!
23 Mikle Shaman
 
18.08.10
16:55
Коллеги, а как бы еще так исхитрится чтобы при сохранении PDF не разбивал криво на листы. У меня, например, в Excel форма ТОРГ-12 горизонтально ориентированная, а при сохранении ее PDF тупо режет на 2 вертикальных листа. :(
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой