繁体   English   中英

ColdFusion的XML支持和Word文档

[英]ColdFusion's XML Support & Word Documents

使用ColdFusion的新XML函数...是否可以在Word文档(docx)中查找/替换文本? 由于docx文档可能将一段文本(要搜索的占位符)散布在多个w:r(游程)上,这可能很难搜索和替换,因此我想尽全力做到这一点。

可能吗? 是。

但是,MS使用的XML模式非常冗长。 我知道这是多余的,但是XML非常复杂。

使用.NET操纵文档并通过.NET集成从CF内进行调用可能是一个更好的主意。 我相信也有Java库,但是我不确定它们的易用性或运行情况。

我要做的是将单词文档替换为单词,然后使用7zip的CLI提取.docx文件,因为它只是一个存档,请替换单词并重新存档。 已经证明这是非常有效的,并且完全不会与XML混淆。

这是来自应用程序的一些示例代码,该示例代码替换了单词'%SENTDATE%'。 并非所有变量都在这里,但这足以让您入门。

<cfset EditFile = Output & "word\document.xml" />

<!--- Extract the New Document --->
<cfexecute name="7za.exe" arguments='x -y "#StartingFile#" -o"#Output#"' outputfile="#Dir#log_Extract.txt" />

<!--- Read in the file --->
<cfset WordDoc = FileRead( EditFile ) />

<!--- Replace Values --->
<cfset WordDoc = Replace( WordDoc, "%SENTDATE%", DateFormat( Now(), "MMMM DD, YYYY" ), "ALL" ) />

<!--- Save File --->
<cfset FileWrite( EditFile, WordDoc ) />

<!--- Delete Archive if it exists --->
<cfif FileExists( NewFile )>
    <cfset FileDelete( NewFile ) />
</cfif>

<!--- Repack Archive --->
<cfexecute name="7za.exe" arguments='a "#NewFile#" "#Output#*"' outputfile="#Dir#log_Archive.txt" />

<!--- Rename Archive --->
<cffile action="rename" source="#NewFile#" destination="#ListFirst( NewFile, "." )#.docx" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM