我正在开发一个 MS word 模板生成器,它的工作原理是这样的:
用户打开网页填写一些文本框,标记一些复选框,然后单击按钮,打开word文档(我之前定义的模板以及所需的所有书签),使用他在网页中输入的内容,全部在文档中并且字段和复选框标记为他标记的,他只需要打印文档。它在我的电脑上完美运行
但是当我在服务器上测试时,出现了错误:
我的代码:我已包含参考 ( using Word = Microsoft.Office.Interop.Word;
)
private void CreateWordDocument(int DepositNo)
{
Random RandomClass = new Random();
int randomInt = RandomClass.Next();
string templateName = "Form15Template.docx";
string docFileName = "Form15_" + DepositNo.ToString() + "_" + randomInt.ToString() + ".docx";
string destenation = "D:\\_Documents\\Form15\\";
File.Copy(Server.MapPath(@"_Documents/" + templateName), destenation + docFileName, true); //
String POBox = "9769";
String City = "الرياض";
String PostalCode = "11423";
String Address = "ص.ب " + POBox + " " + City + " " + PostalCode;
// Modify Checkboxes variables in Doc to true if they have been checked
if (RadioButtonListResult.SelectedValue.Equals("اجتاز"))
A = true;
if (RadioButtonListResult.SelectedValue.Equals("تعديل") || RadioButtonListResult.SelectedValue.Equals("لم يجتز"))
B = true;
if (CheckBoxAllElements.Checked)
AllElements = true;
if (CheckBoxElements.Checked)
Elements = true;
if (CheckBoxEdit.Checked)
Edit = true;
if (CheckBoxBoxPage.Checked)
BoxPage = true;
if (CheckBoxRequestArabic.Checked)
RequestArabic = true;
if (CheckBoxMultiInvention.Checked)
MultiInvention = true;
if (CheckBoxRecency.Checked)
Recency = true;
if (CheckBoxInventiveStep.Checked)
InventiveStep = true;
if (CheckBoxImplemented.Checked)
Implemented = true;
if (CheckBoxC.Checked)
C = true;
if (CheckBoxD.Checked)
D = true;
object bA = "A", bB = "B", bC = "C", bD = "D", bAllElements = "AllElements", bElements = "Elements",
bRecency = "Recency", bInventiveStep = "InventiveStep", bImplemented = "Implemented",
bApprove = "Approve", bEdit = "Edit", bBoxPage = "BoxPage", bRequestArabic = "RequestArabic",
bMultiInvention = "MultiInvention", bObjection = "Objection", bMark = "Mark",
bRejection = "Rejection";
//Start Word and open template.
Word._Application oWord;
Word._Document oDoc;
oWord = new Word.Application();
oWord.Visible = true;
object FileName = @"C:\Users\aalhammad\Documents\Visual Studio 2010\Projects\FormEditing\FormEditing\_Documents\Form15Template.docx";
object oMissing = System.Reflection.Missing.Value;
oDoc = oWord.Documents.Open(ref FileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
// ============================================== CheckBoxes ====================================================
// Modifying CheckBoxes in Document
oDoc.FormFields.get_Item(ref bA).CheckBox.Value = A;
oDoc.FormFields.get_Item(ref bB).CheckBox.Value = B;
oDoc.FormFields.get_Item(ref bC).CheckBox.Value = C;
oDoc.FormFields.get_Item(ref bD).CheckBox.Value = D;
oDoc.FormFields.get_Item(ref bAllElements).CheckBox.Value = AllElements;
oDoc.FormFields.get_Item(ref bElements).CheckBox.Value = Elements;
oDoc.FormFields.get_Item(ref bRecency).CheckBox.Value = Recency;
oDoc.FormFields.get_Item(ref bInventiveStep).CheckBox.Value = InventiveStep;
oDoc.FormFields.get_Item(ref bImplemented).CheckBox.Value = Implemented;
oDoc.FormFields.get_Item(ref bApprove).CheckBox.Value = Approve;
oDoc.FormFields.get_Item(ref bEdit).CheckBox.Value = Edit;
oDoc.FormFields.get_Item(ref bBoxPage).CheckBox.Value = BoxPage;
oDoc.FormFields.get_Item(ref bRequestArabic).CheckBox.Value = RequestArabic;
oDoc.FormFields.get_Item(ref bMultiInvention).CheckBox.Value = MultiInvention;
oDoc.FormFields.get_Item(ref bObjection).CheckBox.Value = Objection;
oDoc.FormFields.get_Item(ref bMark).CheckBox.Value = Mark;
oDoc.FormFields.get_Item(ref bRejection).CheckBox.Value = Rejection;
// ============================================== BookMarks =====================================================
String ApplicantName = "شركة الزيت العربية السعودية",
AgentName = "مكتب سليمان العمار للمحاماة والاستشارات القانونية",
AppDate = "13/01/2013",
Title = "حماية خط تدفق رأس بئر ونظام اختبار باستخدام وحدة تحكم في سرعة مضخة كهربائية مغمورة وصمام فاصل يستخدم عند الطوارئ";
// find bookmark
object oBookmark = "DepositNO"; // name of bookmark in doc
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = GetDepositNO(DepositNo);
oBookmark = "AppDate";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = AppDate;
oBookmark = "Title";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = Title;
oBookmark = "ApplicantName";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ApplicantName;
oBookmark = "AgentName";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = AgentName;
oBookmark = "Address";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = Address;
oBookmark = "AgentName01";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = AgentName;
oBookmark = "Times";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = Times;
oBookmark = "NumOfElements";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = NumOfElements;
oBookmark = "txtElements";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = txtElements;
oBookmark = "txtRecency";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = txtRecency;
oBookmark = "txtInventiveStep";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = txtInventiveStep;
oBookmark = "txtImplemented";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = txtImplemented;
oBookmark = "ElementsC";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ElementsC;
oBookmark = "ElementsD1";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ElementsD1;
oBookmark = "ElementsD2";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ElementsD2;
oBookmark = "txtBoxPage";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = txtBoxPage;
oBookmark = "Fees";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = Fees;
oBookmark = "DepositNO01";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = GetDepositNO01(DepositNo);
oBookmark = "ExamTime";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ExamTime;
oBookmark = "ExamTime01";
oDoc.Bookmarks.get_Item(ref oBookmark).Range.Text = ExamTime;
object saveFileName = "D:\\_Documents\\Form15\\" + "Form15 " + DepositNo.ToString() + "_" + randomInt.ToString() + ".docx";
oDoc.SaveAs(ref saveFileName, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
知道我正在研究:Visual Studios C# 2010 和 Microsoft .NET Framework 4.0 在服务器上是:Visual Studio C# 2005,MS Framework 2.0
知道可能是什么问题吗?