首先需要保证有Acrobat应用程序
然后我还是利用了事件的委托机制
主窗体里写上Action
还有void TriggerSavePDF(string pdffile)
下面是在子窗体里写的
这是初版只能保存我设置的一个gridControl中的gridView的内容
private void TrackGeoInfo_OnSavePDF(string pdf_filepath)
{
DevExpress.XtraGrid.Views.Grid.GridView view = this.tracks_gctrl.MainView as DevExpress.XtraGrid.Views.Grid.GridView;
if (view != null)
{
view.ExportToPdf(pdf_filepath);
System.Diagnostics.Process pdfExport = new System.Diagnostics.Process();
pdfExport.StartInfo.FileName = "Acrobat.exe";
pdfExport.StartInfo.Arguments = pdf_filepath;
pdfExport.Start();
}
}
保存后中文乱码了
查了一下需要设置
gridContorl打印属性的字体改为pdf能支持的中文字体或者黑体,修改导出的字体就可以了
在外观打印里找
Header还有Row把Font设置为中文字体
接下来出现另一个问题就是表很挤
设置gridview的OptionsPrint中的AutoWidth=false;就能够根据内容的大小改变列的宽度
链接:https://blog.csdn.net/polloo2012/article/details/82110642
接下来我思考的问题是Diagnostics是怎么用的,process一直打开不关闭会有什么问题吗
System.Diagnostics.Process.Start(); 它主要有以下几个功能:
1、打开某个链接网址(弹窗)。
2、定位打开某个文件目录。
3、打开系统特殊文件夹,如“控制面板”等。
上面那个网址比较详细的说明了一下可以打开三方程序、我的电脑、控制面板、网页等等