미디어위키/미디어위키 익스텐션

미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) PDF Handler 설치와 활용

씨실과 날실 2020. 5. 4. 09:00

[익스텐션 목록]

기본 익스텐션

2019/10/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Interwiki 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Nuke 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Renameuser 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CiteThisPage 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Replace Text 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) WikiEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CodeEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CategoryTree 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Cite 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ImageMap 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) InputBox 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ParserFunctions 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Poem 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SyntaxHighlight 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) PDF Handler 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ConfirmEdit 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SpamBlacklist 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) TitleBlacklist 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Gadgets 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) LocalisationUpdate 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) MultimediaViewer 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) OATHAuth 설치와 활용





[PDF Handler 익스텐션 관련 정보]

익스텐션 공식 안내 페이지

https://www.mediawiki.org/wiki/Extension:PdfHandler

다운로드

미디어위키 내 배포 페이지

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/PdfHandler

github 페이지

https://github.com/wikimedia/mediawiki-extensions-PdfHandler


PDF Handler 익스텐션 기능

다중 페이지 PDF 파일의 이미지 처리 기능을 제공하는 미디어 관련 익스텐션입니다.




전제 조건

이 익스텐션을 설치, 사용하기 위해서는 서버에 다음 3가지의 패키지가 설치되어 있어야 합니다.

ghostscript

페이지 이미지를 렌더링하는데 쓰입니다.

공식 웹사이트 : https://www.ghostscript.com/


imagemagick

이미지의 동적 리사이징과 썸네일 생성에 쓰입니다.

공식 웹사이트 : https://imagemagick.org/


리눅스를 데스크톱 배포판으로 설치하거나 리눅스 설치 시 멀티미디어 옵션을 체크한 경우 자동으로 함께 설치됩니다.


xpdf-utils

PDF 파일에서 메타데이터를 추출합니다. 

공식 웹사이트 : www.xpdfreader.com


만약 PDF의 파일 설명에 "0 × 0 pixel" 이 표시된다면, 이 패키지가 설치되지 않은 것입니다.

우분투와 데비안에서는 "xpdf-utils"대신 "poppler-utils"패키지를 사용할 수 있습니다만 초심자의 경우 권장하지 않습니다..


설치 확인

터미널에서 다음을 실행하여 위 세 패키지의 설치 여부를 확인할 수 있습니다.

$ which gs convert pdfinfo pdftotext


익스텐션 다운로드 및 설치

설치하기 전에 위에서 설명한 필요한 패키지가 설치되어 있는지 확인하고 만약 설치하지 않았다면 설치해줍니다.

다운로드 안내

익스텐션 다운로드 및 설치 방법은 아래 링크를 참고하시기 바랍니다.


사용 중인 미디어위키의 버전에 맞는 배포 익스텐션 압축 파일을 다운로드받습니다.

익스텐션 공식 배포처

미디어위키 내 배포 페이지

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/PdfHandler

github 페이지

https://github.com/wikimedia/mediawiki-extensions-PdfHandler




미디어위키 버전별 익스텐션 다운로드 주소

1.34

https://extdist.wmflabs.org/dist/extensions/PdfHandler-REL1_34-23aad38.tar.gz

1.33

https://extdist.wmflabs.org/dist/extensions/PdfHandler-REL1_33-8ee577e.tar.gz

1.32

https://extdist.wmflabs.org/dist/extensions/PdfHandler-REL1_32-4c2a3ed.tar.gz

1.31

https://extdist.wmflabs.org/dist/extensions/PdfHandler-REL1_31-21f2fe9.tar.gz

위 주소는 코드 수정으로 바뀔 수 있으므로 다운이 받아지지 않는다면 위 공식 루트를 통해 다운받으시기 바라비니다.

다운로드 받은 압축 파일을 서버 안 미디어위키 설치 폴더 내에 있는  extensions폴더 안에 풀어줍니다.

리눅스 서버의 경우

$ sudo tar -xzf PdfHandler-REL1_34-23aad38.tar.gz -C /미디어위키 설치 경로/extensions


예시 - Ubuntu

$ sudo tar -xzf PdfHandler-REL1_34-23aad38.tar.gz -C /var/www/html/w/extensions

위 명령은 제 블로그를 그대로 따라오신 분의 경우 적용되는 예시입니다.


윈도 서버의 경우

탐색기로 압축 파일을 해당 위치에 풀어주시면 됩니다.


호스팅을 받는 경우

파일질라, 알FTP 등 FTP 프로그램을 이용해 미리 풀어 놓은 익스텐션 폴더(PdfHandler)를 통째로 해당 위치에 전송해줍니다.




PDF Handler 익스텐션 필수 설정

미디어위키의 환경 설정 파일인 LocalSettings.php 파일에 다음과 같은 코드를 추가해줍니다.

wfLoadExtension( 'PdfHandler' );


... 전략 ...

# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' );

# End of automatically generated settings.
# Add more configuration options below.

... 후략 ...

미디어위키 설치시 기본 제공 익스텐션을 함께 설치하도록 설정한다면 코드는 보통 위 예시와 같은 위치에 추가됩니다.


