Proe5.0导出PDF至配置文件的相关方法,VC++
定义文件bcsMessage.txt
PLM
PLM
PLM
#
login
login
测试
#
Active messagebox menu
Active messagebox menu
激活菜单
#
将Menu文件放置与程序同级的text文件夹下
配置ini文件
[BCS]
Path=C:\3
将配置文件放置Proe的工作目录下
代码如下:
C++
// bcsproe.cpp : 定义 DLL 的初始化例程。
// #include "stdafx.h"
#include "bcsproe.h"
#include "afx.h" #include "ProMenu.h"
#include "ProUtil.h"
#include "ProMenubar.h"
#include "ProPDF.h" static uiCmdAccessState AccessDefault (uiCmdAccessMode);
void login();
void exportpdf(); #ifdef _DEBUG
#define new DEBUG_NEW
#endif // CbcsproeApp BEGIN_MESSAGE_MAP(CbcsproeApp, CWinApp)
END_MESSAGE_MAP() // CbcsproeApp 构造 CbcsproeApp::CbcsproeApp()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
} // 唯一的一个 CbcsproeApp 对象 CbcsproeApp theApp; // CbcsproeApp 初始化 BOOL CbcsproeApp::InitInstance()
{
CWinApp::InitInstance(); return TRUE;
}
extern "C" int user_initialize()
{
ProError status;
ProFileName message_file;
uiCmdCmdId cmd_id1; ProFileName MsgFile;
ProStringToWstring(MsgFile, "bcsMessage.txt");
status=ProMenubarMenuAdd ("PLM", "PLM","Utilities", PRO_B_TRUE, MsgFile); //login
status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)login,uiCmdPrioDefault,AccessDefault,
PRO_B_TRUE,PRO_B_TRUE,&cmd_id1); status = ProMenubarmenuPushbuttonAdd("PLM", "login", "login","Active messagebox menu", NULL,
PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "bcsMessage.txt")); return status;
} extern "C" void user_terminate()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
} /*================================================================*\
FUNCTION: AccessDefault()
\*================================================================*/
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
{
return (ACCESS_AVAILABLE);
} void login()/////////消息框
{
exportpdf();return;
} void exportpdf()
{
ProError err;
ProPath current_path;
char c_p[200];
err=ProDirectoryCurrentGet(current_path);
if (err!=PRO_TK_NO_ERROR)
{
AfxMessageBox(_T("未获取到Proe起始目录"));
return;
}
ProWstringToString(c_p,current_path);
CString strcurrent_path = current_path; ////获取配置文件路径
CString FileName =L"\\bcsConfiguration.ini";
LPTSTR lpPath = new TCHAR[MAX_PATH];
LPWSTR Path = new TCHAR[MAX_PATH];
strcurrent_path = strcurrent_path + FileName; //AfxMessageBox(strcurrent_path);
GetPrivateProfileString(L"BCS",L"Path",L"",Path,MAX_PATH,strcurrent_path);
//AfxMessageBox(Path);
if (_tcslen(Path) < 1)
{
AfxMessageBox(L"未找到配置信息!");
return;
}
delete [] lpPath; ProPDFOptions ops;
ProPDFoptionsAlloc(&ops); ProMdl mdl;
//获取文件名
err = ProMdlCurrentGet(&mdl);
if (PRO_TK_NO_ERROR != err)
{
AfxMessageBox(_T("当前没有文件打开"));
return;
} ProMode mode;
err = ProModeCurrentGet(&mode);
if (err != PRO_TK_NO_ERROR)
{
AfxMessageBox(_T("未获取到当前打开文件"));
return;
} if (mode != PRO_MODE_DRAWING)
{
AfxMessageBox(_T("当前只支持DRW文件导出pdf"));
return;
} ProName name;
err = ProMdlNameGet(mdl, name);
CString cstrName = name;
CString outfilepathname = Path;
outfilepathname = outfilepathname +L"\\" + cstrName + L".pdf";
//AfxMessageBox(outfilepathname.GetBuffer(0)); //导出pdf
ProPDFExport(mdl,outfilepathname.GetBuffer(0),ops);
ProPDFoptionsFree(ops);
AfxMessageBox(_T("导出完成!"));////弹出一个消息框
}
下面是关于在Proe客户端的配置
定义注册文件
Protk.dat
内容如下:
NAME pt_inst_test
STARTUP DLL
ALLOW_STOP TRUE
DELAY_START FALSE
EXEC_FILE C:/Documents and Settings/Administrator/My Documents/bcsproe.dll
TEXT_DIR C:/Documents and Settings/Administrator/My Documents/text
REVISION 1000
END
若想实现Proe自动注册,则将此文件放置Proe的安装目录的text文件下,例如:C:\Program Files\proeWildfire 5.0\text,具体路径根据自己安装目录指定
注:文件名必须为Protk不能更换
Proe5.0导出PDF至配置文件的相关方法,VC++的更多相关文章
- asp.net2.0导出pdf文件完美解决方案【转载】
asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式.这种文件格式与操作系统 ...
- Itext2.0.8 和freemarker导出pdf
这个是跟上一篇写的freemarker导出word是一块的.但是关联性不是很大.由于本人技术有限本篇导出也是根据网上大家的做出的demo混合而成.有不足的地方请大家指出.好改正,使以后看到的freem ...
- .Net导出pdf文件,C#实现pdf导出
最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本, ...
- JS导出PDF插件(支持中文、图片使用路径)
在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playgroun ...
- ITextSharp导出PDF表格和图片(C#)
文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接 分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3g ...
- JAVA导出pdf实例
一.直接导出成PDF Java代码 1. import java.io.FileNotFoundException; 2. import java.io.FileOutputStream; 3. ...
- 利用ITextSharp导出PDF文件
最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...
- iText导出pdf、word、图片
一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...
- Itext导出PDF,word,图片案例
iText导出pdf.word.图片 一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生 ...
随机推荐
- SpringBoot基于easyexcel导出和写入Excel
easyexcel是阿里巴巴旗下开源项目,主要用于Excel文件的导入和导出处理,今天我们利用SpringBoot和easyexcel实战演示如何导出和写入Excel文件. 一.加入我们需要的ea ...
- cmake的find_package()简单总结
遇到的问题 find_package(lzb)出现错误如下: CMake Warning at CMakeLists.txt:37 (find_package): By not providing & ...
- Spring注解 @Autowired
@Autowired可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作,这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用
- Maven - 构建生命周期、阶段、目标
版权所有,未经授权,禁止转载 章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Ma ...
- c++ 模板联系4
//定义类成员函数特化类型 #include "stdafx.h" #include <iostream> using namespace std; typedef f ...
- 【Linux】linux用户系统管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须拥有一个账号,然后以这个账号的身份进入系统. 用户:使用linux系统的人. 用户组:具有相同权限的一组用户. li ...
- C# 串口编程,扫码枪使用
一.串口通信简介 串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为 ...
- 算法应用杂谈-xgboost的偏差
一个小样本的cvr 估计问题中, 考虑用xgboost 模型. 发现结果的估计偏差很大. 仔细研究后, 发现现象: 迭代步数不多, 一般3,5步就停了. 预测的分数偏差很大, 分布不匀. pcoc很大 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 临时表
MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间. MySQL临时表只在当前连接可见,如果使用PHP脚本来创建My ...
- SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件
第3章 聚合与排序:3-3 为聚合结果指定条件 ● 使用COUNT函数等聚合函数对表中数据进行汇总操作时,为其指定条件的不是WHERE子句,而是HAVING子句.● 聚合函数可以在SELECT子句. ...