2013年12月18日
摘要: 比较原始图像数据和PDF中的图像数据,结果见表1.1。表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView。如果您有兴趣查看PDF文件内部细节,建议用UltraEdit-32,仅看PDF文件结构 用PdfView足矣。表1.1 从ACDSEE打印图像到Acrobat PDF虚拟打印的结果原始图像PDF中的图像数据序号说明宽×长(象素)图像解码器文件长度(字节)PDF解码器BitsPerComponent/ColorSpace数据流长度(字节)01黑白TIFF1728×1103CCITT G350, 阅读全文
posted @ 2013-12-18 12:43 NLazyo 阅读(7063) 评论(0) 推荐(0) 编辑
  2013年12月16日
摘要: 一、PdfObject: pdf对象 ,有9种,对象是按照对象内涵来分的,如果按照对象的使用规则来说,对象又分为间接对象和直接对象。间接对象是PDF中最常用的对象,如前面对象集合里面的,所有对象都是间接对象,在其他位置通过R关键字来引用,在交叉引用表里面都是通过间接对象来引用的。直接对象就更好理解了,9种对象单独出现的时候就叫直接对象。PdfObject pdfObject = this.reader.GetPdfObject(index);pdf对象的公共方法和属性: public PRIndirectReference IndRef { get; set; } public ... 阅读全文
posted @ 2013-12-16 14:45 NLazyo 阅读(2027) 评论(0) 推荐(0) 编辑
摘要: PDF文件结构(一)————物理结构 PDF(Portable Document Format,便携式文档结构)是一种很有用的文件格式,其最大的特点是平台无关而且功能强大(支持文字/图象/表单/链接/音乐/视频等).做PDF的解析,首先要熟悉PDF文件的物理结构和逻辑结构。PDF文件物理结构可分为以下几块: 1.文件头 文件头是PDF文件的第一行,格式如下: %PDF-1.4 这是个固定格式,表示这个PDF文件遵循的PDF规范版本,目前PDF的生成工具,除了官方的acrobat,其他生成的以1.4版本的居多。对于做PDF开发来说,一个最简单的原则就是生成PDF的时候尽量... 阅读全文
posted @ 2013-12-16 13:09 NLazyo 阅读(814) 评论(0) 推荐(0) 编辑
  2013年12月10日
摘要: 方法一、利用控件或窗体的Paint事件中的PainEventArgs在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用的Graphics)的一部分,在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。例如://窗体的Paint事件的响应方法复制代码 代码如下:private void form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics;}也可以直接重载控件或窗体的OnPaint方法,具体代码如下所示:复制代码 代码 阅读全文
posted @ 2013-12-10 15:43 NLazyo 阅读(870) 评论(0) 推荐(0) 编辑
  2013年11月25日
摘要: dbcc checkident('CDMS_DAHGZ',reseed,1) 阅读全文
posted @ 2013-11-25 11:03 NLazyo 阅读(341) 评论(0) 推荐(0) 编辑
  2013年11月23日
摘要: 从实习到现在,一直在做程序开发,工作了也有1年了吧,日子也就这么浑浑噩噩的过去了,想想将要毕业那会,原本有想考研的打算,最后还是出于各方面考虑不了了之,相比考研族提早步入了社会,既然路是自己选的,那必须得好好走下去,没得后悔。 工作到现在,一直兢兢业业勤勤恳恳,不管是技术还是经验,或多或少也略增加... 阅读全文
posted @ 2013-11-23 23:06 NLazyo 阅读(346) 评论(0) 推荐(0) 编辑
  2013年11月1日
