마지막으로 알아 냈습니다. 이것은 모든 텍스트를 추출하기 위해 만든 메서드입니다. .odt 파일을 구성하는 모든 부분을 모르기 때문에 아마 완전하지 않을 수 있습니다. 이 메서드는 머리글과 바닥 글, 텍스트 상자 및 단락을 가져 와서 반환 캐리지 분리 기호와 연결합니다. 패키지 관리자 콘솔 (PM> Install-Package AODL
)을 통해 설치할 수있는 AODL 패키지가 필요합니다. 그리고 프로그램 상단에
using AODL.Document.TextDocuments;
using AODL.Document.Content;
을 추가하십시오.
/// <summary>
/// Gets all plain text from an .odt file
/// </summary>
/// <param name="path">
/// the physical path of the file
/// </param>
/// <returns>a string with all text content</returns>
public String GetTextFromOdt(String path)
{
var sb = new StringBuilder();
using (var doc = new TextDocument())
{
doc.Load(path);
//The header and footer are in the DocumentStyles part. Grab the XML of this part
XElement stylesPart = XElement.Parse(doc.DocumentStyles.Styles.OuterXml);
//Take all headers and footers text, concatenated with return carriage
string stylesText = string.Join("\r\n", stylesPart.Descendants().Where(x => x.Name.LocalName == "header" || x.Name.LocalName == "footer").Select(y => y.Value));
//Main content
var mainPart = doc.Content.Cast<IContent>();
var mainText = String.Join("\r\n", mainPart.Select(x => x.Node.InnerText));
//Append both text variables
sb.Append(stylesText + "\r\n");
sb.Append(mainText);
}
return sb.ToString();
}
Novacode DocX 라이브러리를 사용해 보셨습니까? 나는 워드 문서를 만들거나 조작하기 위해 이것을 과거에 사용 해왔다. 여기에 코드 플렉스에 대한 링크입니다 : https://docx.codeplex.com/ –
내가 파일을 ODF (오픈 오피스)를 읽을 필요는, 그리고 당신이 점점 어려움을 겪고있는 경우 DOCX 그냥 파일을 – Porkopek
을 .DOCX 읽고 생각 .odt 파일에 액세스하려면 .docx로 파일을 저장 한 다음 Word lib를 사용하여 읽을 수 있습니다. – ManoDestra