实现Notes File-Export功能,已提供基本解决方案,望大家讨论!

问题描述

在IBMLotusNotes可使用File-Export导出NotesDocument为msrtf,如下图:我尝试使用LotusC++api实现这一功能,部分代码如下:try{session.Init();session.GetDatabase("RTFCon.nsf",&db,"mycom");if(!db.IsOpen()){db.Open();//Openthedatabase}db.GetDocuments(&docArr);count=docArr.GetCount();for(index=0;index<count;index++){curDoc=docArr[index];curDoc.Open();if(curDoc.HasItem("$Body")){curDoc.GetItem("$Body",&rt);}rt.GetCursor(&startCursor);rt.GetEndCursor(&endCursor);rt.Export("c:\test.rtf",startCursor,endCursor,"RTF");}db.Close();//}catch(LNSTATUSerror){charerrorBuf[LNERROR_MESSAGE_LENGTH];LNGetErrorMessage(error,errorBuf);cout<<"Error:"<<errorBuf<<endl;}打开test.rtf如图:对比发现了少了MainTopic以及下面附件图标等信息,在我的代码中我只获取body的richtext进行export导致部分数据丢失,但是同时又无法以NotesDocument为对象获取richtext进而进行export。网上找到该代码类似于我所实现的功能,代码如下:OptionPublicOptionExplicitConstAPIModule="NNOTES"DeclareFunctionMailGetMessageBodyCompositeLibAPIModuleAlias"MailGetMessageBodyComposite"(ByvalhNTAsLong,ByvalNAsString,ByvalDAsString,nDAsLong)AsIntegerDeclareFunctionExportRTFLib"nxrtf"Alias"ExportRTF"(ByvalsTempFileAsString,ByvalflagsAsLong,hmodAsLong,ByvalaltlibraryAsString,ByvalsRTFFileAsString)AsIntegerSubInitializeConstworkdir="c:temp"ConstOutputName=workdir&"Message_Body.rtf"ConsttempRTF=workdir&"rtf.cd"ConsttempFONTS=workdir&"fonts.cd"ConsttempBODY=workdir&"body.fcd"DimsessionAsNewnotessessionDimdbAsnotesdatabaseDimdcAsnotesdocumentcollectionDimdocAsnotesdocumentDimrtBodyAsnotesrichtextitemDimfileSizeAsLongDimdocnumAsIntegerDimprocessAsIntegerSetdb=session.CurrentdatabaseSetdc=db.Unprocesseddocuments'WritetheBodyfieldouttoafileinCDformatCallMailGetMessageBodyComposite(Doc.handle,"Body",tempRTF,fileSize)'Writethe$fontsfieldouttoafileinCDformatCallMailGetMessageBodyComposite(Doc.handle,"$Fonts",tempFONTS,fileSize)'JointhetwointooneCDfile,strippingoffcontrolwordfromsecondfile.Callconcatenate(tempRTF,tempFONTS,tempBODY)'TakeCDfileandcallDLLusedbyclientFile|ExporttocreateRTFfileCallExportRTF(tempBODY,0,0,"",OutputName)KilltempRTFKilltempFONTSKilltempBODYSetrtBody=doc.getfirstitem("Body")Callrtbody.AddNewLine(1)CallrtBody.EmbedObject(EMBED_ATTACHMENT,"",OutputName,"")KillOutputNameCalldoc.Save(False,False)NextEndSubSubconcatenate(fileIn1AsString,fileIn2AsString,fileOut1AsString)'TakestwoCDrecordformatfilesandaddsthemintoonefileusingbinaryfileaccess'Firsttwobytes(oneword)offileiscontrolcharactersothisisstrippedfromsecondfile'thereisalwaysevennumberofbytesinCD-recordssowecanuseIntegersotransferthedataDimtwobytesAsIntegerDimfileinAsIntegerDimfileoutAsIntegerfileout=FreefileOpenfileOut1ForBinaryAs#fileoutfilein=FreefileOpenfileIn1ForBinaryAs#fileinDoUntilEof(filein)Get#filein,,twobytesPut#fileout,,twobytesLoopClose#fileinOpenfileIn2ForBinaryAs#fileinSeek#filein,3DoUntilEof(filein)Get#filein,,twobytesPut#fileout,,twobytesLoopCloseEndSub大概可见是采用分别导出Body,$Font为cd文件进而合并为一个文件,然后采用api进行convert,我并未尝试该代码是否可用以及导出结果是否等同于File-Export。

解决方案

解决方案二:
[img=http://picasaweb.google.com/workWang/Else/photo#5236100415186189074][/img]图片太小,补发[img=http://picasaweb.google.com/workWang/Else/photo#5236100411362709202][/img]
解决方案三:

解决方案四:

解决方案五:
为什么我用这个方法(第一种),无法将引入的gif图片导出来,bmp的图片到出来后也变成了黑白色?
解决方案六:
你的notes版本是6.5以上的吧?引用4楼zhaoyifang的回复:

为什么我用这个方法(第一种),无法将引入的gif图片导出来,bmp的图片到出来后也变成了黑白色?

解决方案七:
是的
解决方案八:
对于高版本的lotus存在这个问题,目前我还没有解决办法。引用6楼zhaoyifang的回复:

是的

解决方案九:
如果是多个tif图片用第一种方法能导出来吗

时间: 2024-10-18 15:09:21

实现Notes File-Export功能,已提供基本解决方案,望大家讨论!的相关文章

file-java如何获得File(文件内容已知)对象

问题描述 java如何获得File(文件内容已知)对象 已知一个String fileContent = "12345678"; 获得一个File对象,该File对象的文件内容就是fileContent fileContent是一个参数, 不要:手动创建文件写内容,然后用FileInputString 读 也不要:先用FileOutputString创建一个文件,然后用FileInputString 读 不要对数据持久化 解决方案 楼主想要一个不存在本地磁盘中的File对象吗?是的话,

谷歌阅读器的用户界面和功能已进行了重大改版

据国外媒体报道,谷歌软件工程师艾伦·格林(Alan Green)今天表示,谷歌阅读器(Google Reader)的用户界面和功能已进行了重大改版,其中最为重要的改进是整合了谷歌Google+社交网络服务功能. 格林称,通过新增加的"+1"按钮,用户可直接将在谷歌阅读器中看到的新闻分享给其他Google+好友."+1"按钮取代了谷歌阅读器中此前已具有的"共享"及"带备注的共享"等按钮. 谷歌推出Google+服务后,陆续在该公

微信称可拍12种证件照片引质疑,该功能已暂停使用

近日,腾讯推出微信证照拍摄功能,声称可以"让大家把证照拍到满意为止",甚至称已进入多地"城市服务"入口.此消息在朋友圈中被广泛转发,有人拍手叫好,也有人提出质疑.手机微信拍的证件照真能被公安部门认可吗?记者昨日联系微信相关人士,却未得到明确答复.而且,昨晚6时起,该功能已无法使用,页面显示"升级后台系统",腾讯公司未予明确解释. 微信称可拍12种证件照片 昨天,记者从腾讯微信的公众号中看到,新增的"幸福证照"有详细的功能介绍.

PHP判断file框是否已选择文件

  单个表单时  代码如下   <form action="?" method="post" enctype='multipart/form-data'> 文件上传:<input type="file" name="file" id="file" /> <input type="submit" id="send" value="

servlet file 如何获取网络其他file server 的文件提供下载

问题描述 需要从fileserver读取文件提供下载,访问fileserver\\cnbdc01\it\tomliang\email\a.zip在开发环境下是可以访问到的,不部署到web服务上当部署到web上的时候,就提示fileisnotexists!Filef=newFile("\\cnbdc01\it\tomliang\email\a.zip");if(f.exists()){System.out.println("done");}else{System.ou

Snapchat推出Our Story功能,提供公共活动的图片

摘要: Facebook今天正式发布了类Snapchat产品Slingshot,而Snapchat也没有停止脚步,在阅后即焚领域的领域不断深入发展. 新版Snapchat中增加了Our Story功能,提供基于公共活动的图片和视频共享服务 Facebook今天正式发布了类Snapchat产品Slingshot,而Snapchat也没有停止脚步,在阅后即焚领域的领域不断深入发展. 新版Snapchat中增加了Our Story功能,提供基于公共活动的图片和视频共享服务,用户可以上传自己在现场的实时

Discuz!提供六种解决方案 改善论坛“弱密码”现象

中介交易 SEO诊断 淘宝客 云主机 技术大厅 5月30日消息,Discuz! 在其官网发布了<关于近期用户密码.邮箱被盗修改事件解决方案>的置顶帖,针对部分网站的"弱密码"现象提供了六种解决方案,以提高论坛的安全性. Discuz! 官方置顶帖称,部分网站的会员密码邮箱被恶意修改,经排查后发现主要原因是论坛存在"弱密码"现象.Discuz! 提供六种解决方案来改善此问题,主要包括网站更新到Discuz! 最新版本"Discuz! X2.5 R

Struts 2 数据校验功能及校验问题的解决方案_java

通过继承ActionSupport类来完成Action开发,ActionSupport类不仅对Action接口进行简单实现, 同时增加了验证.本地化等支持 .真实开发中自定义Action都需要继承该类.对用户登录添加表单验证功能 ActionSupport类的作用: struts2不要求我们自己设计的action类继承任何的struts基类或struts接口,但是我们为了方便实现我们自己的action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport

为4500万中国企业提供视频会议解决方案 专访罗技视频协作总经理Scott Wharton

中国现在越来越多的公司采用分散式办公模式,很多企业(特别是中小企业)的员工开始选择在家中.网吧.或是餐厅内办公,用视频会议来做沟通的需求就变得越来越大,而真正应用了视频会议系统的公司中,又经常听到应用效果与预期有差距的抱怨,我们不禁要问,是什么阻碍了视频会议的发展呢?有调查显示,清晰度.时延.带宽.稳定性.高居不下的价格以及运营商的推广模式等都是阻碍视频会议行业发展的重要因素. 现在全球97%的会议室里还安装着传统的投影,加上一部电话,就成为了他们远程会议的主要工具.针对这97%尚未安装便捷并方