摘要: [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); private void ExportToExcel(string fielName) { //实例化一个Excel.Application对象 Microsoft.Office.Interop.Excel.Application excel = n... 阅读全文
posted @ 2013-11-01 12:39 NLazyo 阅读(4477) 评论(0) 推荐(0) 编辑
  2013年10月31日
摘要: with as 是临时视图的语法:with qry_a as (select * from table_a )select * from qry_a ; 阅读全文
posted @ 2013-10-31 11:13 NLazyo 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 一、内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、、!。3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。二、外连接返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边 阅读全文
posted @ 2013-10-31 11:03 NLazyo 阅读(372) 评论(0) 推荐(0) 编辑
  2013年10月28日
摘要: dataGridView1.RowHeadersVisible = false;把整行选中那一列去掉。如果需要整行选中,新增一按钮列模拟实现。上源码:多维DataGridView有个简易的方法:1,继承DataGridView,添加表头信息类。 2,添加CellPainting,代码如下:privatevoidDataGridViewEx_CellPainting(objectsender,DataGridViewCellPaintingEventArgse){if(e.RowIndex==-1){//intw=dataGridView1.HorizontalScrollingOffset+d 阅读全文
posted @ 2013-10-28 13:12 NLazyo 阅读(8625) 评论(0) 推荐(0) 编辑
  2013年10月25日
摘要: union select 联合查询 ,即合并(取交集,结果中没有重复行)前后两个查询;前提是前后查询视图必须拥有相同数量的列,列也必需拥有相同的数据类型。union all select 则取的是两个查询的并集。 阅读全文
posted @ 2013-10-25 11:54 NLazyo 阅读(619) 评论(0) 推荐(0) 编辑
  2013年10月24日
摘要: 2005版本以上的sql server 查询中如果既包含聚合函数列(诸如sum ,count,avg,max等)又存在一般列的情况,则查询字符串结尾必须包含Group By [某一般列]. 其实微软这样设计是正确的,避免查询结果的无意义重复。 阅读全文
posted @ 2013-10-24 12:35 NLazyo 阅读(328) 评论(0) 推荐(0) 编辑
  2013年10月23日
摘要: http://www.cnblogs.com/rexsp/articles/10668.html 阅读全文
posted @ 2013-10-23 13:20 NLazyo 阅读(222) 评论(0) 推荐(0) 编辑
  2013年10月22日
摘要: 方法1:pictureBox1.Controls.Add(lable1);//或this.label1.Parent=pictureBox1; lable1.BackColor=Color.Transparent;方法2:lable1.BackColor=(label标签所在容器的背景色); 阅读全文
posted @ 2013-10-22 09:43 NLazyo 阅读(188) 评论(0) 推荐(0) 编辑
  2013年10月17日
摘要: rdlc 报表字符类数据分为文本数据和表数据,区别就在于文本数据只有一个,表数据可以有多行,然而有很多数据只需要一个传入就可以比如打印某个用户的基本信息,很多信息都是唯一的,如果此时报表传入的数据用可视化的dataset的话,有些浪费资源,在这里就可以先设置 报表属性的 ReportParameters,然后在对应的浏览报表的代码里面添加List list=new List(); foreach (DataColumn i in dataRow_val.Table.Columns) list.Add(new Microsoft.Reporting.WinForms.ReportPa... 阅读全文
posted @ 2013-10-17 11:53 NLazyo 阅读(938) 评论(0) 推荐(1) 编辑
  2013年10月15日
摘要: 设置 Form 的 KeyPreview=true 然后在Form 的案件事件里判断按钮类型进行分别调用就可以了 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (!ListViewModel) { if (e.Control) { switch (e.KeyCode) { case Keys.A: addTSB.PerformClick(); break; case Keys.S: saveTSB.PerformClick(); break; case Keys.D: delTSB.PerformClick(); 阅读全文
posted @ 2013-10-15 11:04 NLazyo 阅读(484) 评论(0) 推荐(0) 编辑
  2013年10月14日
摘要: 在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性。Anchor属性定义控件的定位点位置。当控件锚定到某个窗体时,如果该窗体的大小被调整,那么该控件维持它与定位点位置之间的距离不变。例如,如果“:Button”控件锚定到窗体的左、右和底边缘,那么当调整该窗体的大小时,Button控件水平调整大小,维持到该窗体左边和右边的距离不变,另外控件垂直定位其自身,以便其到窗体底边的距离始终不变,如果控件未锚定而窗体的大小被调整,则该控件相对于窗体边缘的位置将发生变化。下面介绍如何将控件锚定到窗体上。 首先... 阅读全文
posted @ 2013-10-14 11:36 NLazyo 阅读(1039) 评论(0) 推荐(0) 编辑
  2013年10月10日
摘要: 什么是Net互操作?.Net不能直接操作非托管代码,这时就需要互操作了。 c#中调用非托管c++函数,此函数又包含指向某个结构的指针,譬如指向c#中的byte数组。对于这样的参数,考虑到非托管变量不能直接在托管代码中使用,那么应该如何去处理呢?上例子: private string getSelText(int start,int Scount) { try { StringBuilder a = new StringBuilder(Scount); IntPtr pdf... 阅读全文
posted @ 2013-10-10 16:41 NLazyo 阅读(1256) 评论(0) 推荐(0) 编辑
摘要: 1.System.Drawing方面的类使用问题System.Drawing用到了很多系统的资源和非托管代码,所以使用的时候要特别小心,注意内存泄漏(Memory Leak)2.new byte[]问题处理流的时候常常会用到new一个大的byte数组。但在多用户情况下会消耗大量的内存。正确的做法应该是定义一个比较小的byte数组做为缓存,然后循环使用。如在我们的程序中,有些地方使用不当,当图片(或附件)过大或过多的时候, new byte[length]就有可能消耗过多的内存。3. 避免使用大对象数组或小对象大数组编程时同样要重视效率问题(包括内存占用问题)。4.Com接口调用是要注意释放对象 阅读全文
posted @ 2013-10-10 10:23 NLazyo 阅读(457) 评论(0) 推荐(0) 编辑
  2013年9月29日
摘要: p.CreateGraphics().FillRectangle( new SolidBrush(Color.FromArgb(125,Color.LightGreen)), iLeft, iTop, iRight - iLeft, iBottom - iTop);Color.FromArgb(125,Color.LightGreen);125即颜色的α(阿尔法)值,α越大颜色的透明度越小,α为零就是全透明的了,阿尔法最大值是255,表示不透明。 阅读全文
posted @ 2013-09-29 12:01 NLazyo 阅读(7651) 评论(0) 推荐(0) 编辑
  2013年9月28日
摘要: http://api.36wu.com/ 阅读全文
posted @ 2013-09-28 12:40 NLazyo 阅读(454) 评论(0) 推荐(1) 编辑
  2013年9月25日
摘要: 在写使用access数据库的c#程序过程中,遇到各种莫名奇妙的问题。例如使用"like"进行模糊查询,在access查询视图中要使用"*"做模糊匹配(sql中是"%"). 原以为在程序中的查询字符串也应该使用"*",事实上并非如此! 在access数据库中调试用"*",程序中要改过来用"%",否则是查询不到任何数据的,而且vs还不报任何错,调试都找不到原因。 try { _strSql=""; if (dataGridView1.Rows.Count &l 阅读全文
posted @ 2013-09-25 14:54 NLazyo 阅读(2800) 评论(2) 推荐(1) 编辑
  2013年9月22日
摘要: 单纯的this.Dispose();this.Close();有时候并不能释放出所用资源。因为Dispose()方法,虽然能释放当前窗体的资源,却不能强制结束循环, 要想强制突出当前程序要用:System.Environment.Exit(int exitcode)方法;该方法:终止当前进程并为基础操作系统提供指定的退出代码。private void form1_Closed(object sender, System.EventArgs e) { System.Environment.Exit(System.Environment.ExitCode)... 阅读全文
posted @ 2013-09-22 09:38 NLazyo 阅读(9411) 评论(0) 推荐(0) 编辑
  2013年9月18日
摘要: OleDbParameter olp; OleDbCommand cmd = new OleDbCommand("insertYjsData"); olp = new OleDbParameter("@unitengID", OleDbType.Integer); olp.Value = DBNull.Value; cmd.Parameters.Add(olp); ... 阅读全文
posted @ 2013-09-18 13:36 NLazyo 阅读(313) 评论(0) 推荐(0) 编辑
  2013年9月12日
摘要: SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。但是有个前提:必须是UPDATE、INSERT 和 DELETE 语句。而对于所有其他类型的语句,返回值则为 -1或0。如果发生回滚,返回值为 -1 阅读全文
posted @ 2013-09-12 17:21 NLazyo 阅读(2447) 评论(0) 推荐(0) 编辑
  2013年9月6日
摘要: 我们还要进行重新绘图,但要求速度很快,于是我们想到了使用 BitBlt函数。它可以支持图形块的复制,速度很快。我们可以先在内存中作图,然后用此函数将做好的图复制到前台,同时禁止背景刷新,这样就消除了闪 烁。以上也就是双缓冲绘图的基本的思路。 阅读全文
posted @ 2013-09-06 10:01 NLazyo 阅读(180) 评论(0) 推荐(0) 编辑
摘要: public Image GetThumb(int w,int h,Image source) { try { double zoom=1; if (source.Size.Height >= source.Size.Width) { if (source.Size.Height > 70) { zoom = s... 阅读全文
posted @ 2013-09-06 09:07 NLazyo 阅读(369) 评论(0) 推荐(0) 编辑
  2013年9月5日
摘要: //先计算系统dpi,以下是代码 public partial class Form1 : Form { int dpi_x; int dpi_y; public Form1() { InitializeComponent(); //SetProcessDPIAware(); //重要 IntPtr screenDC = GetDC(IntPtr.Zero); dpi_x = GetDeviceCaps(screenDC, /*DeviceCap.*/... 阅读全文
posted @ 2013-09-05 17:04 NLazyo 阅读(984) 评论(1) 推荐(0) 编辑
摘要: 分辨率都知道,越高越清晰。一、描述分辨率的单位有: dpi(点每英寸)、lpi(线每英寸)和ppi(像素每英寸)。但只有lpi是描述光学分辨率的尺度的。虽然dpi和ppi也属于分辨率范畴内的单位,但是他们的含义与lpi不同。而且lpi与dpi无法换算,只能凭经验估算。另外,ppi和dpi经常都会出现混用现象。但是他们所用的领域也存在区别。从技术角度说,“像素”只存在于电脑显示领域,而“点”只出现于打印或印刷领域。二、怎么知道一张图片的分辨率? 以JPEG为例,用16进制编辑器打开文件,文件头的信息通常为 FF D8 FF E0 XX XX 4A 46 49 46 00 XX XX (XX表示不 阅读全文
posted @ 2013-09-05 16:19 NLazyo 阅读(12858) 评论(0) 推荐(2) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;namespace DataInput{ using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; /// /// 图片处理类 /// 1、生成缩略图片或按照比例改变图片的大小和画质 /// 2、将生成的缩略图放到指定的目录下 /// public class Image... 阅读全文
posted @ 2013-09-05 11:16 NLazyo 阅读(658) 评论(0) 推荐(0) 编辑
  2013年8月16日
摘要: 介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认API在Windows编程中的重要性。大多数的编程语言都支持API编程,而.Net平台中的MFC(Microsoft Foundation Class Library)构架本身就封装了大部分的API。 做为程序员,我们需要了解API从字面上了解便是编程接口,因此,做为开发者,需要了解的只是API的使用方法。 API根据操作系统、处理器及功能性的不同而拥有很多不同的类型。 操作系统特用... 阅读全文
posted @ 2013-08-16 12:10 NLazyo 阅读(1382) 评论(0) 推荐(0) 编辑
  2013年8月1日
摘要: public delegate void delegateHandler(); public class Program { public int i=0; public delegateHandler myhandle; public int changeI { get{return i;} set{ i=value... 阅读全文
posted @ 2013-08-01 16:36 NLazyo 阅读(578) 评论(0) 推荐(0) 编辑
  2013年7月29日
摘要: public partial class Form1 : Form{ private delegate void FlushClient();//代理 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { FlushClient fc = new FlushClient(ThreadFunction); fc.BeginInvoke(null, null); } pri... 阅读全文
posted @ 2013-07-29 14:54 NLazyo 阅读(290) 评论(0) 推荐(0) 编辑
  2013年7月18日
摘要: 条件:一个panel,足以让panle产生滚动条的N多控件。动作:拖动滚动条。影响:呈现在当前panle视图中的控件的Location.Y或Top值>=0,隐藏在滚动条上方的控件的Location.Y或Top值会变为负值,视图最顶端以下的控件的Location.Y或Top值均>=0 阅读全文
posted @ 2013-07-18 16:17 NLazyo 阅读(182) 评论(0) 推荐(0) 编辑
  2013年7月5日
摘要: private Bitmap strToImage(string str) { Font f = new Font(new FontFamily("宋体"), 10, FontStyle.Regular); float fontSizeWidth = 96 / (72 / f.Size); // 字体实际像素宽度 float fontSizeHeight = 96 / (72 / f.Size); // 字体实际像素高度 //创建此大小的图片 ... 阅读全文
posted @ 2013-07-05 10:00 NLazyo 阅读(323) 评论(0) 推荐(0) 编辑
  2013年7月4日
摘要: public enum StringAlignment { Near = 0, 指定文本靠近布局对齐。在左到右布局中,近端位置是左。在右到左布局中,近端位置是右。 Center = 1,//指定文本在布局矩形中居中对齐。 指定文本远离布局矩形的原点位置对齐。在左到右布局中,远端位置是右。在右到左布局中,远端位置是左。 Far = 2, }StringFormatFlags由StringFormat类使用。指定文本字符串的显示和布局信息。public enumStringFormatFlags {在矩形内设置格式时,禁用文本换行功能。当传递的是点而不是矩形时,或者指定的矩形行长... 阅读全文
posted @ 2013-07-04 16:06 NLazyo 阅读(403) 评论(0) 推荐(0) 编辑
  2013年7月3日
摘要: publicstaticvoidGenThumbnail(Image imageFrom,stringpathImageTo,intwidth,intheight){if(imageFrom==null){return;}// 源图宽度及高度 intimageFromWidth=imageFrom.Width;intimageFromHeight=imageFrom.Height;// 生成的缩略图实际宽度及高度 intbitmapWidth=width;intbitmapHeight=height;// 生成的缩略图在上述"画布"上的位置 intX=0;intY=0;// 阅读全文
posted @ 2013-07-03 09:20 NLazyo 阅读(304) 评论(0) 推荐(0) 编辑
  2013年6月28日
摘要: 一个不错的UI多线程操作类http://www.cnblogs.com/net66/archive/2005/08/03/206132.html 阅读全文
posted @ 2013-06-28 10:10 NLazyo 阅读(239) 评论(0) 推荐(0) 编辑
  2013年6月10日
摘要: Asprise-OCR的使用。Asprise-OCR下载地址:http://asprise.com/product/ocr/download.php?lang=csharp 其中需要使用的3个dll是AspriseOCR.dll、DevIL.dll、ILU.dll。需要注意的是这几个.dll是vc写的引用要在程序中用DllImport引用,关键代码:[DllImport("AspriseOCR.dll", EntryPoint = "OCR", CallingConvention = CallingConvention.Cdecl)]public sta 阅读全文
posted @ 2013-06-10 21:19 NLazyo 阅读(10360) 评论(4) 推荐(1) 编辑
  2013年6月4日
摘要: public static void AddTxtDocument(string path, IndexWriter writer) { try { Document doc = new Document(); string StrContent; if (Path.GetExtension(path).ToLower() == ".pdf") { ... 阅读全文
posted @ 2013-06-04 15:26 NLazyo 阅读(1519) 评论(0) 推荐(0) 编辑