Word.Application objApp=new Word.ApplicationClass();
object confirmConversion = false;
object link = false;
object attachment = false;
object objMissing = Missing.Value;
object isVisible = true;
object objFalse = false;
try
{
Word.Document objDoc = null;
objDoc = objApp.Documents.Open(
ref objOrgDoc, //FileName
ref objMissing, //ConfirmVersions
ref objMissing, //ReadOnly
ref objMissing, //AddToRecentFiles
ref objMissing, //PasswordDocument
ref objMissing, //PasswordTemplate
ref objMissing, //Revert
ref objMissing, //WritePasswordDocument
ref objMissing, //WritePasswordTemplate
ref objMissing, //Format
ref objMissing, //Enconding
ref objMissing, //Visible
ref objMissing, //OpenAndRepair
ref objMissing, //DocumentDirection
ref objMissing, //NoEncodingDialog
ref objMissing //XMLTransform
);
if (objDoc.Bookmarks.Exists((string)bm_ReceiveOrderNo))
ReplaceBookMark(objDoc, bm_ReceiveOrderNo, receiveOrderNo, 32);
if (objDoc.Bookmarks.Exists((string)bm_CertNo))
ReplaceBookMark(objDoc, bm_CertNo, certNo, 32);
if (objDoc.Bookmarks.Exists((string)bm_VerifiedUnit))
ReplaceBookMark(objDoc, bm_VerifiedUnit, verifiedUnit, 55);
if (objDoc.Bookmarks.Exists((string)bm_Name))
ReplaceBookMark(objDoc, bm_Name, name, 55);
if (objDoc.Bookmarks.Exists((string)bm_Specification))
ReplaceBookMark(objDoc, bm_Specification, specification, 55);
if (objDoc.Bookmarks.Exists((string)bm_Rank))
ReplaceBookMark(objDoc, bm_Rank, rank, 55);
if (objDoc.Bookmarks.Exists((string)bm_ProductionCode))
ReplaceBookMark(objDoc, bm_ProductionCode, productionCode, 55);
if (objDoc.Bookmarks.Exists((string)bm_ProductionUnit))
ReplaceBookMark(objDoc, bm_ProductionUnit, producteUnit, 55);
if (objDoc.Bookmarks.Exists((string)bm_ReasonBase))
ReplaceBookMark(objDoc, bm_ReasonBase, reasonBase, 55);
if (objDoc.Bookmarks.Exists((string)bm_Conclusion))
ReplaceBookMark(objDoc, bm_Conclusion, conclusion, 55);
if (objDoc.Bookmarks.Exists((string)bm_VerifyDate))
objDoc.Bookmarks.get_Item(ref bm_VerifyDate).Range.Text = verifyDate;
if (objDoc.Bookmarks.Exists((string)bm_ExpireDate))
objDoc.Bookmarks.get_Item(ref bm_ExpireDate).Range.Text = expireDate;
Range r = objDoc.Range(ref objMissing,ref objMissing);
object direction = Word.WdCollapseDirection.wdCollapseEnd;
r.Collapse(ref direction);
object objBreak = WdBreakType.wdSectionBreakNextPage;
r.InsertBreak(ref objBreak);
r.InsertFile(this.txtFilePath.Text, ref objMissing, ref confirmConversion, ref link, ref attachment);
object objOutDoc = path;
objDoc.SaveAs(ref objOutDoc,
ref objMissing, //FileFormat
ref objMissing, //LockComments
ref objMissing, //PassWord
ref objMissing, //AddToRecentFiles
ref objMissing, //WritePassword
ref objMissing, //ReadOnlyRecommended
ref objMissing, //EmbedTrueTypeFonts
ref objMissing, //SaveNativePictureFormat
ref objMissing, //SaveFormsData
ref objMissing, //SaveAsAOCELetter,
ref objMissing, //Encoding
ref objMissing, //InsertLineBreaks
ref objMissing, //AllowSubstitutions
ref objMissing, //LineEnding
ref objMissing //AddBiDiMarks
);
return path;
}
finally
{
objApp.Quit(ref objFalse,
ref objMissing,
ref objMissing
);
objApp = null;
}
object confirmConversion = false;
object link = false;
object attachment = false;
object objMissing = Missing.Value;
object isVisible = true;
object objFalse = false;
try
{
Word.Document objDoc = null;
objDoc = objApp.Documents.Open(
ref objOrgDoc, //FileName
ref objMissing, //ConfirmVersions
ref objMissing, //ReadOnly
ref objMissing, //AddToRecentFiles
ref objMissing, //PasswordDocument
ref objMissing, //PasswordTemplate
ref objMissing, //Revert
ref objMissing, //WritePasswordDocument
ref objMissing, //WritePasswordTemplate
ref objMissing, //Format
ref objMissing, //Enconding
ref objMissing, //Visible
ref objMissing, //OpenAndRepair
ref objMissing, //DocumentDirection
ref objMissing, //NoEncodingDialog
ref objMissing //XMLTransform
);
if (objDoc.Bookmarks.Exists((string)bm_ReceiveOrderNo))
ReplaceBookMark(objDoc, bm_ReceiveOrderNo, receiveOrderNo, 32);
if (objDoc.Bookmarks.Exists((string)bm_CertNo))
ReplaceBookMark(objDoc, bm_CertNo, certNo, 32);
if (objDoc.Bookmarks.Exists((string)bm_VerifiedUnit))
ReplaceBookMark(objDoc, bm_VerifiedUnit, verifiedUnit, 55);
if (objDoc.Bookmarks.Exists((string)bm_Name))
ReplaceBookMark(objDoc, bm_Name, name, 55);
if (objDoc.Bookmarks.Exists((string)bm_Specification))
ReplaceBookMark(objDoc, bm_Specification, specification, 55);
if (objDoc.Bookmarks.Exists((string)bm_Rank))
ReplaceBookMark(objDoc, bm_Rank, rank, 55);
if (objDoc.Bookmarks.Exists((string)bm_ProductionCode))
ReplaceBookMark(objDoc, bm_ProductionCode, productionCode, 55);
if (objDoc.Bookmarks.Exists((string)bm_ProductionUnit))
ReplaceBookMark(objDoc, bm_ProductionUnit, producteUnit, 55);
if (objDoc.Bookmarks.Exists((string)bm_ReasonBase))
ReplaceBookMark(objDoc, bm_ReasonBase, reasonBase, 55);
if (objDoc.Bookmarks.Exists((string)bm_Conclusion))
ReplaceBookMark(objDoc, bm_Conclusion, conclusion, 55);
if (objDoc.Bookmarks.Exists((string)bm_VerifyDate))
objDoc.Bookmarks.get_Item(ref bm_VerifyDate).Range.Text = verifyDate;
if (objDoc.Bookmarks.Exists((string)bm_ExpireDate))
objDoc.Bookmarks.get_Item(ref bm_ExpireDate).Range.Text = expireDate;
Range r = objDoc.Range(ref objMissing,ref objMissing);
object direction = Word.WdCollapseDirection.wdCollapseEnd;
r.Collapse(ref direction);
object objBreak = WdBreakType.wdSectionBreakNextPage;
r.InsertBreak(ref objBreak);
r.InsertFile(this.txtFilePath.Text, ref objMissing, ref confirmConversion, ref link, ref attachment);
object objOutDoc = path;
objDoc.SaveAs(ref objOutDoc,
ref objMissing, //FileFormat
ref objMissing, //LockComments
ref objMissing, //PassWord
ref objMissing, //AddToRecentFiles
ref objMissing, //WritePassword
ref objMissing, //ReadOnlyRecommended
ref objMissing, //EmbedTrueTypeFonts
ref objMissing, //SaveNativePictureFormat
ref objMissing, //SaveFormsData
ref objMissing, //SaveAsAOCELetter,
ref objMissing, //Encoding
ref objMissing, //InsertLineBreaks
ref objMissing, //AllowSubstitutions
ref objMissing, //LineEnding
ref objMissing //AddBiDiMarks
);
return path;
}
finally
{
objApp.Quit(ref objFalse,
ref objMissing,
ref objMissing
);
objApp = null;
}
private void ReplaceBookMark(Document doc, object bookmarkName, string text, int CharLength)
{
Range rng = doc.Bookmarks.get_Item(ref bookmarkName).Range;
rng.Text = text;
int count = System.Text.Encoding.GetEncoding("gb2312").GetBytes(text).Length;
if (CharLength > count)
{
int startAddedSpaceCount = (CharLength - count) / 2;
int endAddedSpaceCount = (CharLength - count) / 2 + (CharLength - count) % 2;
rng.InsertBefore(GetSpaceString(startAddedSpaceCount));
rng.InsertAfter(GetSpaceString(endAddedSpaceCount));
rng.Font.Underline = WdUnderline.wdUnderlineSingle;
}
}
private string GetSpaceString(int StringLength)
{
StringBuilder sb = new StringBuilder();
for(int i=0;i<StringLength;i++)
{
sb.Append(" ");
}
return sb.ToString();
}
{
Range rng = doc.Bookmarks.get_Item(ref bookmarkName).Range;
rng.Text = text;
int count = System.Text.Encoding.GetEncoding("gb2312").GetBytes(text).Length;
if (CharLength > count)
{
int startAddedSpaceCount = (CharLength - count) / 2;
int endAddedSpaceCount = (CharLength - count) / 2 + (CharLength - count) % 2;
rng.InsertBefore(GetSpaceString(startAddedSpaceCount));
rng.InsertAfter(GetSpaceString(endAddedSpaceCount));
rng.Font.Underline = WdUnderline.wdUnderlineSingle;
}
}
private string GetSpaceString(int StringLength)
{
StringBuilder sb = new StringBuilder();
for(int i=0;i<StringLength;i++)
{
sb.Append(" ");
}
return sb.ToString();
}