cad.net 读取pc3,pmp 读取pc3打印机文件
修改pc3文件还没做好..大家先look look怎么读....
首先弄一个控制台程序,
然后去下载 Ionic.Zip 这个东西...载到控制台...都很简单...
然后就是复制下面代码,看控制台显示和代码注释....
namespace ConsoleApp1 {class Program{static void Main(){ string pc3Path = @"D:\桌面\DWG To PDF.pc3"; //cad2008的东西 Pc3PmpDecompress(pc3Path, pc3Path + ".txt"); //解压 }/// <summary>/// 解压pc3和pmp打印机文件/// </summary>/// <param name="pc3OrPmpPath">打印机路径</param>/// <param name="txtPathOut">输出txt路径</param>public static void Pc3PmpDecompress(string pc3OrPmpPath, string txtPathOut){using (FileStream fs = File.Open(pc3OrPmpPath, FileMode.Open, FileAccess.ReadWrite)){//版本信息int ver1 = 48;{byte[] buffer = new byte[ver1];fs.Read(buffer, 0, ver1);string str = Encoding.Default.GetString(buffer);Console.Write(Environment.NewLine + "版本信息:" + Environment.NewLine + str);}//12字节=3个int,第一个记录 "校验和" "adler"方式int ver2 = 4;{//"校验和"读取byte[] checkSum = new byte[ver2];fs.Read(checkSum, 0, ver2);//转为16进制再读var ss = new List<string>();for (int index = 0; index < checkSum.Length; index++){var shiliu = ((int)checkSum[index]).ToString("X2");ss.Add(shiliu);}Console.Write(Environment.NewLine + "压缩校验和:" + Environment.NewLine + string.Join(" ", ss.ToArray()));}int ver3 = 8;{//第二个是原始数据的字节数//第三个是压缩后的字节数BinaryReader br = new BinaryReader(fs);var ss = new int[2];for (int i = 0; i < 2; i++){ss[i] = br.ReadInt32();}Console.Write(Environment.NewLine + "压缩前的字节数:" + Environment.NewLine + ss[0].ToString());Console.Write(Environment.NewLine + "压缩后的字节数:" + Environment.NewLine + ss[1].ToString());}int ver4 = ver1 + ver2 + ver3; //前面头信息不能解压fs.Seek(ver4, SeekOrigin.Begin);//从新设置开始的位置,但是不设置也会自动读到这里using (ZlibStream zs = new ZlibStream(fs, CompressionMode.Decompress))//zip流,解压 {using (StreamReader sr = new StreamReader(zs, Encoding.Default))//流读取器 乱码原因 {string str = sr.ReadToEnd(); //读到结束 using (FileStream fs_out = File.Open(txtPathOut, FileMode.Create, FileAccess.ReadWrite))//新建文本 {byte[] bys = Encoding.Default.GetBytes(str);var lenhth = Encoding.Default.GetBytes(str).Length;fs_out.Write(bys, 0, lenhth);//写入读取的信息 }Console.Write(Environment.NewLine + "压缩包内容:" + Environment.NewLine + str);}zs.Dispose();}fs.Dispose();}Console.ReadKey();}} }
特别感谢的是找到方法的疯狂青蛙: http://www.cnblogs.com/cadlife
和不厌其烦教我怎么读16进制的e大: https://www.cnblogs.com/edata
然后是瞎几把翻译,原因是我还没读透这些东西....部分?号可能是乱码,具体还没设置好
meta 元数据{user_defined_model_pathname 用户定义的模型路径="F:\K01.惊惊盒子\04.工作小工具\2019dwgToPdf打印机\DWG To PDF.pmpuser_defined_model_basename 用户定义的模型基名=" driver_pathname 驱动程序路径名="C:\Program Files (x86)\AutoCAD 2008\drv\gdiplot9.hdidriver_version 驱动程序版本="1.1-9.1.51.0driver_tag_line 驱动标记线 ="Windows 系统驱动程序 - 由 Autodesk 提供toolkit_version 工具工具包版本=1driver_type 驱动程序类型=1canonical_family_name 简洁表达的家庭名称="Systemshow_custom_first 先显示自定义=TRUEtruetype_as_text 类型是文本=TRUEcanonical_model_name 规范模型名称="Systemlocalized_family_name 本地化的家庭名称="系统localized_model_name 局部模型名称="系统file_only 只有文件=FALSEmodel_abilities 模型能力="555555555055udm_description UDM描述=" win_device_name 视窗系统设备名称="pdfFactory Prowin_driver_name 视窗系统设备名称= "pdfFactory 6short_net_name 短网名="pdfFactory Profriendly_net_name 友好的网络名称="FPP6:dm_driver_version dm_驱动程序版本=1555default_system_cfg 默认系统配置=FALSEplatform 平台="2,6,1locale 现场="4B00409 } mod{media 媒体{abilities 能力="100004455400144444000005005005000400000000000005000caps_state caps状态="00000ui_owner 拥有人="22212222121111212112221size_max_x 纸张最大的规格的x=914.40002441 ( 0#.3C$ &E@)size_max_y 纸张最大的规格的y=1219.2000732 ( X,P,DT 5'@) description 描述{0{caps_type=1name 名称="ISO_A4_Portrait_210.00W_x_297.00H_-_(5,_17)_x_(205,_280)_=52600_MMmedia_bounds_urx 媒体边界x=210.0media_bounds_ury 媒体边界y=297.0printable_bounds_llx 可打印长边边界x=0.0printable_bounds_lly 可打印长边边界y=0.0printable_bounds_urx 可打印短边边界x=210.0printable_bounds_ury 可打印短边边界y=297.0printable_area 可打印面积=62370.0dimensional 尺寸=TRUE}//其他的都是每个纸张的信息1{caps_type=1name="ISO_A4_Landscape_297.00W_x_210.00H_-_(5,_17)_x_(292,_193)_=50512_MMmedia_bounds_urx=297.0media_bounds_ury=210.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=297.0printable_bounds_ury=210.0printable_area=62370.0dimensional=TRUE}2{caps_type=1name="ISO_A3_Portrait_297.00W_x_420.00H_-_(5,_17)_x_(292,_403)_=110782_MMmedia_bounds_urx=297.0media_bounds_ury=420.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=297.0printable_bounds_ury=420.0printable_area=124740.0dimensional=TRUE}3{caps_type=1name="ISO_A3_Landscape_420.00W_x_297.00H_-_(5,_17)_x_(415,_280)_=107830_MMmedia_bounds_urx=420.0media_bounds_ury=297.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=420.0printable_bounds_ury=297.0printable_area=124740.0dimensional=TRUE}4{caps_type=1name="ISO_A2_Portrait_420.00W_x_594.00H_-_(5,_17)_x_(415,_577)_=229600_MMmedia_bounds_urx=420.0media_bounds_ury=594.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=420.0printable_bounds_ury=594.0printable_area=249480.00000 ( $!T#D$:G )dimensional=TRUE}5{caps_type=1name="ISO_A2_Landscape_594.00W_x_420.00H_-_(5,_17)_x_(589,_403)_=225424_MMmedia_bounds_urx=594.0media_bounds_ury=420.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=594.0printable_bounds_ury=420.0printable_area=249480.00000 ( $!T#D$:G )dimensional=TRUE}6{caps_type=1name="ISO_A1_Portrait_594.00W_x_841.00H_-_(5,_17)_x_(589,_824)_=471288_MMmedia_bounds_urx=594.0media_bounds_ury=841.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=594.0printable_bounds_ury=841.0printable_area=499554.00000 ( (A]'D&X?P)dimensional=TRUE}7{caps_type=1name="ISO_A1_Landscape_841.00W_x_594.00H_-_(5,_17)_x_(836,_577)_=465360_MMmedia_bounds_urx=841.0media_bounds_ury=594.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=841.0printable_bounds_ury=594.0printable_area=499554.00000 ( (A]'D&X?P)dimensional=TRUE}8{caps_type=1name="ISO_expand_A1_Portrait_594.00W_x_841.00H_-_(5,_10)_x_(589,_831)_=479464_MMmedia_bounds_urx=594.0media_bounds_ury=841.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=594.0printable_bounds_ury=841.0printable_area=499554.00000 ( (A]'D&X?P)dimensional=TRUE}9{caps_type=1name="ISO_expand_A1_Landscape_841.00W_x_594.00H_-_(5,_10)_x_(836,_584)_=476994_MMmedia_bounds_urx=841.0media_bounds_ury=594.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=841.0printable_bounds_ury=594.0printable_area=499554.00000 ( (A]'D&X?P)dimensional=TRUE}10{caps_type=1name="ISO_A0_Portrait_841.00W_x_1189.00H_-_(5,_17)_x_(836,_1172)_=959805_MMmedia_bounds_urx=841.0media_bounds_ury=1189.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=841.0printable_bounds_ury=1189.0printable_area=999949.00000 ( !J$+D$QEP)dimensional=TRUE}11{caps_type=1name="ISO_expand_A0_Portrait_841.00W_x_1189.00H_-_(5,_10)_x_(836,_1179)_=971439_MMmedia_bounds_urx=841.0media_bounds_ury=1189.0printable_bounds_llx=0.0printable_bounds_lly=0.0printable_bounds_urx=841.0printable_bounds_ury=1189.0printable_area=999949.00000 ( !J$+D$QEP)dimensional=TRUE}}} } del 删除{media 美体{abilities 能力="100004455400144444000005005005000400000000000005000caps_state ="00000ui_owner 拥有人="22212222121111212112221size_max_x =914.40002441 ( 0#.3C$ &E@)size_max_y=1219.2000732 ( X,P,DT 5'@) } } udm{calibration{_x=1.0_y=1.0}media{abilities="100004455400144444000005005005000400000000000005000caps_state="00000ui_owner="22212222121111212112221size_max_x=914.40002441 ( 0#.3C$ &E@)size_max_y=1219.2000732 ( X,P,DT 5'@) } } hidden 隐藏的{media 媒体{abilities 能力="100004455400144444000005005005000400000000000005000caps_state="00000ui_owner="22212222121111212112221size_max_x=914.40002441 ( 0#.3C$ &E@)size_max_y=1219.2000732 ( X,P,DT 5'@) } }
转载于:https://www.cnblogs.com/JJBox/p/10909297.html
cad.net 读取pc3,pmp 读取pc3打印机文件相关推荐
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...
- C++ Opencv 读取指定路径中的所有文件(图片)及指定路径中指定格式的所有文件(图片)
读取指令路径下的所有文件,程序如下: #include <io.h> #include < fstream> #include < string> #include ...
- 如何使用Python创建,读取,更新和搜索Excel文件
This article will show in detail how to work with Excel files and how to modify specific data with P ...
- android读取SDCard任意路径下的文件
2019独角兽企业重金招聘Python工程师标准>>> 文件不能太大否则会报内存溢出 [java] view plain copy package yu.bin; import j ...
- 读取SD卡里面的BMP文件 显示到TFT上
读取SD卡里面的BMP文件 显示到TFT上 http://blog.csdn.net/yunxianpiaoyu/article/details/8841755 我刚好最近做了一个BMP565格式的图 ...
- 利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件
转载自:利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件 - Why So Serious? - 博客频道 - CSDN.NET http://blog.csd ...
- TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中
TF学习--TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中 目录 实验展示 代码实现 实验展示 代码实现 1.如果设置shuffle为T ...
- 如何读取jar包外的properties文件和log4j.properties
2019独角兽企业重金招聘Python工程师标准>>> 时间有限,不做排版和具体讲述问题产生的过程,下面是我的解决方案,已证实有效,其中Log4jP = "log4j.pr ...
- php记录读取数据类型,数据读取 · ThinkPHP 3.2.3开发手册 · 看云
# 数据读取 在ThinkPHP中读取数据的方式很多,通常分为读取数据.读取数据集和读取字段值. 数据查询方法支持的连贯操作方法有: 连贯操作 作用 支持的参数类型where 用于查询或者更新条件的定 ...
最新文章
- matplotlib的安装
- VirtualBox Linux Samba 设置
- linux下用户配置文件与系统配置文件
- Redux源码分析(一)
- 大数据WEB阶段(二十)更新丢失
- java arraylist 字符串_Java ArrayList、string、string[]之间的转换
- Ubuntu18.04 Flutter开发环境搭建
- android getter不起作用,java - 如何在Android Studio中自动生成getter和setter
- caioj1495: [视频]基于连通性状态压缩的动态规划问题:Formula 2
- 自定义UITabBar
- EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理
- 复旦大学入学计算机考试大纲,《计算机办公自动化》课程入学考试考核大纲和样题-复旦大学外国留学生...
- java计算机毕业设计基于安卓Android的团务智慧管理APP(源码+系统+mysql数据库+Lw文档)
- 快速检测深度学习的鲁棒性
- zigbee网关 CC2530 zstack用手机显示终端传来的lm75a温度传感器的值
- 小故事分解区块链--科普篇
- stm32f107基本资料
- [http]http转义和加解密方法
- Nat Commun:中国中医科学院黄璐琦院士/首都医科大学高伟教授团队联合解析雷公藤甲素生物合成关键C-14位羟化机制...
- 2014突破性科学技术:超隐私智能手机
热门文章
- VMware中centos6.5 minimal 使用NAT模式联网
- listview当选中某一个item时设置背景色其他的不变
- 电脑文件太多找不到?试试这个免费搜索软件
- Linux Python 安装第三方库时报错 package wheel is not installed
- Mac上的IDEA安装配置maven
- SAP License:SAP S/4HANA就是答案
- SAP自学指南:案例公司的管理难题
- SAP License:SAP用户权限
- 赛锐信息:PM模块的几点看法
- 项目管理系统、工作台、经营看板、质量管理、合同管理、合同审核、新建合同、分包商管理、立项审批、创建项目、项目模板、项目统计、计划管理、结项申请、审批流程、审批记录、审批状态、参数设置、axure原型