Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Есть необходимость печати многстраничных документов из из 1с(обработка привязана к печати документа реализация)
код
сопсно результат БЫ устроил, если б первую страницу не выдавало в размере 5% от исходника
остальные страницы печатаются как положено-вписываются в А4, с первой страницей-просто беда какая-то
Помогите, чем сможете
код
МодиДок=СоздатьОбъект("MODI.Document");
МодиДок.Create(Путь+Имя);
Сообщить(МодиДок.images.count);
Для к=1 По МодиДок.images.count Цикл
МодиДок.PrintOut(к,к);
КонецЦикла;
сопсно результат БЫ устроил, если б первую страницу не выдавало в размере 5% от исходника
остальные страницы печатаются как положено-вписываются в А4, с первой страницей-просто беда какая-то
Помогите, чем сможете
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну вот функция:
Теперь, думаю, тему можно закрывать:)
Функция СохранитьФрейм(ИсхФайл,ФайлРезультата,фрейм_номер)
//Сохраняет слой из файла tiff по номеру фрейма
//Возвращает -1 когда закончились фреймы, 1 - успешно сохранен, 0 - какая-то фигня все-таки случилась
Скрипт = "
|Function SaveFrameToImage(SourseFile,ResultFile,frm)
|On Error Resume Next
|Dim Img 'As ImageFile
|Dim IP 'As ImageProcess
|Dim objFSO
|
|Set Img = CreateObject(""WIA.ImageFile"")
|Set IP = CreateObject(""WIA.ImageProcess"")
|Set objFSO = CreateObject(""Scripting.FileSystemObject"")
|
|Img.LoadFile SourseFile
|
|If Img.FrameCount<frm Then
| SaveFrameToImage = -1
| Exit Function
|End if
|
|Img.activeframe = frm
|
|IP.Filters.Add IP.FilterInfos(""Convert"").FilterID
|IP.Filters(1).Properties(""FormatID"").Value = ""{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}""
|
|Set Img = IP.Apply(Img)
|
|If objFSO.FileExists(ResultFile) Then
| objFSO.DeleteFile ResultFile
|End If
|If Err.Number = 0 Then
| Img.SaveFile ResultFile
| SaveFrameToImage = 1
|Else
| SaveFrameToImage = 0
|End if
|End Function
|";
ИспСкрипт= СоздатьОбъект("MSScriptControl.ScriptControl");
ИспСкрипт.Language="vbscript";
ИспСкрипт.AddCode(Скрипт);
Рез = ИспСкрипт.Modules("Global").CodeObject.SaveFrameToImage(ИсхФайл,ФайлРезультата,фрейм_номер);
Возврат рез;
КонецФункции
ПоказатьТеперь, думаю, тему можно закрывать:)
(6) Ёпрст, первая страница 5% остальные-первые,в количестве 8 штук
без цикла выводит только первую
другой принтер-тот же результат, ничего не изменяется
стандартными виндовыми средствами печатает с первого листа и в актуальном размере
без цикла выводит только первую
И на другой принтёр попробуй печнуть..
PrintOut(From, To, Copies, PrinterName, PrintToFileName, PrintAnnotation, FitMode)
в PrinterName можешь имя принтёра запихать
PrintOut(From, To, Copies, PrinterName, PrintToFileName, PrintAnnotation, FitMode)
в PrinterName можешь имя принтёра запихать
другой принтер-тот же результат, ничего не изменяется
стандартными виндовыми средствами печатает с первого листа и в актуальном размере
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот