HWP 파일을 TXT 또는 PDF 파일로 저장
hwp 파일은 폐쇠적이고 공무원의 마지막 보루이다... 어쩌구 유튜브 만든 사람 잘 모르고 만들었던데 그렇지 않습니다.
사이냅소프트에서는 오래전 부터 txt 변환하는 프로그램 판매도 하고 있으며 대형 업체들은 구매 해서 모두들 잘 사용하고 있습니다.
여기선 이전에 올린 엑셀, 워드 처럼 프로그램이 설치 되어 있는 상태의 PC에서만 사용가능한 방식으로 해당 프로그램의 API를 이용해서 다른 포맷으로 저장하는 방법에 대한 예 입니다.
아래 프로그램은 TXT, PDF 변환에 대한 것만 있지만 PNG 저장하는것은 아래 처럼 하면 되는데 다른 점은 001 형태로 페이지 번호가 붙으면서 생성 됩니다.
$oHtpCtrl.SaveAs($dstFile, 'PNG')
#cs
# ------------------------------------------------------------------------
hwp to PDF
@author :
@date :
# ------------------------------------------------------------------------
#ce
#Include <File.au3>
#Include <Array.au3>
#Include <String.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
Local $hFileOpen, $fileTxt, $page_number, $pageTxt
; 엑셀에 입력 되는 파일의 경로는 절대경로 여야 한다.
Local $srcFile = ''
Local $dstFile = ''
Local $MODE = 'pdf'
Local $_DIR_TXT_ = @ScriptDir & "\" & "hwp_to_txt"
If Not FileExists($_DIR_TXT_) Then
DirCreate($_DIR_TXT_)
EndIf
; 인자 입력 및 유효 파일 체크
If $CmdLine[0] >= 1 Then $srcFile = $CmdLine[1]
If $CmdLine[0] >= 2 Then $dstFile = $CmdLine[2]
If $CmdLine[0] >= 3 Then $MODE = $CmdLine[3]
; srcFile Path가 상대라면 절대경로로
If $srcFile <> '' And Not StringRegExp($srcFile, '^[\\/]|^[A-Za-z]:(\\|/)', 0) Then
$srcFile = @ScriptDir & "\" & $srcFile
EndIf
; dstFile Path가 상대라면 절대경로로
If $dstFile <> '' And Not StringRegExp($dstFile, '^[\\/]|^[A-Za-z]:(\\|/)', 0) Then
$dstFile = @ScriptDir & "\" & $dstFile
EndIf
; 파일 존재하지 않으면 기본값 사용
If $MODE == '' Then
$MODE = 'pdf'
EndIf
If $srcFile == '' OR Not FileExists($srcFile) Then
$srcFile = @ScriptDir & "\" & "1hwp.hwp"
$dstFile = @ScriptDir & "\" & "1hwp.pdf"
EndIf
ConsoleWrite('srcFile: ' & $srcFile & @CRLF)
ConsoleWrite('dstFile: ' & $dstFile & @CRLF)
ConsoleWrite('MODE: ' & $MODE & @CRLF)
; --------------------------------------------------------------
;
; --------------------------------------------------------------
$oHtpCtrl = ObjCreate("HWPCONTROL.HwpCtrlCtrl.1")
If Not IsObj($oHtpCtrl) Then
ConsoleWrite("Error: $oHtpCtrl create error" & @CR)
Else
GUICreate("HWP to PDF",800,600)
$GUIActiveX = GUICtrlCreateObj($oHtpCtrl, 10, 10, 600, 400)
$oHtpCtrl.RegisterModule("FilePathCheckDLL", "FilePathCheckerModuleExample")
Sleep(1)
;
$oHtpCtrl.Open($srcFile)
Sleep(1)
ConsoleWrite('HWP file: ' & $srcFile & @CRLF)
;
$pageCount = $oHtpCtrl.PageCount
ConsoleWrite('Page Count: ' & $pageCount & @CRLF)
Sleep(1)
; 페이지 수 만큼 txt를 반출한다.
For $page = 0 To $pageCount - 1 Step 1
$pageTxt = $oHtpCtrl.GetPageText($page)
$page_number = $page + 1
$fileTxt = $_DIR_TXT_ & "\" & $page_number & ".txt"
$hFileOpen = FileOpen($fileTxt, $FO_OVERWRITE)
$rFwrite = FileWrite($hFileOpen, $pageTxt)
FileClose($hFileOpen)
ConsoleWrite('txt file: ' & $fileTxt & @CRLF)
Sleep(0.5)
Next
;
If $MODE == 'pdf' Then
$oHtpCtrl.SaveAs($dstFile, 'PDF')
EndIf
$oHtpCtrl.Run("FileClose")
EndIf
보안 모듈 설치가 안되어 있으면 실행할때 마다 허용할것인지 물어 봅니다.
허용 창이 뜨지 않게 하고 싶으면 아래 페이지 첨부된 파일 있으니 참고하시면 되며 한글 개발자 사이트에 찾아 보시면 이 부분에 대한 찾아 보시면 됩니다.
- PHP로 한글파일 pdf변환하거나 이미지로 저장하는 방법
