최근에 고객이 회사의 Drupal 사이트에 새로운 기능을 추가하라고 요청했습니다. 브라우저에 PDF 파일을 표시합니다. drupal.org의 옵션을 탐색하면서 새로운 모듈을 선택하면서 이것이 내 의사 결정 프로세스를 문서화 할 수있는 완벽한 기회임을 깨달았습니다. 나는 모듈을 현명하게 선택한다고 항상 말하고 있지만, 이제는 이것이 실제 생활에서 어떻게 작동 하는지를 볼 수 있습니다.
원하는 것을 정의하십시오.
첫 번째 단계는 원하는 것을 정의하는 것입니다. 내 경우에는, 나는 원했다.
- 이 예제와 마찬가지로 웹 브라우저에서 PDF 파일을 볼 수있는 기능. 고객은 회사 뉴스 레터의 PDF를 업로드하고 방문자는 쉽게 읽을 수 있습니다.
- 사이트는 드루팔 (Drupal) 7이므로 모듈은 주요 버전과 일치해야합니다. (드루팔 (Drupal 7)은 잠시 나갔다. 모듈 개발자가 아직 드루팔 (Drupal 7) 버전을 발표하지 않았다면 아마 그렇지 않을 것이다.
- 클라이언트가 이것을 지정하지 않았지만 제 3 자 서비스에 의존하지 않으려했습니다. 동영상의 경우 YouTube 또는 Vimeo에 콘텐츠를 게시 한 다음 Drupal 사이트에 삽입하는 것이 좋지만 PDF의 경우 잠재적 인 번거 로움, 파손 및 비용을 초과하는 노출 가능성은 없을 것이라고 생각했습니다. 그러나 유일한 옵션 인 경우 제 3 자 서비스를받을 수있었습니다.
- 제 3 자 서비스를 피하고자하는 나의 소원에도 불구하고 제 선택에는 제 3 자 자바 스크립트가 필요할 것임을 알았습니다. 도서관 . 이렇게하면 향후 업그레이드에 추가 단계가 추가되지만 일반적으로 제 3 자 서비스에 의존하는 대신 내 자신의 라이브러리 복사본을 실행하는 것이 좋습니다.
- 모듈을 최대한 가볍고 특수하게 유지하려고했습니다. 나는 미디어 파일을 다루거나 조직하는 근본적으로 새로운 방식에 개입하고 싶지 않았습니다. 나는 더 나은보기를 위해 이미지를 확대하는 Colorbox와 비슷한 것을 원했지만 이미지 파일을 관리하는 방법과 완전히 독립적으로 남아 있습니다. 나는이 라이브러리가 pdf.js가 될 것이라는 직감을 가지고 있었지만 다른 가능성을 열어 보았습니다.
- 평소처럼 Drupal 모듈을 선택하기위한 일반적인 지침을 따르기를 원했습니다. 기본적으로 수천 명의 사람들이 이미 사용하고있는 모듈을 선택하십시오. 가능한 한 의존성을 최소화하고 잠시 동안 프로젝트를 계속 지원할 계획 인 활성 개발자가 유지 관리하는 것으로 보이는 모듈을 선택하십시오. 라이센스 비용이 필요합니다.
Drupal.org에서 검색
이러한 목표를 염두에두고 다음 단계는 Drupal.org에서 간단한 검색이었습니다. 시간을 모듈 공의 구덩이에 뛰어들.
PDF 모듈에 대한 "비교"페이지
내 첫 번째 중지 (또는 했어야했다),이 페이지 : PDF 뷰어 모듈의 비교. Drupal.org는 동일한 공간에서 다양한 모듈의 장점과 단점을 설명하는 문서 페이지의 훌륭한 전통을 가지고 있습니다. 비교 페이지의 목록이 중앙에 있지만 사이트 전체에 뿌려져 있습니다.
PDF 비교 페이지에는 4 개의 PDF 뷰어 모듈이 포함되어 있습니다. 나는 그들을 여기에서 다룰 것이고, 내가 찾은 것으로서 발견 한 몇 사람을 포함시킬 것이다. 제가 건너 뛰기로 결정한 후보자들부터 시작하겠습니다.
이제이 모듈이이 프로젝트에서 왜 작동했는지 (또는 대부분 그렇지 않은) 구체적인 내용을 살펴 보겠습니다.
파일 뷰어
파일 뷰어는 Internet Archive BookReader를 사용하는데, 나는 인터넷 아카이브 중독자이기 때문에 저를 흥미롭게했습니다. 내가 갈 때마다, 나는 두려움의 간질을 느끼고 에테르에서 뽑아 낼 수있는 책의 산을 압도한다.
즉, 데모 사이트는 나에게보기 흉한 듯 보였습니다. 나는 그걸로 살 수도 있지만 내 의뢰인이 언제 그런지 의심했다.pdf.js
훨씬 더 세련되게 보인다.
또한 프로젝트 페이지에서 두 번째로 보았을 때, 나는 맨 위에 큰 대담한 발표를 보았습니다.이 모듈은 공식적으로 PDF 모듈로 옮겨졌습니다.. 공정하다. 400 개 이하의 설치로 더 인기있는 PDF 모듈 (잠시 후에 다룰 예정)과 병합하는 것이 좋은 방법입니다. 병합 / 이동 / 취소 된 모듈을 다운로드하지 마십시오.
Google 뷰어 파일 포맷터
Google Viewer File Formatter는 Google 문서 도구를 사용하여 웹 페이지에 파일 표시를 삽입하는 방법입니다. Google 문서 도구의 다양성을 좋아했지만 제 목표 중 하나는 제 3 자 서비스와 독립적으로 유지하는 것이 었습니다.
또한이 모듈의 설치 횟수는 100 개 미만입니다.
Ajax 문서 뷰어
"AJAX"는 일반적인 자바 용어이지만 Ajax 문서 뷰어는 특정 타사 서비스에 의존하는 것으로 나타났습니다. 약 100 개의 설치 만. 계속 전진 …
Scald PDF
Scald PDF에는 40 개의 설치 만 있었지만 분명히 Scald라고 불리는 더 큰 프로젝트의 일부 였기 때문에 살펴보아야했습니다. Scald 프로젝트 페이지에서 다음과 같이 설명했습니다. " Scald는 혁신적인 방법으로 다루는 방법입니다.미디어 아톰 드루팔 (Drupal)에서. "
그 문장은 "혁신적인 테이크"와 "미디어"라는 단어가 "아톰"과 짝을 이루는 두 개의 거대한 붉은 깃발을 일으켰습니다. "Atom"은 분명히 "물건"에 대한 용도 변경된 단어였습니다. 드루팔 (Drupal)은 다음과 같은 빈 상자 유형의 단어에 대해 선호합니다. 마디 , 실재 , 특색 … 더 일반적인 단어 일수록 변화가 더 광범위 할 수 있습니다.
내가 아래로 스크롤 할 때, 나의 의혹이 확인되었다. Scald가 어떻게 내 사이트에서 Media를 어떻게 처리했는지에 대한 흥미로운 주장을 읽습니다.
이제 진실은 드루팔 (Drupal)의 미디어 처리가 재발 명을 사용할 수 있다는 것입니다. Scald는이 분야에서 야심 찬 프로젝트는 아닙니다.그러나 지금까지 설치가 1000 개 미만 이었지만 1 층에 들기를 원하지 않았습니다.
물론, 내년에이 시간까지, Scald가 다음 Views일지도 모릅니다. 그렇게 될 것입니다. 그러나 깨지기 쉬운 사이트의 작은 흔적을 남기고 포기할 수도 있습니다.
지금 당장은 덜 야심 차고 위험한 해결책을 고수하고 싶었습니다. PDF 만 표시하십시오. 그게 내가 묻는 전부 야.
그림자 상자
Shadowbox는 저를 놀라게했습니다. PDF에서 이미지, 비디오까지 모든 종류의 미디어를 표시하는 단일 솔루션이라고 주장했습니다. Scald만큼이나 휩쓸 리지 않았습니다. 표시 미디어 "와 같은 완전히 새로운 개념을 도입하지 않고 하지만 이미 언급 한 것처럼 Colorbox를 좋아합니다. 나는 그 결정을 다시 생각할 필요가 없다.
그러나, 나는 (내부의 신음 소리와 함께)16,000 설치, 섀도우 박스 같은 공간에서 더 강력한 대안이 될 수 있습니다. 나는 있었다 보세요.
Shadowbox Drupal 모듈은 기본적으로 Javascript 라이브러리 Shadowbox.js에 대한 다리이므로 라이브러리 웹 사이트를 체크 아웃했습니다. 거기에서 나는 계속 나아갈 두 가지 이유를 발견했다 :
- 도서관은 상업적 사용을위한 라이센스 비용이 필요합니다. 수수료는 충분히 합리적 이었지만 무료가 아닌 오픈 소스 소프트웨어를 피하려고했습니다.
- FAQ를주의 깊게 살펴보면 Drupal 모듈 페이지의 설명과는 달리 PDF가 아니 Shadowbox 라이브러리에서 100 % 지원됩니다. 죄송합니다. 내가 확인해 줬어.
2 명의 경쟁자 : "PDF"및 "PDF Reader"
나머지를 없애고 필자는 두 가지 명백한 경쟁자 인 PDF 및 PDF Reader
이 두 프로젝트는 주요 유사점을 가지고있었습니다 :
- 둘 다 대체품보다 훨씬 많은 3 천 건이 설치되었습니다 (Shadowbox 제외).
- 둘 다 동일한 외부 Javascript 라이브러리를 사용했으며,
pdf.js
.
차이점은 무엇입니까?
PDF 리더 또한 Google 문서 도구 통합 옵션도 제공됩니다. 이 특별한 경우에는 내 고객이 좋아할 것이라고 생각했기 때문에 옵션을 선호했습니다.
그 동안에, PDF 로 표시되었습니다.공동 관리자를 찾고 있음
. 이는 개발자가 곧 프로젝트를 포기할 것이라는 신호 일 수 있지만, 다른 한편으로는 가장 최근의 커밋은 일주일 전 이었으므로 적어도 개발자는 여전히 활동적이었습니다.
한편, PDF 리더 로 표시되었습니다.능동적으로 유지 관리
, 가장 최근의 커밋은 1 년 전이었다.
분명한 승자가 없으면 두 가지를 모두 테스트하기로 결정했습니다.
경쟁자 테스트
나는 살아있는 사이트의 복사본에 두 모듈을 모두 테스트했다. (모듈이 얼마나 탄탄하고 무해한 지간에 라이브 사이트에서 처음 시도하지 마십시오. 전체 사이트가 손상 될 수 있습니다.)
나는 편파적이었다. PDF 리더 왜냐하면 더 많은 옵션 (예 : Google 문서 도구)이 PDF . 그래서 나는 시도하기로 결정했다. PDF 첫째로, 그것을 방해하지 마십시오.
PDF 실패 : 편집 필요?
그러나, 내가 설치했을 때 PDF 읽고README.txt
프로젝트 페이지에서 보았지만 무시 된 문제점을 발견했습니다. 웬일인지,이 모듈은 당신이 컴파일 할 것을 요구하는 것처럼 보인다.pdf.js
수동으로. 프로젝트 페이지에서 이것이 반드시 필요한 것은 아니지만,README.txt
그것이라고 제안했다.
이후 PDF 리더 이 단계를 필요로하지 않고 똑같은 라이브러리를 사용할 것이기 때문에, 나는 결국 그것을 시도하기로 결심했다. 작동하지 않으면 항상 돌아갈 수 있습니다. PDF 수동으로 컴파일 해보십시오.pdf.js
.
PDF 리더 : 성공! 일종의.
그래서, 마침내, 나는 시도했다. PDF 리더 . 이 모듈은 a를 표시하기위한 새로운 위젯을 제공합니다.파일
들. 원하는 콘텐츠 유형에 파일 필드를 추가하고 위젯 유형을PDF 리더
. 그런 다음이 유형의 노드를 만들고 PDF를 업로드합니다. PDF가 페이지의 "상자"에 포함 된 것처럼 보입니다.
콘텐츠 형식을 다시 편집하고 필드의 표시 설정을 변경하여 다른 표시 옵션을 시도해 볼 수 있습니다.
각 디스플레이 옵션마다 장단점이 있음을 발견했습니다.
- 그만큼구글 문서 독자가 삽입물로 잘 작동했지만 전체 화면으로 이동하기 위해 클릭 한 경우 속도 제한을 초과했다는 사과를하는 Google 문서 도구 페이지에 접속했습니다. 죄송합니다. 아마도이 모듈을 유료 Google Apps 계정에 연결하면 더 신뢰할 수 있지만 고객이 디스플레이가 마음에 들지 않을 것이라고 확신했기 때문에 걱정하지 않아도됩니다.
- 그만큼pdf.js 옵션은 Firefox와 Chrome에서 멋지게 작동했습니다. 하지만 Internet Explorer를 실행하면 상자가 비어있는 것처럼 보였습니다. 분명히 이것은
pdf.js
그 자체가 아니라 PDF 리더 기준 치수. 나는 이것을 기대해야한다고 생각한다.pdf.js
Mozilla와 Internet Explorer에 의해 개발되었습니다 … 자체. 아직도, 나는 그것을 확신하기 위해 생각하지 않았다는 것에 실망했다.pdf.js
처음부터 모든 브라우저에서 안정적으로 작동했습니다. - 그만큼깊숙이 박다 옵션이 가장 안정적이었습니다. 이것은 실제로 Adobe Reader를 웹 페이지의 상자에서 실행했습니다. 내 Firefox 여전히 실행하는 것이 좋습니다.
pdf.js
,하지만 이것은 브라우저 설정이라고 생각합니다. 어쨌든 방문자가 Firefox 나 Adobe Reader와 같은 PDF 뷰어를 사용하는 한 PDF가 표시됩니다.
따라서, 결국, 내 솔루션은 PDF 리더 와 더불어깊숙이 박다 표시 옵션. 이 옵션을 사용하면 Drupal 노드에 PDF를 첨부하고 Drupal 웹 페이지에이를 안정적으로 표시 할 수 있습니다.
불행히도, 때로는 "신뢰할 수있는"충분하지 않습니다. 이 모든 검색을 마친 후에는 결국 제 3 자 서비스를 고려해야했습니다.