首先需要保证有Acrobat应用程序
    然后我还是利用了事件的委托机制

    主窗体里写上Action OnSavePDF
    还有void TriggerSavePDF(string pdffile)
    下面是在子窗体里写的

    这是初版只能保存我设置的一个gridControl中的gridView的内容

    1. private void TrackGeoInfo_OnSavePDF(string pdf_filepath)
    2. {
    3. DevExpress.XtraGrid.Views.Grid.GridView view = this.tracks_gctrl.MainView as DevExpress.XtraGrid.Views.Grid.GridView;
    4. if (view != null)
    5. {
    6. view.ExportToPdf(pdf_filepath);
    7. System.Diagnostics.Process pdfExport = new System.Diagnostics.Process();
    8. pdfExport.StartInfo.FileName = "Acrobat.exe";
    9. pdfExport.StartInfo.Arguments = pdf_filepath;
    10. pdfExport.Start();
    11. }
    12. }

    image.png
    保存后中文乱码了
    image.png
    查了一下需要设置
    gridContorl打印属性的字体改为pdf能支持的中文字体或者黑体,修改导出的字体就可以了
    image.png
    在外观打印里找
    Header还有Row把Font设置为中文字体
    image.png
    接下来出现另一个问题就是表很挤
    设置gridview的OptionsPrint中的AutoWidth=false;就能够根据内容的大小改变列的宽度

    链接:https://blog.csdn.net/polloo2012/article/details/82110642

    接下来我思考的问题是Diagnostics是怎么用的,process一直打开不关闭会有什么问题吗
    System.Diagnostics.Process.Start(); 它主要有以下几个功能:


    1、打开某个链接网址(弹窗)。


    2、定位打开某个文件目录。


    3、打开系统特殊文件夹,如“控制面板”等。

    上面那个网址比较详细的说明了一下可以打开三方程序、我的电脑、控制面板、网页等等