1. 제품
  2.   워드 프로세싱
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

무료 Ruby API를 통해 템플릿 기반 동적 Word 파일 생성

Ruby 애플리케이션 내에서 Word 문서를 생성하고, 테이블을 추가·맞춤화하며, 이미지를 삽입하고, 줄 바꿈 및 텍스트 포맷을 적용할 수 있게 해 주는 최고 수준의 무료 Ruby 라이브러리.

Ruby-Docx-Templater란 무엇인가요?

Ruby 애플리케이션에서 동적인 Microsoft Word 문서(.docx)를 생성하는 것은 놀라울 정도로 복잡할 수 있습니다. 비전문가가 설계한 보고서, 청구서, 편지를 생성해야 할 수도 있습니다. 많은 솔루션이 존재하지만, LibreOffice나 로컬 Word 설치와 같은 무거운 의존성을 요구하는 경우가 많습니다. 여기에서 Ruby-Docx-Templater가 등장합니다. 이 가벼운 gem은 다른 접근 방식을 취합니다. 사용자는 표준 .docx 파일을 템플릿으로 사용하고, 메모리 내에서 완전히 조작하여 데이터를 주입합니다. 이로써 모든 Ruby 개발자에게 빠르고 안전하며 배포 친화적인 옵션이 됩니다.

Ruby-Docx-Templater 라이브러리의 핵심은 .docx 파일 전용 템플릿 엔진입니다. 사전 디자인된 템플릿으로부터 동적인 Microsoft Word(.docx) 문서를 생성하도록 설계된 가볍고 강력한 Ruby gem입니다. 표준 Word 문서 내에서 간단한 태그 기반 시스템을 사용합니다. Word에서 템플릿을 만들고, 동적 콘텐츠가 나타나길 원하는 곳에 특수 태그를 배치한 뒤, gem이 해당 태그를 Ruby 애플리케이션의 실제 데이터로 교체합니다. 메모리 기반 처리, 복잡한 테이블 구조 지원, 포맷 보존 덕분에 비즈니스 문서 자동화에 이상적입니다.

Previous Next

Ruby-Docx-Templater 시작하기

Ruby-Docx-Templater를 설치하는 권장 방법은 RubyGems를 사용하는 것입니다. 원활한 설치를 위해 다음 명령을 사용하세요.

RubyGems로 Ruby-Docx-Templater 설치

 gem install ruby-docx-templater 

GitHub로 Ruby-Docx-Templater 설치

 git clone https://github.com/jawspeak/ruby-docx-templater.git 
You can also download it directly from GitHub.

Ruby로 템플릿을 사용해 Word Docx 파일 만들기

Ruby-Docx-Templater의 가장 기본적인 기능은 간단한 텍스트 교체입니다. Word 문서 어디에든 플레이스홀더를 배치할 수 있으며, 라이브러리가 실제 값으로 교체합니다. 이 접근법의 장점은 포맷이 유지된다는 것입니다. 템플릿에서 $COMPANY_NAME$을 굵게 빨간색으로 지정하면 출력에서도 그대로 굵고 빨간색으로 유지됩니다. 이를 통해 디자이너는 문서 외관을 완벽히 제어할 수 있습니다. Word 템플릿에서는 $KEY$ 구문을 사용해 키를 정의합니다. 달러 기호는 구분자로 작동해 교체 위치를 명확히 합니다.

Ruby로 템플릿 파일을 사용해 Word Docx 파일을 만들까요?

require 'docx_templater'

# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')

# Define your data as a hash
data = {
  'COMPANY_NAME' => 'Acme Corporation',
  'INVOICE_NUMBER' => 'INV-2024-001',
  'INVOICE_DATE' => '2024-11-04',
  'CLIENT_NAME' => 'John Smith',
  'TOTAL_AMOUNT' => '$1,250.00'
}

# Render the document with your data
doc.render(data)

# Save the output
doc.save('output_invoice.docx')

다중 행 테이블 루프 지원

가장 강력한 기능 중 하나는 다중 행 동적 테이블을 생성할 수 있다는 점입니다. 이는 청구서, 제품 카탈로그, 반복 데이터가 있는 보고서에서 항목 목록을 만들 때 필수적입니다. 테이블에 루프 영역을 정의하면 라이브러리가 데이터 배열의 각 항목에 대해 이 마커 사이의 내용을 복제합니다. Word에서 각 셀을 개별적으로 포맷할 수 있습니다. 예를 들어 숫자를 오른쪽 정렬하거나 헤더를 굵게 하거나 특정 폰트를 적용할 수 있습니다. 모든 포맷은 생성된 행에 그대로 유지됩니다.

Ruby 라이브러리를 사용해 다중 행이 포함된 제품 보고서를 Docx 형식으로 만드는 방법은?

require 'docx_templater'

doc = DocxTemplater::TemplateProcessor.new('product_report.docx')

# Define items as an array of hashes
data = {
  'REPORT_TITLE' => 'Monthly Sales Report',
  'REPORT_DATE' => 'November 2024',
  'ITEMS_LIST' => [
    {
      'PRODUCT_NAME' => 'Laptop Pro 15"',
      'QUANTITY' => '5',
      'UNIT_PRICE' => '$1,200.00',
      'TOTAL' => '$6,000.00'
    },
    {
      'PRODUCT_NAME' => 'Wireless Mouse',
      'QUANTITY' => '12',
      'UNIT_PRICE' => '$25.00',
      'TOTAL' => '$300.00'
    },
    {
      'PRODUCT_NAME' => 'USB-C Cable',
      'QUANTITY' => '20',
      'UNIT_PRICE' => '$15.00',
      'TOTAL' => '$300.00'
    }
  ]
}

doc.render(data)
doc.save('output_sales_report.docx')

메모리 기반 처리

오픈소스 Ruby-Docx-Templater 라이브러리는 Ruby 애플리케이션 내에서 메모리 기반 처리를 지원하여 매우 사용하기 쉽습니다. 모든 문서 조작이 메모리에서 이루어지므로 템플릿 과정 중에 민감한 데이터가 파일 시스템에 접촉하지 않습니다. 이는 의료 기록, 재무 문서, 개인 데이터와 같은 기밀 정보를 다루는 애플리케이션에 매우 중요합니다.

Word XML 작업

Ruby-Docx-Templater의 독특한 점은 때때로 Word 문서의 기본 XML을 수동으로 편집해야 할 수 있다는 것입니다. Word는 종종 포맷 마크업을 삽입해 템플릿 키가 분할되어 교체 과정이 깨질 수 있습니다. Word에서 $CUSTOMER_NAME$을 입력하면 화면에는 정상적으로 보이지만, 실제 XML은 다음과 같이 나타날 수 있습니다.

 한국인