자료

파일뷰어용 ebook 제작방법: Text-->Doc(doc 자동분할 매크로 포함)

chiyoicopy 2009. 2. 4. 17:42
1. Text 파일 정리

     1) @BookMate 0.91 Beta로 텍스트파일을 불러와서 정리합니다.

     2) 파일열기-->옵션체크-->문서정리 시작-->정리된 문서 전체선택 복사
         다운로드 및 사용방법(제작자 홈페이지): http://blog.naver.com/ebookmate.do

2. Doc 변환 및 분할

     3) 매크로 제작(최초 한번만): 아래에 상세 설명

     4) 첨부된 Split.doc 문서를 열고 2)에서 복사한 내용을 붙여넣기-->다른 이름으로 저장-->MS Word 종료
         - Split.doc는 저의 취향에 맞게 최적화된 문서양식(2.12"액정, 240x320화면, 폰트사이즈 50)입니다. 각자 취향에 맞게 파일-->페이지설정, 폰트사이즈 설정해 주시면 됩니다.

     5) MS Word 실행-->다른 이름으로 저장된 파일 열기
         또는 탐색기에서 저장된 문서를 바로 열기한 경우 -->한번 다른이름으로저장(실제로는 같은 이름으로 저장): 매크로가 분할 저장될 경로를 찾지 못하기 때문

     6) Alt F8(또는 도구-->매크로-->매크로)-->실행--> Number of Batches? 팝업박스에 분할될 문서 수량(300페이지를 50페이지씩 분할시 6) 입력

     7) 다른 이름으로 저장된 문서가 있는 폴더에 01_xxx.doc 등 확인-->끝
         (다음 문서에 이전 문서의 마지막 몇 줄이 중복되는 경우가 있습니다.)

* 매크로 제작 방법

아래 코드로 매크로를 제작하면 됩니다.

매크로에 익숙하지 않은 분들을 위해 상세히 설명하면

1. Split.doc(또는 아무문서나)열기-->Alt F8(또는 도구-->매크로-->매크로)-->매크로 이름에 doc_splitter 입력-->만들기 하면

2. 아래 코드가 생성됩니다.
------------------------------------------------------
Sub doc_splitter()
'
' doc_splitter Macro
' xxx이(가) 만든 매크로 2006-11-25
'

End Sub
-------------------------------------------------------

위 코드를 아래 코드로 바꾼다-->닫기-->끝

------------------------------------------------------
Sub doc_splitter()
' Copyright by W. Polmann
' Use at your own risk
' modified by mo_on 2006.11.25(01_xx.doc,02_xx.doc,...)

origdoc = ActiveDocument.Name

Dim Mldg, Titel, Voreinstellung, Batches
Mldg = "Number of batches?"
Titel = "Freeware by www.ecm-e.de, W. Polmann."
Voreinstellung = "1" ' Voreinstellung festlegen.
' Meldung, Titel und Standardwert anzeigen.
Batches = InputBox(Mldg, Titel, Voreinstellung)

Prozentsprung = 100 / Batches

For x = 1 To Batches

    If x < 10 Then
        ActiveDocument.SaveAs FileName:="0" & x & "_" & origdoc, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
    Else
        ActiveDocument.SaveAs FileName:=x & "_" & origdoc, _
        FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False
    End If

EndeProzentsprung = Prozentsprung * x
AnfangProzentsprung = EndeProzentsprung - Prozentsprung


Selection.GoTo What:=wdGoToPercent, Which:=wdGoToNext, Count:=AnfangProzentsprung, Name:=""
Anfang = Selection.Start

Selection.GoTo What:=wdGoToPercent, Which:=wdGoToNext, Count:=EndeProzentsprung, Name:=""
' Bis zur nachsten Absatzmarke hoch


Selection.Find.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Ende = Selection.End


Set Range = ActiveDocument.Range(Anfang, Ende)


Range.Select
Selection.Copy


Selection.WholeStory
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Paste
ActiveDocument.Save
ActiveDocument.Close

Documents.Open FileName:=origdoc, _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto

Next x

ActiveDocument.Close

End Sub
----------------------------------------------------------

* 코드 간단 설명

상기 코드의 출처는 http://www.proz.com/topic/35310 입니다.
분할저장되는 문서명을 Teil_1_xxx.doc 에서 01_xxx.doc 이 되도록 일부 코드 수정하였습니다.