1
안녕하세요 템플릿의 텍스트를 수학 방정식으로 바꿔야합니다. 나는 단락이나 그의 부분을 바꾸어서 이것을하고 싶다. OpenXML을 사용하여이 작업을 수행하려고합니다. 처음부터 내 프로그램은 템플릿을 열고 새로운 단어 문서로 복사 한 다음 모든 단락의 특정 단어를 찾을 때마다 단락을 새로운 단락으로 바꿀 것입니다. 프로그램을 컴파일하고 작업을 끝내지 만 오류가 나타나기 때문에 새 문서를 열려고하면 열 수 없습니다. 콘텐츠에 문제가 있습니다.OpenXML을 사용하는 MS Word의 텍스트를 수식으로 바꾸십시오.
공공 무효 CreateXmlDocument() {
var wzor = File.ReadAllText(@"E:\ExampleXML.xml");
using (var template = File.Open(@"E:\ExampleDOCX.docx", FileMode.Open, FileAccess.Read))
{
using (MemoryStream stream = new MemoryStream())
{
template.CopyTo(stream);
using (WordprocessingDocument WordTemplate = WordprocessingDocument.Open(stream, true))
{
MainDocumentPart mainDocumentPart = WordTemplate.MainDocumentPart;
foreach (var paragraph in mainDocumentPart.Document.Descendants<Paragraph>().ToList())
{
var parent = paragraph.Parent;
var paragraph_xml = (paragraph.OuterXml);
bool containsParam = false;
if (paragraph.InnerText.Contains("test"))
{
var tekst_replace = paragraph_xml;
paragraph_xml = paragraph_xml.Replace(tekst_replace, wzor);
containsParam = true;
}
if (containsParam)
{
parent.InsertBefore(new Paragraph(paragraph_xml), paragraph);
paragraph.Remove();
}
}
mainDocumentPart.Document.Save();
stream.Seek(0, SeekOrigin.Begin);
}
using (var fileStream = File.Create(@"E:\po.docx"))
{
stream.CopyTo(fileStream);
}
}
}
}
은 무엇인가 :
<?xml verios="1.0"?>
<w:p w:rsidRPr="00A750D6" w:rsidR="00212F73" w:rsidP="005437B7" w:rsidRDefault="0027760B" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<m:oMathPara xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
<m:oMath>
<m:r>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
</w:rPr>
<m:t>a=</m:t>
</m:r>
<m:f>
<m:fPr>
<m:ctrlPr>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
<w:i />
</w:rPr>
</m:ctrlPr>
</m:fPr>
<m:num>
<m:r>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
</w:rPr>
<m:t>c</m:t>
</m:r>
</m:num>
<m:den>
<m:r>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
</w:rPr>
<m:t>b</m:t>
</m:r>
</m:den>
</m:f>
<m:r>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
</w:rPr>
<m:t>*</m:t>
</m:r>
<m:rad>
<m:radPr>
<m:degHide m:val="1" />
<m:ctrlPr>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
<w:i />
</w:rPr>
</m:ctrlPr>
</m:radPr>
<m:deg />
<m:e>
<m:r>
<w:rPr>
<w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
</w:rPr>
<m:t>a</m:t>
</m:r>
</m:e>
</m:rad>
</m:oMath>
</m:oMathPara>
<w:bookmarkStart w:name="_GoBack" w:id="0" />
<w:bookmarkEnd w:id="0" /></w:p>
이 내 코드입니다 : 파일 ExampleXML.xml에서
내가 대체 원하는 XML을 잘못된? 또는 어떻게 텍스트를 방정식으로 바꿀 수 있습니까? 도움 주셔서 감사합니다. 당신의 조각에서