0
我正在將數據從一個文檔管理系統傳輸到另一個系統。以編程方式編輯RTF以與寫字板兼容
在舊系統中,他們有用於插入替換字段的書籤按鈕。我需要替換替換字段的語法,以便他們將與新系統一起工作(不是我遇到的問題)。
老RTF
{\rtf1\ansi\deflang1033\ftnbj\uc1\deff1
{\fonttbl{\f0 \froman \fcharset0 Times New Roman;}{\f1 \fswiss Arial;}}
{\colortbl ;\red255\green255\blue255 ;\red0\green0\blue0 ;}
{\stylesheet{\f1\fs20\cf2\cb1\ulc2 Normal;}{\cs1\cf2\cb1\ulc2 Default Paragraph Font;}}
{\*\revtbl{Unknown;}}
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\headery720\footery0\deftab720\formshade\aendnotes\aftnnrlc\pgbrdrhead\pgbrdrfoot
\sectd\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery720\footery0\sbkpage\pgncont\pgndec
\plain\plain\f1\fs20\ql\plain\f1\fs20 TEST\lang1033\f1 {\field\fldlock{\*\fldinst MERGEFIELD ID}{\fldrslt}} TEST\plain\f1\fs20\par}
在舊系統中打印:
TEST {ID} TEST
而且{ID}
要使用正確的身份證號碼打印時進行更換。
然而這裏是我的問題如果我只是在寫字板中打開RTF它看起來像
測試測試
後保存的RTF看起來像
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss Arial;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\f0\fs20 TEST TEST\par
}
我真的不關心大多數其他元數據,但我不明白爲什麼它剝離出{ID}
。從我所知道的looking on MSDN中可以看出\field\fldlock{\*\fldinst MERGEFIELD ID}{\fldrslt}
的格式不正確。
我應該只寫一個正則表達式來匹配字段標籤,並將它們去掉或者是否有更好的解決方案?
編輯
,如果我在Word中打開了RTF也會發生這種情況,但它使一個文件too long to post here。