>Java >java지도 시간 >jtd 형식 파일 변환 분석

jtd 형식 파일 변환 분석

巴扎黑
巴扎黑원래의
2017-06-26 09:58:244257검색

연말부터 바쁘게 지내던 프로젝트에서 제가 주로 담당하는 모듈이 파일 파싱 부분이었는데, 하다보니 온갖 실수와 고민이 드디어 생겼네요. 이제 프로젝트의 모든 파일을 정리했습니다. 향후 참조를 위해 분석 요약을 작성하겠습니다. 이 프로젝트에서 파싱된 주요 문서에는 eml의 Office 파일, pdf, csv, rtf, txt, jtd가 포함됩니다. , msg 및 pst 형식은 물론 rar 및 zip 아카이브도 있습니다. 압축을 풀면 실제로 mlf 형식의 파일이 있습니다. 그러나 제가 조사하고 회사 상사의 연구 결과 당분간 어려움을 극복할 수 없습니다. 그래서 당분간은 이 형식의 파일들만 포기하고 다른 분석은 다 하게 됐습니다. 티카.

오늘은 먼저 이 jtd 파일의 분석을 살펴보겠습니다. 일부 사람들은 이 jtd 파일이 무엇인지 먼저 설명하겠습니다.

jtd格式文件是由日本的文字处理软件一太郎生成的文件格式

jtd 형식 파일이 우리라는 단어라는 것을 알 수 있습니다. 일반적으로 사용하지 않는 한 편집하고 열려면 Ichitaro 소프트웨어를 사용해야 합니다. 이 Ichitaro 소프트웨어가 어떻게 생겼는지 보여 드리겠습니다.

jtd 형식 파일 변환 분석

이 요구 사항을 처음 봤을 때 매우 당황스러웠습니다. 이거 일본 소프트웨어인데 정보를 확인해봐도 이해가 안가네요 아 바이두랑 스택오버플로우에서 검색해도 안나오네요 읽어주시고 이해해주시는 회사장님 덕분에.. 일본어, 사장님이 일본 웹사이트에서 해결책을 찾았습니다. 웹사이트 주소는 http://d.hatena.ne.jp/satorufujimori/20070227/1172549793

 해결책은 vbs 스크립트를 사용하여 jtd 형식 파일을 변환하는 것입니다. txt 파일을 만든 다음 해당 txt를 구문 분석하여 콘텐츠를 얻습니다. 웹사이트의 스크립트는 다음과 같습니다.

//taro2txt.vbs
Set taro = CreateObject("JXW.Application")
taro.Visible = True
taro.Documents.Open "c:\taro\a.jtd"
taro.ActiveDocument.SaveAs "c:\out\a.txt", "", "", "", 10, "ShiftJIS" //※1
taro.Quit

모두 10에 주의하세요. 10은 jtd 형식 파일을 txt 형식 파일로 변환한다는 의미입니다. jtd 형식의 파일을 다른 형식으로 변환하려면 10을 다른 식별자로 바꿔야 하는데, 더 당황스러운 점은 어떤 숫자가 어떤 문서를 나타내는지 설명하는 특정 문서를 찾지 못했다는 것입니다. 그런 다음 0부터 100까지 시도했습니다. , 그리고 지저분한 형식이 많이 나왔습니다. 유일하게 유용한 것은 jtd 형식 파일을 txt 형식 파일로 변환할 수 있는 10개뿐입니다. 그러나 우리의 사업은 원본 파일에 있는 모든 사진이 사라지게 됩니다. 파일 내용을 읽고 검색을 위해 Solr에 입력하므로 그림이 없으면 나중에 문제를 해결하기 위해 이 방법이 채택되었습니다.

  위의 스크립트를 통해서 비밀번호가 없는 jtd 파일을 txt 파일로 변환할 수 있는데, 가장 당황스러운 점은 저희 jtd 형식의 파일에 비밀번호가 있다는 점인데, 당황스럽긴 한데 다행히 결국 해결되어서 어떻게 됐는지 잊어버렸습니다.

//taro2txt.vbs
Set taro = CreateObject("JXW.Application")
taro.Visible = True
taro.Documents.Open "c:\taro\a.jtd",password//在此处加上密码
taro.ActiveDocument.SaveAs "c:\out\a.txt", "", "", "", 10, "ShiftJIS" //※1
taro.Quit

