我想做个Js调用c#方法打印文档的功能,但是不知道怎么调用方,求指点.

2019-01-03 00:50发布

复制代码
public MainWindow()
        {
            InitializeComponent();
            Closing += (s, e) => ViewModelLocator.Cleanup();
            mychrome.Address = "file:///E:/test.html";
            mychrome.RegisterJsObject("callbackObj", new CallbackObjectForJs());
           Closing += new System.ComponentModel.CancelEventHandler(MainWindows_Closing);
}
public class CallbackObjectForJs
        {
            public void showMessage()
            {
      //我想在这调用test_print1()方法,应该怎么写?
           }
       }
public string test_print1()
        {
            //打印
            PrintDialog pdlg = new PrintDialog();
            if (pdlg.ShowDialog() == true)
            {
                FlowDocument doc = PrintPreviewWindow.LoadDocumentAndRender("OrderDocument.xaml", GlobalData.m_orderExample, new OrderDocumentRenderer());
                Dispatcher.BeginInvoke(new DoPrintMethod(DoPrint), DispatcherPriority.ApplicationIdle, pdlg, ((IDocumentPaginatorSource)doc).DocumentPaginator);
            }
            return "文档已打印";
        }
复制代码

wpf,用的cef浏览器加载html页面,html页面上的JS调用c#的方法打印. 所有方法都测试没问题了,就是不知道怎么在CallbackObjectForJs里去调用打印的方法test_print1()

3条回答
Deceive 欺骗
2楼-- · 2019-01-03 01:26

用的什么框架  aspx  还是其他的

查看更多
迷人小祖宗
3楼-- · 2019-01-03 01:33
public class CallbackObjectForJs
        {
            public void showMessage()
            {
      //我想在这调用test_print1()方法,应该怎么写?

                 test_print1();
           }
       }    

这样就行了。

 

为了防止你再问,如何在JS中调用showMessage,我就先剧透下, js中这样写就行了。

window.CallbackObjectForJs.showMessage();

查看更多
仙女界的扛把子
4楼-- · 2019-01-03 01:34

还是老老实实写一个专门的服务出来吧

查看更多
登录 后发表回答