精华内容
下载资源
问答
  • 很奇怪不知为什么Outlook2007设计的时候,竟然没有可以选择打印第几页的功能,有时用户只要打印一页,或者其中某页的内容时,只能用copy的方式将其复制到word上面再打印,这的确很不方便。 公司后来自己写了个Add-...
    很奇怪不知为什么Outlook2007设计的时候,竟然没有可以选择打印第几页的功能,有时用户只要打印第一页,或者其中某页的内容时,只能用copy的方式将其复制到word上面再打印,这的确很不方便。 公司后来自己写了个Add-in用于实现这一功能。而现在outlook2007 SP2带了这个功能,安装了SP2后,打印时就会多出如图所示选项:
     
     
     
    这是在 Outlook2003的情况
     
     
     
    我这个Outlook是在装office 2003时选上一起装的,而不是独立的outlook2003客户端。





















    本文转simmy51CTO博客,原文链接:http://blog.51cto.com/helpdesk/215007,如需转载请自行联系原作者
    展开全文
  • PDF转WORD为什么这么难

    万次阅读 2017-08-01 11:12:18
    pdf转word是一个非常普遍的需求,而你会发现好用、转换质量好的工具还真是不多,尤其百度搜索前面的推广结果,更是差到不行,免费版只能一页,要想转更多,需要付费,而付过费后会发现转化效果非常差,找商家投诉...

    pdf转word是一个非常普遍的需求,而你会发现好用、转换质量好的工具还真是不多,尤其百度搜索前面的推广结果,更是差到不行,免费版只能转一页,要想转更多,需要付费,而付过费后会发现转化效果非常差,找商家投诉,没有结果,便会像百度搜索结果第一条1900多条评价,全在骂的结果。

    今天来分析一下为什么pdf转word那么难。

    1. PDF格式特殊

    PDF是adobe公司出品方便打印的文档,Portable Document Format的简称,意为“便携式文档格式”,是由Adobe Systems用于与应用程序操作系统硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。对于电脑上的文件来说,根本上都是以二进制的方式存储到存储设备上,因此我既然可以存为pdf文件,肯定需要知道其规范,这就是pdf文档的格式规范(可以去adobe官网搜),字体、图像等等都需要有描述,这样我才能显示。

    因此理论上熟读pdf格式规范,就能正确的读取pdf文件。实际编码中还有一些别人写好的类库可以调用,因此读取pdf要简单一些。

    2. 放到word不容易

    再来说转成word这件事,这件事其实来说也是可以实现的,因为我知道pdf的格式,也知道word的格式,我读出了这里需要有文字、那里需要有图片,按照word的格式放进去就可以了。但是.但是.但是.实际做的时候有很多坑。

    举几个例子,比如表格问题:

    这是一份pdf里面的部分内容,通过程序可以读出来在(x,y)位置有“食物”两个字,在某位置有“合并后的单元格”7个字,其他位置的字和数字,pdf给出的信息是屏幕上的位置有什么字,比如(10,100)位置为食物,(200,10)位置水……为什么会是这样的信息,因此pdf是用来打印的,他会告诉打印机什么位置有什么内容,他只能这么给。而对于这些信息怎么往word里面放?你会说,我这是个表格,按表格放,问题是程序怎么知道,这就需要一些人工智能或者经验的算法,把这样的位置分析出来是表格。表格难度升级版,哪些是合并的单元格,就这个问题没有几家产品能判断出来是合并后的单元格。

    背景图像问题:

    这个文档其实蓝色矩形是背景,而小人是图片,可以区分开吗?用简单的pdf解析lib已经很有难度,(pdf解析lib后面再说),如果区分出来了,word里面背景图片怎么操作,表格的浮动怎么处理?头都大了。

    因此要转好word是件很难处理的事。

    3. 再说说pdf解析lib

    pdf解析的lib,开源免费项目最经典的是PDFBox,Apache旗下,他可以做的事是:

    提取文字,拆分合并,表单文字提取或者填充,验证,打印,存图片,创建pdf,签名。可以看到这个强大的库可以提取出文字和对应位置,然后你在写到word。表格怎么办?不好处理,需要自己根据字的位置、逻辑算。

    专门处理表格的库:Tabula,收费版pdfTables,问题又来了,这些库只能处理其中表格,其他内容处理不好,tabula甚至需要先给出表格区域是什么,然后再提取内容。

    总之一句话,提前内容简单,转到word格式难。

    4. 最好的PDF转word是谁

    做了许多的调研和验证,最好的转换工具是谁呢?


    调研的时候发现百度文库是最牛B的,正确率100%,一丝不差,看源码发现他是显示到网页上,他的实现方法是把文字及位置提取出来,然后用css绝对定位到当前位置,背景、表格等都是一张图片直接铺在后面,这样就不需要知道谁是表格,谁是合并单元格了,完全按打印的方式来实现,不得不说这个方法非常聪明。百度技术确实牛,不过在这里转成word的话同样需要后续的研究。技术不能适用到转word项目中。

    第二好的我想必定adobe自家产品acrobat了,可以读、写pdf的官方工具,下载免费试用版本,确实是效果非常非常好的,只在一些非常复杂的表格情况下有失真,达不到100%的还原效果,但是已经是最好的了。

    百度搜索出来的好多pdf工具试用了一遍,尤其前面的推广结果,大多是用开源项目搞的产品,简单文字的可以,遇到表格,合并单元格,基本都处理不好了。

    另一个比较好的是smallpdf,用的是国外Solid Documents提供的技术,文字、表格都不错,合并单元格就不行了,认不出来,或者对不齐。

    Acrobat是最好用的转word工具,悲剧的是需要12.99刀一个月。还是有点小贵,如果偶尔转个word的话,12.99就更不划算了。

    理想的方案呢??理想的方案呢??理想的方案呢??

    刺猬PDF,官方网站http://www.ciweipdf.com,实现方案是这样的,用acrobat的技术做转化,因此效果是最好的,你可以理解为共享收费版acrobat。因此理想的pdf转word产品是免费的在线版本——刺猬PDF!

    展开全文
  • 而且有的时候打印多页文档,却只能打出来第一页,其他也再多选上也不打印。把这台惠普打印机连接到其他电脑上,都可以正常打印为什么会发生这样的状况。这可能是电脑设置出现问题了,下面深度技术小编以深度win7...

    有一位深度官网的用户新购买的惠普打印机后安装好打印机后,尝试打印文件却打印不出来,没有任何响应的问题。而且有的时候打印多页文档,却只能打出来第一页,其他也再多选上也不打印。把这台惠普打印机连接到其他电脑上,都可以正常打印,为什么会发生这样的状况。这可能是电脑设置出现问题了,下面深度技术小编以深度win7旗舰版为例,给大家分享具体的解决方法。

    解决方法一:

    1、打开控制面板-打印机界面;

    436737040ce2ab9ff619e28ca8ff673b.png
    be143509f47fd4c5463e406f3d024b47.png

    2、右击打印机将其删除;

    cf567956d946ee6fee3dfc04e2f1cfbb.png
    bfd63be0eef99968a372ed3bda42877a.png

    3、如果没选中当前的任何一个打印机,菜单是这样的;

    511422abd665de5d82dd7dcec57b3320.png

    4、选中任何一个打印机,选中“打印服务器属性”;

    93f37d15e1ba413854eb83491fe3e1af.png

    5、打印服务器属性,切换到驱动程序界面;

    01a7cf2ed16ecb9b18ea51afa7fef799.png

    6、选中刚删掉的打印机的驱动,并点击删除按钮;

    11cfc87e5316fd0af8c1f97e5de83eec.png

    7、删除 驱动程序 和 驱动程序包;

    bc5e5b26ccdd5a4471b6b310d05e4ae3.png
    c22f7d95ea1389704a559bd5b42a5647.png

    8、驱动正常删除,如果显示删除失败,可以重启电脑,将驱动再删除一次;

    a4b2c00aad23a92b371a193a06969267.png
    047efc5e595a6e68421f04b1e1ca8fa9.png

    解决方法二:

    1、打印机是惠普M1005MFP,打开惠普官网,切换到驱动下载;

    1cd0559a28bf2af4acb6f585f41cfa18.png

    2、按照型号查找打印机;

    9deb88ead0b899c8db495eab5d8c7ac6.png

    3、根据电脑系统版本下载合适的驱动;

    ea8aaeee2241d8d9dc735e2b82927fed.png

    4、查看电脑系统版本方法:右击计算机属性,或者按下快捷键(WIN+PAUSE);

    1648fd63a18c36d5a54f3c31f2c06ab5.png

    5、下载驱动。

    f7c0ae0a56afd964c154f3fb9173ba93.png

    解决方法三:

    1、安装刚下载的驱动。不同品牌的打印机安装方法可能有点不同;

    8f442ebf6901f7d95224e4ccc9036ff2.png

    2、添加完以后,共享打印机;

    3a932261cfc3e0aac74dfff87e466d8e.png
    16602c41be51e443bcf06dcf1390da02.png

    3、访问网络打印机,并添加共享的打印机;

    f5c45945b875a07cf5e99d9002d3b6b4.png

    4、添加打印机,并设置默认打印机。

    dc8bf476cc05d50f418fab9e31e5c282.png

    关于win7纯净版电脑连接惠普打印机后文件打印不出来的解决方法,希望可以帮助到大家。

    展开全文
  • 网上找的源码,用VC实现文件的打印,但是有点bug,添加了... bug: 测试了下,如果网页有脚本错误或被浏览器拦截了插件,则打印出来的内容可能空,不知道有什么好的解决办法吗? 另外,对于网页上的页面无效果...

    网上找的源码,用VC实现文件的打印,但是有点bug,添加了注释,如果有人能解决这几个bug,请告诉我一声。代码如下:

    /*
    	功能:打印任何浏览器能打开的本地文件,并实现打印功能
    	@sURL: 要打印的文件路径(只能打开本地文件)
    	bug: 测试了下,如果网页有脚本错误或被浏览器拦截了插件,则打印出来的内容可能为空,不知道有什么好的解决办法吗?
    		 另外,对于网页上的页面无效果(不会打印出文件来)
    */
    BOOL Print_html(const char *sURL)
    {
    	HRESULT hr;
    	CLSID clsid;  
    	IUnknown     *pUnknown = NULL;  
    	IWebBrowser2 *pWebBrowser2 = NULL;  
    	IOleCommandTarget* pCommandTarget = NULL;  
    	IDispatch *pDispatch = NULL;
    	VARIANT va;  
    	OLECHAR sOleChar[MAX_PATH];  
    	CoInitialize(NULL);  
    	CLSIDFromProgID(L"InternetExplorer.Application", &clsid);  
    	hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, (void  **)&pUnknown);
    	if (SUCCEEDED(hr))  
    	{
    		hr = pUnknown->QueryInterface(IID_IWebBrowser2, (void **)&pWebBrowser2);
    		if (SUCCEEDED(hr))
    		{  
    			VariantInit(&va);  
    			va.vt = VT_I4;  
    			va.lVal = 0;  
    			MultiByteToWideChar(CP_ACP, 0, sURL, -1, sOleChar, sizeof sOleChar);  
    			BSTR bstrURL = SysAllocString(sOleChar);  
    			hr = pWebBrowser2->Navigate(bstrURL, &va, &va, &va, &va);
    			SysFreeString (bstrURL);
    			hr = pWebBrowser2->get_Document(&pDispatch);
    			if (SUCCEEDED(hr))  
    			{  
    				hr =  pDispatch->QueryInterface(IID_IOleCommandTarget,(void**)&pCommandTarget);  
    				if (SUCCEEDED(hr))  
    				{  
    					hr = pCommandTarget->Exec(NULL, OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
    					Sleep(2000);
    					pCommandTarget->Release();
    				}  
    				else  
    				{  
    					pDispatch->Release();
    					pWebBrowser2->Release();
    					pUnknown->Release();  
    					CoUninitialize();  
    					return FALSE;
    				}  
    				pDispatch->Release();  
    			}  
    			else
    			{  
    				pWebBrowser2->Release();  
    				pUnknown->Release();  
    				CoUninitialize();  
    				return FALSE;
    			}  
    			pWebBrowser2->Release();  
    		}
    		else
    		{
    			pUnknown->Release();  
    			CoUninitialize();  
    			return FALSE;
    		}  
    		pUnknown->Release();  
    	}  
    	else
    	{
    		CoUninitialize();  
    		return FALSE;
    	}
    	CoUninitialize();  
    	return TRUE;
    }
    
    //是否打印页眉、页脚
    //i_sign: 0-打印
    //    1-不打印
    BOOL Print_header_footer(int i_sign)
    {
    	const int KEY_LEN = 100;
    	char lp_header[KEY_LEN];
    	char lp_footer[KEY_LEN];
    	char *str_keyname = "Software\\Microsoft\\Internet Explorer\\PageSetup\\";
    	HKEY hKey;
    	int err;
    	if(RegOpenKeyEx(HKEY_CURRENT_USER,str_keyname,0,KEY_WRITE,&hKey) != ERROR_SUCCESS)
    	{
    		err = GetLastError();
    		return FALSE;
    	}
    	if(i_sign == 0)
    	{
    		memset(lp_header,0,sizeof(lp_header));
    		memset(lp_footer,0,sizeof(lp_footer));
    		strcpy(lp_header,"&w&b页码,&p/&P"); //"&w&b页码,&p/&P";
    		strcpy(lp_footer,"&u&b&d");    //"&u&b&d";
    		
    		if(RegSetValueEx(hKey, "header", 0, REG_SZ, (const unsigned char *)lp_header, strlen(lp_header))!=ERROR_SUCCESS)
    		{
    			RegCloseKey(hKey);
    			return FALSE;
    		}
    		if(RegSetValueEx(hKey, "footer", 0, REG_SZ, (const unsigned char *)lp_footer, strlen(lp_footer))!=ERROR_SUCCESS)
    		{
    			RegCloseKey(hKey);
    			return FALSE;
    		}
    		RegCloseKey(hKey);
    		return TRUE;
    	}
    	if(i_sign == 1)
    	{
    		memset(lp_header,0,sizeof(lp_header));
    		memset(lp_footer,0,sizeof(lp_footer));
    		
    		if(RegSetValueEx(hKey, "header", 0, REG_SZ, (const unsigned char *)lp_header, strlen(lp_header))!=ERROR_SUCCESS)
    		{
    			RegCloseKey(hKey);
    			return FALSE;
    		}
    		if(RegSetValueEx(hKey, "footer", 0, REG_SZ, (const unsigned char *)lp_footer, strlen(lp_footer))!=ERROR_SUCCESS)
    		{
    			RegCloseKey(hKey);
    			return FALSE;
    		}
    		RegCloseKey(hKey);
    		return TRUE;
    	}
    	
    	return TRUE;
    }
    

     

    经测试,Print_Html只对本地文件有效,对于输入的网址,不会产生任何打印文件。而且本地的文件不能有脚本错误,要不然,有可能打印出来的文件内容为空。

    这个代码的原理是利用流利器打开一个文件,再利用浏览器菜单中的打印功能来实现文件打印的。所以如果你不是用微软默认的Internet Explorer.exe的话,可能无法实现文件打印,因此必须将IE浏览器设置为默认的浏览器才可以噢!

    展开全文
  • 因为我的封面和正文使用的是不同的节(页码需求,这样封面就没有页码了),所以如果打开了奇偶页不同的选项,封面的一页会补充至两页,我想,这样是为了在打印的时候保持奇偶页的顺序,所以即合理。 关掉该选项后...
  • 因为之前有个类似的功能页面内容基本完全一样,参数也都正常传递过去了没跳这样的500,为什么这里过不去了呢? 为了验证,还在后台代码里加入了打印输出:比如这样的 看到参数传到后台正常,证明不是传数据到...
  • 采用第二种写法,直接不声明pageCount,后续的pageCount全部使用this.pageCount,就可以得到想要的结果数据,但是我并没有赋初始值,可是初始值哪里会打印一个1是什么鬼。而且为什么这样就能打印出来,因为是隐式的...
  • 概率论与数理统计---分布函数

    千次阅读 2017-07-15 17:57:09
    之前学线性代数的时候写的笔记都在纸质的笔记本上,在纸质上面想查询比较麻烦,只能一页一页翻。现在想记在电脑上,后续如果想看纸质的还可以打印出来,所以后来在word上记过一段时间,word里的数学公式编辑器虽然...
  • 方法三(defalt):comments:一是第二步中设置EPS的输出时,只能打印出第一页,如果有多张图的话,就只好分开打或者改其它的输出选项了(如Optimized for speed); 二是第三步其实也可以不用做,一般也没什么问题。...
  • 为什么存储过程要比单纯的SQL语句执行起来要快? 我的答案: 存储过程算是种优化查询需要比单存SQL语句执行的要快 19、两张关联表,删除主表中已经在副表中没有的信息 我的答案 delete from fubiao a ...
  • 1、个公众号被平台托管了(例如小猪、微擎等),我如果从托管服务器上用相同的授权域名可不...2、微擎的帮助文档说在site.php中$__W['fans'] 获取用户信息,但是我用微信访问该页面,打印出来arry为空,这是为什么
  • 作用域:变量的可访问范围 函数作用域:function 函数名(){ }大括号的范围就是 这个函数的作用域 全局作用域:整个页面 ...所以,肯定会有人问,为什么第32行的打印会报错? 这里有句话可以解答,而且非常适合新...
  • Unipdg阅读器ornViewer是个针对扫描版电子文档的浏览器,具有下列功能: ...不过有个限制:ZIP文件中只能个文件夹下有PDG,不能在多个文件夹下有PDG。通常大家都是本书个ZIP,所以这不会有什么问题。
  • Scala中文教程 + 中文参考手册

    千次下载 热门讨论 2011-07-03 22:38:14
    介绍 本书是一份Scala编程语言的教程。写给那些直接参与Scala开发的人群。我们的目标是通过阅读此书,你能够学会一切所需,成为多产的Scala程序员。...所以,电子书的每一页的页码都和你在PDF阅读器中看到的页码一样。
  • javascript入门笔记

    2018-05-15 15:01:07
    特点 :将 a 和 b 转换 二进制,按位比较,对应位置的数字,至少有1的话,那么该的整体结果就1,否则 0 ex : 5 | 3 101 011 ======== 111 结果 :7 适用场合:任何小数与0 做 按位或的操作...
  • o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? o 3.12 如何确定域在结构中的字节偏移? o 3.13 怎样在运行时用名字访问结构中的域? o 3.14 程序运行正确, 但退出时却 ``core dump''了,...
  • 不过有个限制:ZIP文件中只能个文件夹下有PDG,不能在多个文件夹下有PDG。通常大家都是本书个ZIP,所以这不会有什么问题。 4、现场保存/恢复功能,也就是说如果看书时中途退出,下次启动后将自动恢复退出...
  • 《豆瓣资源下载大师》是款好用的搜索聚合工具,让用户以作品的豆瓣评论详情页入口,直达各种资源网站的作品下载,极大减轻了找资源的工作量! 086《CSDN开发助手》CSDN官方合法免广告工具,内含大量实用开发...
  • 自定义区域一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置有“凸出”的效果或“凹进去”的...
  • flash shiti

    2014-03-14 10:32:41
    如果X为一字符串,则函数将X解释为一个指数形式的十进制数; D. 如果X未定义,则返回0。 41.按钮的属性有那些? A. 按钮的属性有UP; B. 按钮的属性有UP和OVER; C. 按钮的属性有DOWN; D. 按钮的属性有HIT. ...
  • 在对话框中为什么不响应按下向下箭头键(VK_DOWN)和向右箭头键(VK_RIGHT)的消息 Visualc C++ 6.0可以编写哪几种dll Visualc C++ 6.0如何编写Non-MFC Dlls Visualc C++ 6.0如何编写Regular Dlls Visualc C++ 6.0...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    自定义区域一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置有“凸出”的效果或“凹进去”的...
  • Report machine 2.4

    2006-03-16 00:00:00
    - 下版本将增加个组件TFormReport,直接打印Form,类似于Screen Report. v1.0 Preview 2. - Fixed old bugs, added new;; - 一些性能改善; - 对备注内容处理更完善;; - Added mouse wheel support ...
  • 为什么用OAuth2.0受权? 通过OAuth2.0受权的网页将会获取到打开者的微信信息,甚至包括微信昵称、头像等有用的数据,开发者们可以凭此设计出更多更丰富的页面应用,比如最近一直很火爆的红包类活动。除此之外还有个...
  • ④给多个铜公命名:“起始的铜公名称”个铜公的名称,名称的最后个字符必须是数字,下个的铜公名称在此基础上加1(递增)。“铜公命名时跳过空层”是指在“从层”到“到层”之间有的层中没有铜公(实体),...
  • Linux从入门到精通

    2010-04-25 19:58:09
    E.9.4 为什么Linux只能看到我的内存的部分? E.9.5 我的奔腾或更高档的机器有超过64M的内存, 但是它似乎很迟钝. 如果我用mem=64M让Linux只用64M内存, 速度似乎加快了. 这是怎么回事? 我该做什么? E.9.6 我有Red ...
  • 《Linux从入门到精通》

    热门讨论 2008-09-04 17:05:49
    E.9.4 为什么Linux只能看到我的内存的部分? E.9.5 我的奔腾或更高档的机器有超过64M的内存, 但是它似乎很迟钝. 如果我用mem=64M让Linux只用64M内存, 速度似乎加快了. 这是怎么回事? 我该做什么? E.9.6 我有Red ...
  • 为什么? 9 8、用最有效率的方法算出2乘以8等於几? 9 9、请设计百亿的计算器 9 10、使用final关键字修饰个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、...
  • 400个DreamWeaver插件

    2013-03-28 15:30:13
    mxp/在Dreamweaver中快速的插入个Fireworks做好的图片,不过好象只能做空白图 :( mxp/这个插件用来代替Dreamweaver File菜单下的New Form Template命令。作用是可以侦测出站点内的模板,这样就直接打开了,而不...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

为什么只能打印一页