문제

C#을 사용하여 IE 용 버튼을 만들고 있는데이 버튼은 문서에 따라 PDF 문서 인 특정 작업을 수행합니다. 문서 유형이 PDF가 아니지만 IE가 Adobe와 독자가 어떻게 책임을 지도록 문서를 넘겨주는 지 잘 모르겠습니다. 나는 Shdocwv가 WebbrowserClass 객체를 살펴보고 이것을 알아내는 방법을 잘 모르고 있습니다. 제안이 있습니까?

도움이 되었습니까?

해결책

이 afaik을하는 것은 조금 문제가됩니다.

가치 iwebbrowser2 :: 유형 속성은 PDF를 처리하는 플러그인을 설치 한 플러그인에 따라 다릅니다. 일부 플러그인은 PDF 파일 (Adobe와 같은)을위한 HTML 래퍼를 생성하므로 "html 문서"를 유형으로 가져오고 일부 플러그인은이 작업을 수행하지 않습니다. Foxit), 그래서 당신은 이것을 독점적으로 전달할 수 없습니다.

따라서 HTML 래퍼가있는 PDF를 사용하면 사용할 수 있습니다. ihtmldocument2 :: mimetype 정확한 유형의 문서를 찾으려면 (jpeg/gif/png/etc. 파일은 모두 브라우저에 의해 HTML에 래핑됩니다). 그러나 내 컴퓨터에서도 신뢰할 수 없다는 것을 알고 있듯이 .html 파일은 Firefox : S와 관련되어 있기 때문에 HTML 문서의 "Firefox 문서"를 반환하지만 PDFS ALOS의 경우가 있는지 테스트하지는 않았습니다.

또 다른 옵션은 사용하는 것입니다 geturlcacheentryinfoex API 호출 문서를 저장하는 로컬 브라우저 캐시에서 파일을 얻은 다음 읽기 (파일의 시작만으로 처음 256 바이트 만 중요하다고 생각합니다). findmimefromdata 방금 읽은 데이터를 사용하면 MIME 유형을 반환합니다.

다른 팁

문서의 마임 유형을 확인하거나 Window.location.href의 Webbrowser를 참조하십시오 ... PDF가 표시되면 찾을 수 있습니다 ...

또 다른 좋은 방법은 다음을 수행하는 것입니다 ..

1] 문서 객체를 iPersist에 캐스트 한 다음 .getClassId (..)을 사용하여 ClsID를 추출하십시오. 2] Pinvoke progidfromclsid progid를 추출하려면 3] 알려진 COM 객체 / 응용 프로그램과의 progid와 일치합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top