2012-06-28 5 views
0

나는 파워 포인트를 XML로 재창조하는 중이다. 필요한 파일을 모두 추가했지만 파워 포인트에서 문서를 열면 내용에 문제가 있다고합니다. 어디에서이 등의 작업에 대한 예를 볼 수 있습니까?파워 포인트 문서 만들기

private static void SlideMaster1Xml() 
    { 
     FileStream slideMaster1stream = new FileStream(slideMaster1FilePath, FileMode.Create, FileAccess.Write); 
     XmlWriter slideMaster1Writer = null; 

     try 
     { 
      XmlWriterSettings contentTypesSettings = new XmlWriterSettings(); 
      contentTypesSettings.Indent = true; 
      slideMaster1Writer = XmlWriter.Create(slideMaster1stream, contentTypesSettings); 

      slideMaster1Writer.WriteStartDocument(true); 
      slideMaster1Writer.WriteStartElement("p", "sldMaster", "http://schemas.openxmlformats.org/presentationml/2006/main"); 
      slideMaster1Writer.WriteAttributeString("xmlns","r",null ,"http://schemas.openxmlformats.org/officeDocument/2006/relationships"); 
      slideMaster1Writer.WriteAttributeString("xmlns", "a",null, "http://schemas.openxmlformats.org/drawingml/2006/main"); 

      slideMaster1Writer.WriteStartElement("p", "cSld", null); 
      slideMaster1Writer.WriteStartElement("p", "bg", null); 
      slideMaster1Writer.WriteStartElement("p", "bgRef", null); 
      slideMaster1Writer.WriteAttributeString("Idx", "1001"); 

      slideMaster1Writer.WriteStartElement("a", "schemeClr", null); 
      slideMaster1Writer.WriteAttributeString("val", "bg1"); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "spTree", null); 
      slideMaster1Writer.WriteStartElement("p", "nvGrpSpPr", null); 
      slideMaster1Writer.WriteStartElement("p", "cnvPr", null); 
      slideMaster1Writer.WriteAttributeString("name", ""); 
      slideMaster1Writer.WriteAttributeString("Id", "1"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "cNvGrpSpPr", null); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "nvPr", null); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "grpSpPr", null); 
      slideMaster1Writer.WriteStartElement("a", "xfrm", null); 
      slideMaster1Writer.WriteStartElement("a", "off", null); 
      slideMaster1Writer.WriteAttributeString("y", "0"); 
      slideMaster1Writer.WriteAttributeString("x", "0"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("a", "ext", null); 
      slideMaster1Writer.WriteAttributeString("cy", "0"); 
      slideMaster1Writer.WriteAttributeString("cx", "0"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("a", "chOff",null); 
      slideMaster1Writer.WriteAttributeString("y", "0"); 
      slideMaster1Writer.WriteAttributeString("x", "0"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("a", "chExt",null); 
      slideMaster1Writer.WriteAttributeString("cy", "0"); 
      slideMaster1Writer.WriteAttributeString("cx", "0"); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "sp",null); 
      slideMaster1Writer.WriteStartElement("p", "nvSpPr",null); 
      slideMaster1Writer.WriteStartElement("p", "cNvPr",null); 
      slideMaster1Writer.WriteAttributeString("name", "Title Placeholder 1"); 
      slideMaster1Writer.WriteAttributeString("id", "2"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "cNvSpPr",null); 
      slideMaster1Writer.WriteStartElement("a", "spLocks",null); 
      slideMaster1Writer.WriteAttributeString("noGrp", "1"); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "nvPr",null); 
      slideMaster1Writer.WriteStartElement("p", "ph",null); 
      slideMaster1Writer.WriteAttributeString("type", "title"); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "spPr",null); 
      slideMaster1Writer.WriteStartElement("a", "xfrm",null); 
      slideMaster1Writer.WriteStartElement("a", "off",null); 
      slideMaster1Writer.WriteAttributeString("y", "274638"); 
      slideMaster1Writer.WriteAttributeString("x", "457200"); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("a", "ext",null); 
      slideMaster1Writer.WriteAttributeString("cy", "1143000"); 
      slideMaster1Writer.WriteAttributeString("cx", "8229600"); 
      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("a", "prstGeom",null); 
      slideMaster1Writer.WriteAttributeString("prst", "rect"); 

      slideMaster1Writer.WriteStartElement("a", "avLst",null); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteEndElement(); 
      slideMaster1Writer.WriteEndElement(); 

      slideMaster1Writer.WriteStartElement("p", "txBody",null); 
      slideMaster1Writer.WriteStartElement("a", "bodypr",null); 
      slideMaster1Writer.WriteAttributeString("anchor", "ctr"); 
      slideMaster1Writer.WriteAttributeString("rtlCol", "0"); 
      slideMaster1Writer.WriteAttributeString("bIns", "45720"); 
      slideMaster1Writer.WriteAttributeString("rIns", "91440"); 
      slideMaster1Writer.WriteAttributeString("tIns", "45720"); 
      slideMaster1Writer.WriteAttributeString("lIns", "91440"); 
      slideMaster1Writer.WriteAttributeString("vert", "horz"); 

나는 모든 코드를 통해 100 번이나했지만 무엇이 잘못되었는지를 볼 수 없습니다 : 여기에 내가 함께 일하고 방법의 샘플입니다. 어떤 도움을 주시면 감사하겠습니다.

+1

정말 간단한 예제 -ptx를 시도 했습니까? Microsoft에서 제공하는 [무료 전자 책] (http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2007/08/13/1970.aspx)에서 시도해 볼 수도 있습니다. – basti

답변

3

OOXML 생성 문제를 해결하는 데 유용한 도구는 Open XML SDK과 함께 제공되는 Open XML SDK 2.0 생산성 도구입니다. 생성 된 XML의 유효성을 검증하고 잘못된 것을 표시합니다. 2007 및 2010 형식 모두에서 작동합니다.

+0

나는 물을 수 있습니까? 당신은 C#에서 이렇게 생성 된 파워 포인트 문서를 본 적이 있습니까? 나는 더 많은 이해를 할 수 있도록 더 많은 예를보고 싶다. 덕분에 –

+0

@ Artic-M00n 수동으로 XML을 만드는 것은 매우 지루하고 오류가 발생하기 쉽습니다. 템플릿으로 작업하는 것이 훨씬 쉽습니다. 자세한 내용은 [Eric White의 블로그] (http://ericwhite.com/blog/pptx-generation-expanded/)를 참조하십시오. –

관련 문제