Имя: Пароль:
1C
1С v8
Распечать файл .pdf как изображение
0 bvb
 
23.05.13
14:39
Нужно распечатать готовый файл .pdf как приложение к печатной

Загоняю его в макет как двоичные данные
и пытаюсь печатать как картинку :

Рис = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Индекс = ТабДокумент.Рисунки.Индекс(Рис);
       
абДокумент.Рисунки[Индекс].Картинка       =  Новый Картинка(ПолучитьМакет("Письмо"));                
ТабДокумент.Рисунки[Индекс].РазмерКартинки = РазмерКартинки.Растянуть;
   
СтрОбласть = "R"+СтрЗаменить((Индекс * _1С_ВысотаСтраницы + 1),""+Символ(160),"")+"C1:R"+СтрЗаменить((Индекс+1)
       * _1С_ВысотаСтраницы,""+Символ(160),"")+"C"+Строка(_1С_ШиринаСтраницы);
       
ТабДокумент.Рисунки[Индекс].Расположить(ТабДокумент.Область(СтрОбласть));

Вылазит андреевский крест. Как я понимаю объект "картинка"  .pdf не понимает.
Как быть ?
1 Рэйв
 
23.05.13
14:40
Это же не картинка.вот и не понимает.
2 Ковычки
 
23.05.13
14:42
@echo off
setlocal ENABLEDELAYEDEXPANSION
set gs=C:\Program Files\gs\gs9.06\bin\gswin32c.exe
set count=0
set p=0
set ok=0
set rez=300
set quality=100
set format=jpeg
:::set rez=200
:::set quality=50
:::set format=jpeggray
echo "%~s1"
rem pause
if exist "%~s1" (
   title Подождите идет подготовка...
   echo Подождите идет подготовка...
   mkdir "%~dpn1" > nul 2>&1
   for /f "delims=" %%x in ('cmd /c ""%gs%" -dBATCH -dNOPAUSE -dNoCancel -sDEVICE=jpeg -sOutputFile="nul" -r5 "%~s1"" ^| find "Page"') do (
       set count=%%~x
   )
   cls
   set /a count=!count:* =!
   for /l %%x in (1,1,!count!) do (
       set n=0000%%~x
       set n=!n:~-3!
       "%gs%" -q -dBATCH -dNOPAUSE -dNoCancel -dJPEGQ=%quality% -sDEVICE=%format% -dFirstPage=%%~x -dLastPage=%%~x -sOutputFile="%~dpn1\%~n1 (Лист !n!).jpg" -r%rez% "%~s1" && set ok=1
       <nul set /p xxx=.
       set t=!t!.
       set /a p="(100 * %%~x) / !count!"
       title !p!%% !t!
   )
)
if %ok%==1 explorer "%~dpn1"
3 bvb
 
23.05.13
15:40
Обошелся так :

ИмяВременногофайла = ПолучитьИмяВременногоФайла(".pdf");    
   ПолучитьМакет("Письмо").Записать(ИмяВременногофайла);    
   
Попытка
   КоманднаяСтрока =   "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe /n /t " + ИмяВременногофайла;
   ЗапуститьПриложение(КоманднаяСтрока);
Исключение
       КоманднаяСтрока =   "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe /n /t " + ИмяВременногофайла;
       ЗапуститьПриложение(КоманднаяСтрока);
Конецпопытки;

Хотя совсем хорошо было бы вывести его в поле рисунок табличного документа
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн