0
DOCX 파일의 텍스트와 이미지를 텍스트 파일로 추출해야합니다 (이미지를 그래픽 파일로 저장하십시오). 아래의 코드를 사용하여 이미지를 가져 와서 텍스트 파일 안에 참조로 저장할 수 있습니까?DocumentFormat.OpenXml.Paragraph를 사용하여 .DOCX에서 이미지를 추출하는 방법?
내가 사용하는 경우 :
List<ImagePart> imgPart = wordProcessingDoc.MainDocumentPart.ImageParts.ToList();
내가 모든 이미지를 얻을 수 있지만 때로는 하나 개의 이미지가 여러 곳에서 사용된다. 목록에서 특정 이미지를 가져 오기위한 참조를 찾을 수 없습니다. 여기 은 샘플 코드 (Extract table from DOCX)에서 가져온 것입니다 :이 게시물에 대한 답을 찾을
public static string ReadAllTextFromDocx(FileInfo fileInfo)
{
StringBuilder stringBuilder;
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(fileInfo.FullName, false))
{
NameTable nameTable = new NameTable();
XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(nameTable);
xmlNamespaceManager.AddNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
string wordprocessingDocumentText;
using (StreamReader streamReader = new StreamReader(wordprocessingDocument.MainDocumentPart.GetStream()))
{
wordprocessingDocumentText = streamReader.ReadToEnd();
}
stringBuilder = new StringBuilder(wordprocessingDocumentText.Length);
XmlDocument xmlDocument = new XmlDocument(nameTable);
xmlDocument.LoadXml(wordprocessingDocumentText);
XmlNodeList paragraphNodes = xmlDocument.SelectNodes("//w:p", xmlNamespaceManager);
foreach (XmlNode paragraphNode in paragraphNodes)
{
XmlNodeList textNodes = paragraphNode.SelectNodes(".//w:t | .//w:tab | .//w:br | .//w:drawing", xmlNamespaceManager);
foreach (XmlNode textNode in textNodes)
{
switch (textNode.Name)
{
case "w:t":
stringBuilder.Append(textNode.InnerText);
break;
case "w:tab":
stringBuilder.Append("\t");
break;
case "w:br":
stringBuilder.Append("\v");
break;
case "w:drawing":
stringBuilder.Append("----------------IMAGE HERE-------------");
break;
}
}
stringBuilder.Append(Environment.NewLine);
}
}
return stringBuilder.ToString();
}