이 익스텐션을 사용하기 위해서는 다음의 코드들이 활성화되어 있어야 합니다.


아직 PDF 업로드를 활성화하지 않은 경우

$wgFileExtensions [] = 'pdf';


ImageMagick을 활성화하지 않은 경우

$wgUseImageMagick = true;


gs, convert 및 pdfinfo에 대한 메모리 제한을 완화할 필요가 있는 경우

// Maximum amount of virtual memory available to shell processes under Linux, in KiB.
$wgMaxShellMemory = 307200;


설치 확인

미디어위키의 특수:버전(= Special:Version) 문서를 확인하면 위 익스텐션이 추가된 것을 확인할 수 있습니다.




PDF Handler 익스텐션 추가 구성 설정

"LocalSettings.php"파일에서 서버의 환경에 따라 일부 변수를 설정할 수 있습니다


$wgPdfProcessor

// (기본값 = "gs")

고스트 스크립트 경로


$wgPdfPostProcessor

// (기본값 = "convert")

imagemagick 컨버트 경로


$wgPdfInfo

// (기본값 = "pdfinfo")

pdfinfo의 경로


$wgPdftoText

// (기본값 = "pdftotext")

pdftotext의 경로


$wgPdfOutputExtension

// (기본값 = "jpg")

선호하는 출력 형식 설정

다른 포맷 형식으로 설정할 수 있습니다.

서버에서 설정한 값을 사용자의 스크립트로 덮어쓸 수 있습니다. 다음 링크를 참고하시기 바랍니다.


$wgPdfHandlerDpi

// (기본값 = "150")

dpi의 해상도를 설정합니다.

확장 프로그램은 이 해상도를 사용하여 PDF의 각 페이지에 대한 비트맵 이미지를 추출합니다. (dpi = 인치당 도트 수)

예를 들어 A4 크기의 PDF 페이지는 폭이 210mm로 595점(72dpi)에 해당합니다. 이는 1240픽셀의 너비(150dpi)를 생성한다. 대신 이 매개변수를 300dpi로 설정하면 너비는 2480 픽셀이 됩니다.


$wgPdfHandlerJpegQuality

// (기본값 = "95"/ MW 1.24+ 이후)

후처리 프로그램이 사용해야하는 품질 수준을 설정합니다.


$wgPdfCreateThumbnailsInJobQueue

// (기본값 = "false")

썸네일 작업 대기열 사용 여부를 설정합니다.



아래는 각 OS별 익스텐션 기본 설정값입니다.

Ubuntu

$wgPdfProcessor = 'gs';
$wgPdfPostProcessor = $wgImageMagickConvertCommand; // if defined via ImageMagick
// $wgPdfPostProcessor = 'convert'; // if not defined via ImageMagick
$wgPdfInfo = 'pdfinfo';
$wgPdftoText = 'pdftotext';


Debian

$wgPdfProcessor = '/usr/bin/gs';
$wgPdfPostProcessor = $wgImageMagickConvertCommand; // if defined via ImageMagick
// $wgPdfPostProcessor = '/usr/bin/convert';  // if not defined via ImageMagick
$wgPdfInfo = '/usr/bin/pdfinfo';
$wgPdftoText = '/usr/bin/pdftotext';


Windows

$wgPdfProcessor = 'C:\Programme\gs\gs8.60\bin\gswin32.exe';
$wgPdfPostProcessor = $wgImageMagickConvertCommand; // if defined via ImageMagick
// $wgPdfPostProcessor = 'C:\Programme\ImageMagick-6.6.2-Q16\convert.exe'; // if not defined via ImageMagick
$wgPdfInfo = 'C:\Programme\xpdf-3.02pl1-win32\pdfinfo.exe';
$wgPdftoText = 'C:\Programme\xpdf-3.02pl1-win32\pdftotext.exe';


mac OS

$wgPdfProcessor = '/usr/local/bin/gs';
$wgPdfPostProcessor = $wgImageMagickConvertCommand; // if defined via ImageMagick
// $wgPdfPostProcessor = '/usr/local/bin/convert'; // if not defined via ImageMagick
$wgPdfInfo = '/usr/local/bin/pdfinfo';
$wgPdftoText = '/usr/local/bin/pdftotext';





PDF Handler 익스텐션 사용법


== PdfHandler 익스텐션 ==

=== 기본 ===
[[File:Nh_001_0010.pdf]]


=== 원하는 페이지 표시 ===
[[File:Nh_001_0010.pdf|page=3]


=== 크기 설정 ===
[[File:Nh_001_0010.pdf|600px]]


=== 섬네일 | 설명 ===
[[File:Nh_001_0010.pdf|page=1|thumb|신편한국사]]
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />


=== 표시 위치 설정 ===
[[File:Nh_001_0010.pdf|page=1|thumb|left|신편한국사]]
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />




파일:파일명.pdf

pdf 파일 정보를 확인하면 썸네일 옆에 페이지를 이동해가며 내용을 확인할 수 있습니다.