Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Печать pdf напрямую из DOCs не открывая файл
 
возникла проблема, необходимо напечатать привязанный pdf-файл не открывая объект номенклатуры
Код
ReferenceObject архивныйДокумент = (ReferenceObject)ТекущийОбъект.СвязанныйОбъект["Архивный документ"];
PrintDialog Dialog = new PrintDialog();
PrintDocument print = new PrintDocument();
Dialog.ShowDialog();
print = архивныйДокумент;  //здесь начинает ругаться на неявное преобразование
print.PrinterSettings = Dialog.PrinterSettings;     
print.Print();

при компиляции соответственно выдает ошибку "Неявное преобразование типа 'TFlex.DOCs.Model.References.ReferenceObject' в 'System.Drawing.Printing.PrintDocument' невозможно"
если кто то сталкивался с подобным, или делал что то похожее помогите советом, может как то по другому можно реализовать или как преобразование сделать?
 
У меня встречный вопрос, а как на C# распечатать pdf? DOCs я не касаюсь, но я не нашёл прямой печати pdf.
 
Дмитрий, вот тут есть приведенный алгоритм для печати файла на C#, только там файл txt, я думаю печать pdf будет происходить по принципу печати картинки. Перед тем как отписал здесь, находил кучу всяких алгоритмов по печати
 
Цитата
Smile пишет:
Дмитрий, вот тут есть приведенный алгоритм для печати файла на C#, только там файл txt, я думаю печать pdf будет происходить по принципу печати картинки. Перед тем как отписал здесь, находил кучу всяких алгоритмов по печати
Так может сначала разобраться с печатью pdf? А не пытаться выполнить преобразование чего то во что то да ещё и не понятно во что.
 
Дмитрий, в общем печать pdf получается точно такая же как в примере который по ссылке, отличие в том, что указывается вместо txt - pdf

Код
printJob.StartInfo.FileName = @"C:\temp\SomeFile.pdf"; 
только тут пример на локальный файл. Получить путь в DOCs для вывода файла на печать наверно получится через FilePath, еще не пробовал но получиться должно.Вопрос остается прежним, как сделать преобразование типа про которое говорил в первом посте, и возможно ли это вобще
Изменено: Smile - 27.02.2014 12:39:22
 
Цитата
Smile пишет:
Дмитрий, в общем печать pdf получается точно такая же как в примере который по ссылке, отличие в том, что указывается вместо txt - pdf
Код
 printJob.StartInfo.FileName = @"C:\temp\SomeFile.pdf"; 
 
только тут пример на локальный файл. Получить путь в DOCs для вывода файла на печать наверно получится через FilePath, еще не пробовал но получиться должно.Вопрос остается прежним, как сделать преобразование типа про которое говорил в первом посте, и возможно ли это вобще
Код
     NomenclatureObject nomenclatureObject = Context.ReferenceObject as NomenclatureObject;

     if (nomenclatureObject == null)
      return; 

     ReferenceObject linkedObject = nomenclatureObject.LinkedObject;

     if (linkedObject == null)
      return;

     List<FileObject> files = new List<FileObject>();

     switch (linkedObject.Reference.ParameterGroup.Guid.ToString())
     {
      case "ac46ca13-6649-4bbb-87d5-e7d570783f26": // Справочник "Документы"
          EngineeringDocumentObject documentObject = linkedObject as EngineeringDocumentObject;

          if (documentObject == null)
           break;

          files.AddRange(documentObject.GetFiles());
          break;
     }
     MessageBox.Show(String.Join(Environment.NewLine, files));
    }
 
спасибо конечно, но некоторые моменты непонятны, можно с комментариями? Заранее спасибо
 
Цитата
Smile пишет:
спасибо конечно, но некоторые моменты непонятны, можно с комментариями? Заранее спасибо
Можно, на выходе получаем список файлов связанных с объектом номенклатуры.
Страницы: 1