Имя: Пароль:
1C
1С v8
Склейка нескольких PDF файлов в один
0 dismo
 
03.04.15
13:29
Добрый день! Перерыл кучу форумов и сайтов, ничего не нашел. Опишу проблему: есть несколько многостраничных ПДФ-файлов, необходимо собрать еще один ПДФ из первых страниц этих файлов. Реализую на 8.3. Есть код, который раньше работал на 8.2. Сейчас он не работает ни там ни там. Создаю виртуальный принтер PDFCreator, нахожу файлы, когда ничинаю в цикле их склеивать, вот на этой строчке:

ЗапуститьПриложение("""C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe""/n /t " +текСтрока.ИмяФайла+" "+ИмяПринтераPDF);
еще пробовал вот так, тоже не работает:
ЗапуститьПриложение("C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe /n /t " +текСтрока.ИмяФайла+" "+ИмяПринтераPDF);


выдает ошибку: "Произошла ошибка при открытии данного документа. Не удается найти файл"

Файл этот есть, если задать просто ЗапуститьПриложение(текСтрока.ИмяФайла)
все находит и открывает.

В чем проблема, у Adobe Reader поменялся формат командной строки?
1 DrShad
 
03.04.15
13:31
на сервере нет такого файла
2 dismo
 
03.04.15
13:36
Путь к файлу я даю сетевой. На файловой базе тоже не работает, если давать файл со своего компьютера.
3 DrShad
 
03.04.15
13:37
(2) а само приложение есть на сервере?
4 dismo
 
03.04.15
13:39
На сервере стоит PDFCreator и Adobe Reader.
5 dismo
 
03.04.15
13:39
На клиентской тоже
6 DrShad
 
03.04.15
13:44
хз тогда
7 Cube
 
03.04.15
13:47
(0) Сетевой путь с пробелами...
Делай так:

ЗапуститьПриложение("""C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe""/n /t """ + текСтрока.ИмяФайла + """ " + ИмяПринтераPDF);
8 dismo
 
03.04.15
14:22
(7) Действительно нужно прописывать имя файла в кавычки...Спасибо большое, заработало. Ну и до кучи вопрос, как отправить на принтер только первую страницу?

Сейчас параметры такие:
    ИмяПринтераPDF = ПринтерыPDF.Item(1);
    
    ПринтерПДФ.cStart("NoProcessingAtStartup");
    ПринтерПДФ.cClearcache();
    ПринтерПДФ.cPrinterStop = 1;
    
    НаборОпций = ПринтерПДФ.cOptions();
    НаборОпций.NoConfirmMessageSwitchingDefaultprinter   = 1;
    НаборОпций.UseAutosave                        = 1;
    НаборОпций.UseAutosaveDirectory                  = 1;
    НаборОпций.AutosaveFormat                     = 0; // PDF  
    
    НаборОпций.AutosaveDirectory                  =  ИмяКаталога;
    НаборОпций.AutosaveFilename                   = "111.PDF";
    НаборОпций.AutosaveStartStandardProgram       = 0;