2011-01-19 4 views
1

간단한 텍스트의 경우 Adobe Reader 및 Drag & 드롭 기능에 문제가 있음을 발견했습니다.Adobe Reader 텍스트 드래그 앤 드롭 문제

일부 텍스트를 선택하여 .NET 응용 프로그램 (또는 메모장 ++ 또는 VisualStudio 같은 텍스트 편집기)에 놓으면 텍스트에 임의의 문자가 첨부됩니다.

내가 열심히 노력하고 문제를 관찰까지 나의 관찰이 지남에 따라 나는 다음과 같은 말을 할 수 있습니다 : 그것은 드래그 선택 동일한 텍스트 아 파크 두 번 무슨 일이 생긴하지 않습니다

  1. .
  2. 첨부 된 텍스트는 항상 몇 자입니다 (최소 10)
  3. 는 때때로 첨부 된 문자가 dargged 텍스트의 조각 것으로 보인다 및 첨부 된 문자는 영숫자없는 이전
  4. 일부 다른 시간을 감소 이 하드 인식 할 수 문자는
  5. 선택한 텍스트 (단지 전체 단락)

내 응용 프로그램에서 다른 텍스트로 삭제 된 텍스트를 비교하고 일부 문자가 있기 때문에이 분명히 실패 어디서나 할 수있는 나는 끌지 않았다. 디.

.NET에서 사물의 표준 IDataObject 인터페이스를 사용하고 여러 형식을 시도했지만 동작은 항상 동일합니다. 그것은 재현 될 수 있지만 임의로 발생하기 때문에 예측할 수 없습니다.

제 질문은 : 이것은 Adobe Reader의 버퍼 채움 문제입니까? (보안 모드가 해제 된 상태에서 버전 8,9, X가 발생합니다)? 이것은 어떤 타사 프로그램이 pdf를 만들 었는지에 달려 있습니까? 다른 사람이 같은 행동을 경험 했습니까?

먼저 다른 pdf-Reader는 여기에 비즈니스 정책으로 사용할 수있는 옵션이라고 말하지 않아야합니다. :)

이 질문에 대답 할 수있는 분께 미리 큰 감사드립니다.

+0

아마도 PDF 파일이 인코딩 된 것일까 요? –

+0

답장을 보내 주셔서 감사합니다.하지만 ecoding/decode 것은 아니지만 전체 텍스트가 첨부 된 문자를 제외하고 드래그 된 것 같기 때문에 추측 할 때마다 예측할 수 있습니다. –

+0

Adobe Reader에서 95 %의 버그가 발생합니다. IDataObject를 사용하여 이것을 망칠 수있는 적절한 방법이 없습니다.기업이 특정 제품의 특정 버전에 자신을 고정 시키면 해당 공급 업체와 지원 계약을 체결하는 것이 좋습니다. –

답변

2

일의 일 다음과 같은 결론에 저를지도 연구 할 :

그것은 양쪽 (어도비/닷넷)에 버그입니다. 처음에는 Adobe Reader에서 드래그 한 OleDataObject에 포함 된 문자열이 null로 끝나지 않아 데이터를 교환하는 데 안전하지 않습니다. 어도비 리더 X의 표준 구성에서이 기능이 꺼져있는 것은 당연한 일입니다. .Net 측에서 제대로 작동하려면 모든 문자열을 종료해야합니다. 포인터를 가져 오면 '\ 0'문자가 발견되고 잘못된 문자 (또는 이전에 드래그 된 텍스트의 문자)가 추가 될 때까지 메모리를 통해 실행되는 새로운 문자열 인스턴스가 만들어집니다. 이 혼란에 대한 해결책은 OleDataObject에 포함 된 텍스트 부분의 크기를 쿼리하는 것입니다. 이 크기 (분명히 결과 문자열 크기보다 작거나 같음)는 원래 문자열에서 하위 문자열 연산을 수행하는 데 사용될 수 있습니다. 이 모든 것을 palce에서 문자열에는 더 이상 잘못된 문자가 붙어 있지 않습니다. -solved