스크립트가 완료된 후 실행을 클릭하면 특정 jtd 파일을 txt 파일로 변환한 후 txt 파일을 처리하여 내용(txt 형식)을 추출합니다. 파일 내용 추출은 나중에 다른 글에서 설명하겠습니다.)

  위의 문제는 해결되었으나 여전히 문제가 있습니다. 게다가 모든 jtd 파일에 대해 스크립트 파일을 생성할 수 없습니다. 게다가 고객이 어떤 파일을 가지고 있는지 모르기 때문에 vbs에 매개변수를 전달하려고 했습니다. script. VBS의 구문은 모르지만 인터넷에서 말하는 대로 작성했습니다.

Option Explicit

Dim a0 : a0 = WScript.Arguments(0)
Dim a1 : a1 = WScript.Arguments(1)
Dim a2 : a2 = WScript.Arguments(2)
Dim taro

ExchangeFile a0, a1, a2

Sub ExchangeFile(src,dest,password)
    Set taro = CreateObject("JXW.Application")
    taro.Visible = True
    taro.Documents.Open src,password
    taro.ActiveDocument.SaveAs dest, "", "", "", 10, "" 
    taro.Quit
End Sub

여기서 a0은 jtd 파일의 경로를 나타내고 a1은 다음을 나타냅니다. 생성할 txt 형식 파일의 경로는 jtd 파일의 비밀번호를 나타내며 실제로는 매개변수를 전달하고 함수를 호출하는 과정입니다.

  스크립트가 완성된 후 java를 사용하여 vbs 스크립트를 호출하는 문제입니다. 호출 방법은 다음과 같습니다.

public static void main(String[] args) {
   try {
      Runtime.getRuntime().exec( "wscript D:/Send_Mail_updated.vbs" );
   }
   catch( IOException e ) {
      System.out.println(e);
      System.exit(0);
   }
}

  위의 일련의 단계를 통해 할 수 있습니다. jtd 파일을 txt 파일로 성공적으로 변환했지만 몇 가지 문제가 있습니다.

  1. Java 프로그램을 통해 vbs 스크립트를 호출하면 txt 파일이 실제로 생성되었는지 여부를 나타내는 값이 반환되지 않습니다. 해당 txt 파일이 생성되지 않습니다. 내 해결 방법 txt 파일이 생성되었는지 수시로 확인하십시오. 일정 횟수 이후에는 파일을 기준으로 변환에 실패한 것으로 판단됩니다. 예를 들어, 10M 파일을 5초마다 확인하면 총 10번 확인하게 되며, txt 파일이 생성되지 않으면 해당 파일은 비밀번호를 시도할 때 실패로 판단됩니다. , 파일이 상대적으로 크거나 시스템 구성이 좋지 않을 수 있습니다. txt 파일이 생성되었을 수 있지만 확인 시간이 지나면 올바르게 변환되지 않는 것으로 직접 판단됩니다 ;

  2. . vbs 스크립트를 실행하면 Ichitaro 소프트웨어가 열리고 비밀번호를 시도할 때 비밀번호가 올바르지 않으면 응용 프로그램이 배포된 서버에 Windows 오류 팝업 창이 나타납니다. 하지만 결국 Itaro의 프로세스는 죽기 전에 고객은 Ichitaro 프로그램과 오류 메시지를 명확하게 볼 수 있습니다.

  3. jtd 파일이 너무 큰 경우, 예를 들어 파일이 30M에 도달하면 스크립트 변환 속도가 매우 느려질 수 있습니다. 또한 질문 2에서는 파일 변환 과정에서 고객이 서버에서 Ichitaro 프로그램을 볼 수 있다고 언급했습니다. 네, 이 기간 동안 고객이 이치타로를 직접 죽이면 파일 변환이 확실히 실패합니다.

위의 문제는 당분간 고객 측 배포 후 사용법에 따라 다릅니다. 고객이 jtd 형식 파일이 모두 10M 미만이므로 큰 문제는 없을 것입니다. 그러나 파일이 30M를 초과하면 변환 프로세스가 확실히 느려지고 Ichitaro 소프트웨어가 손상될 위험이 항상 있습니다. 변환 과정 중에 종료될 수 있으므로 구체적인 세부 사항은 고객의 평가판 상황에 따라 달라집니다.

 지금은 jtd 형식의 파일 분석에 관한 내용입니다. jtd 형식의 파일을 txt 형식의 파일로 변환한 후 내용을 추출하는 방법에 대해서는 나중에 작성하겠습니다.

위 내용은 jtd 형식 파일 변환 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.