{"id":1287,"date":"2026-08-06T09:00:00","date_gmt":"2026-08-06T00:00:00","guid":{"rendered":"https:\/\/blog.hancom.com\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api\/"},"modified":"2026-08-20T11:10:40","modified_gmt":"2026-08-20T02:10:40","slug":"llamaindex-hwp-hwpx-parsing-hancom-data-loader-api","status":"publish","type":"post","link":"https:\/\/blog.hancom.com\/en\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api\/","title":{"rendered":"Limitations of LlamaIndex HWP\u00b7HWPX Parsing and Integration Guide for Hancom Data Loader API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">LlamaIndex&#8217;s HWPReader supports HWP text extraction, but it does not support table structures, paragraph hierarchies, or HWPX. These limitations can impact RAG (Retrieval-Augmented Generation) search accuracy and answer quality. In this article, we examine the limitations of HWPReader and introduce how to utilize HWP and HWPX as structured data by integrating the Hancom Data Loader API.  <\/p>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h2 class=\"wp-block-heading\"><strong>Limitations of LlamaIndex HWP\u00b7HWPX Parsing and Impact on RAG Performance<\/strong><\/h2>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">LlamaIndex HWPReader extracts text but does not support table structures, paragraph hierarchy, or HWPX. These parsing quality limitations directly lead to RAG hallucination and reduced retrieval accuracy.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>What HWPReader Extracts and What It Does Not<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">HWPReader extracts text and headers from HWP but does not support table structures, images, paragraph hierarchy, or HWPX. Reviewing the official LlamaIndex reference and GitHub source reveals that HWPReader is structured to select only text tags inside HWP, decompress them, and decode them as text. <\/p>\n\n<p class=\"wp-block-paragraph\">Consequently, cell relationships in tables disappear, non-text elements like images are excluded from processing, and the hierarchy between titles and body text is processed without distinction, leaving no hierarchical information. Loading is also limited to one file at a time. The biggest constraint is HWPX support; since HWPReader only supports OLE-based HWP, it cannot process XML\/ZIP-based HWPX.  <\/p>\n\n<h4 class=\"wp-block-heading\"><strong>LlamaIndex HWPReader Support Scope Table<\/strong><\/h4>\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Item<\/td><td>HWPReader Support<\/td><td>RAG Impact<\/td><\/tr><tr><td>Text Extraction<\/td><td>Supported (text tags only)<\/td><td>Body text retrieval possible<\/td><\/tr><tr><td>Headers<\/td><td>Supported<\/td><td>Partial metadata captured<\/td><\/tr><tr><td>Table Structure<\/td><td>Not Supported<\/td><td>Incorrect answers to table numeric queries<\/td><\/tr><tr><td>Image<\/td><td>Not supported (non-text ignored)<\/td><td>Chart information missing<\/td><\/tr><tr><td>Paragraph Hierarchy<\/td><td>Not supported (treated equally)<\/td><td>Chunking context loss<\/td><\/tr><tr><td>HWPX<\/td><td>Not supported (OLE only)<\/td><td>HWPX documents cannot be processed<\/td><\/tr><tr><td>Loading Method<\/td><td>Single file only<\/td><td>Burden of large-scale batch processing<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h3 class=\"wp-block-heading\"><strong>Can&#8217;t I Convert HWP to PDF and Parse It?<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">You can convert HWP to PDF and then parse it, but it is approximately 15.8 times slower and incurs structural loss. According to <a href=\"https:\/\/tech.hancom.com\/ax-era-open-source-ecosystem-strategy-hwp\/\" target=\"_blank\" rel=\"noopener\">Hancom Tech analysis<\/a>, a task that took 9.5 seconds to extract directly from HWPX took 150.3 seconds after converting to PDF and extracting\u2014a time difference of approximately 15.8 times.<\/p>\n\n<p class=\"wp-block-paragraph\">A bigger problem than speed is data quality. When tables collapse into flat text during PDF conversion, row and column relationships are lost, leading to inaccurate answers to numeric queries like &#8220;what is the budget for which year,&#8221; and layout elements like title hierarchy and footnotes are also lost, making chunking reference points ambiguous. <\/p>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process-1024x576.png\" alt=\"RAG process following LlamaIndex HWP&#xB7;HWPX parsing: 7-stage flow from document upload through parsing, chunking, embedding, vector DB storage, retrieval, to answer generation\" class=\"wp-image-1221\" srcset=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process-1024x576.png 1024w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process-300x169.png 300w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process-768x432.png 768w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process-600x338.png 600w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-rag-process.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h3 class=\"wp-block-heading\"><strong>Why Low Parsing Quality Triggers RAG Hallucination<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">If parsing quality is low, the subsequent chunking, embedding, and retrieval stages of RAG are sequentially compromised, leading to hallucinations.<\/p>\n\n<p class=\"wp-block-paragraph\">RAG extracts and parses documents, then cuts them into semantic units (chunking), converts them into vectors (embedding), stores them in a vector DB, retrieves fragments close to the question, and generates answers with an LLM. When structural information is lost at the parsing stage, chunking occurs with damaged structure, so the LLM effectively references a document different from the original, making it difficult to produce accurate answers even with a good model. <\/p>\n\n<p class=\"wp-block-paragraph\">In fact, <a href=\"https:\/\/arxiv.org\/abs\/2410.21169\" target=\"_blank\" rel=\"noopener\">research summarizing document parsing technologies<\/a> presents layout analysis and table recognition as core pipeline components supporting downstream applications like RAG, and <a href=\"https:\/\/arxiv.org\/abs\/2401.12599\" target=\"_blank\" rel=\"noopener\">research on PDF structure recognition<\/a> also explains that even when RAG frameworks and LLM APIs mature, if parsing accuracy is a bottleneck, the quality of specialized knowledge Q&amp;A deteriorates.<\/p>\n\n<p class=\"wp-block-paragraph\">In other words, much of RAG hallucination starts not from the model but from information loss at the parser stage, making solutions that directly parse HWP\u00b7HWPX originals important.<\/p>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h2 class=\"wp-block-heading\"><strong>Criteria to Check Before Selecting an HWP Parsing API<\/strong><\/h2>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">When selecting an HWP\u00b7HWPX parsing API, check in order: support for direct original parsing, built-in DLA (Document Layout Analysis) and TSR (Table Structure Recognition), aijson structured output, and on-premises deployment capability.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Why Direct Original Parsing Support Comes First<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">Even if labeled as &#8220;HWP support,&#8221; some solutions internally go through PDF conversion, so it is important to confirm whether the original HWP is actually parsed directly. Support format lists alone do not reveal internal processing methods. <\/p>\n\n<p class=\"wp-block-paragraph\">This difference stems from the HWP file structure. According to the <a href=\"https:\/\/tech.hancom.com\/python-hwp-parsing-1\/\" target=\"_blank\" rel=\"noopener\">Hancom Tech blog article<\/a>, HWP is a CFB (Compound File Binary File Format) composed of storages and streams, with compression applied to reduce size. Extracting text by decompressing with open source and restoring table and hierarchical structures to their original state are completely different levels of difficulty.<\/p>\n\n<p class=\"wp-block-paragraph\">Therefore, having the original HWP SDK core technology that directly interprets the original binary is necessary to extract while preserving structure without PDF conversion and to process legacy HWP 3.0 documents, enabling legacy documents from public sector sites to be uploaded to RAG.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Environments requiring on-premises or container-based REST API support<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">In environments where documents cannot be sent externally, on-premises and container-based REST API support is virtually a mandatory requirement. Cloud APIs require sending documents to external servers, which often cannot be used in air-gapped public, financial, and legal environments due to regulations. <\/p>\n\n<p class=\"wp-block-paragraph\">Global overseas solutions fail on two counts here. They do not support HWP\u00b7HWPX and are cloud-only, so they do not align with domestic closed networks from the start. In contrast, container-based REST APIs can be installed directly on internal networks and operated without external transmission, can be integrated regardless of language, and run on CPU only without GPU.  <\/p>\n\n<h4 class=\"wp-block-heading\"><strong>\ud83d\udccc On-Premises Adoption Self-Assessment<\/strong><\/h4>\n\n<p class=\"wp-block-paragraph\">\u2705 Air-gapped environment where documents cannot be sent externally<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 High proportion of HWP\u00b7HWPX documents<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Handling documents with many tables and images<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Must install directly on internal network servers<\/p>\n\n<p class=\"wp-block-paragraph\">If any of the above applies, you need a parsing solution that can be deployed internally without external transmission.<\/p>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader-1024x576.png\" alt=\"Hancom Data Loader, an alternative to LlamaIndex: HWP&#xB7;HWPX&#xB7;PDF&#xB7;OOXML document parsing solution introduction image\" class=\"wp-image-1222\" srcset=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader-1024x576.png 1024w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader-300x169.png 300w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader-768x432.png 768w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader-600x338.png 600w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-what-is-data-loader.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h2 class=\"wp-block-heading\"><strong>Parsing HWP\u00b7HWPX Directly with Hancom Data Loader<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">Hancom Data Loader is a document parsing solution that converts HWP, HWPX, PDF, and OOXML into structured data. It parses HWP and HWPX directly without PDF conversion and combines DLA, OCR (Optical Character Recognition), and TSR into a single pipeline to return structured results as aijson.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Parsing Quality Comparison: HWPReader vs. Hancom Data Loader<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">While HWPReader stops at text extraction, Hancom Data Loader performs structured parsing that restores table structures, paragraph hierarchy, and HWPX. <\/p>\n\n<p class=\"wp-block-paragraph\">Both methods retrieve text from HWP, but HWPReader&#8217;s output is unstructured text that does not include hierarchical information, which may require additional post-processing for RAG use. In contrast, Hancom Data Loader automatically tags paragraph hierarchies through Level inference and exports the results in the aijson structured format. <\/p>\n\n<h4 class=\"wp-block-heading\"><strong>HWPReader vs. Hancom Data Loader Parsing Comparison Table <\/strong><\/h4>\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Item<\/td><td>LlamaIndex HWPReader<\/td><td>Hancom Data Loader<\/td><\/tr><tr><td>HWPX Support<\/td><td>Not supported (OLE only)<\/td><td>Supported (direct parsing)<\/td><\/tr><tr><td>Table Structure Recognition<\/td><td>Not Supported<\/td><td>Table Structure Recognition (TSR) applied<\/td><\/tr><tr><td>Paragraph Hierarchy Inference<\/td><td>None (treated equally)<\/td><td>Automatic Level inference<\/td><\/tr><tr><td>Output Format<\/td><td>Flat text<\/td><td>aijson Structured Output<\/td><\/tr><tr><td>On-Premise<\/td><td>Direct library operation<\/td><td>Container-based REST API for internal deployment<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h3 class=\"wp-block-heading\"><strong>Why Data Loader Is More Advantageous for Documents with Many Tables and Images<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">Depending on the application of TSR (Table Structure Recognition) and DLA (Document Layout Analysis), the gap in parsing quality widens significantly as the number of tables and images increases.<\/p>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.thelec.kr\/news\/articleView.html?idxno=57042\" target=\"_blank\" rel=\"noopener\">Hancom Data Loader<\/a> supports complex table extraction that structures tables within tables and merged cells, making it suitable for public and financial documents with many budget tables, statistical charts, and multi-column forms.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Core HWP\u00b7HWPX Parsing Features<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">The core strength of Hancom Data Loader&#8217;s HWP and HWPX parsing is that it combines DLA, table extraction, in-document images, and TSR into a single pipeline, eliminating the need for separate parsers for each format.<\/p>\n\n<p class=\"wp-block-paragraph\">Converts HWP, HWPX, and PDF into data optimized for AI.<\/p>\n\n<p class=\"wp-block-paragraph\">HWP, HWPX, and PDF documents are output in JSON and TXT formats, while OOXML only supports output in TXT format.<\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Curious how HWP\u00b7HWPX parsing results are actually structured?<\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/livedemo.sdk.hancom.com\/dataloader\" target=\"_blank\" rel=\"noopener\">View Hancom Data Loader Live Demo<\/a> <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Integrating LlamaIndex with Hancom Data Loader API<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">The Hancom Data Loader API is a REST API. When you upload HWP or HWPX files, it returns structured results in aijson format, which can then be converted into LlamaIndex Document objects and connected to a RAG pipeline.<\/p>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/documents.sdk.hancom.com\/dataloader-api\/intro\" target=\"_blank\" rel=\"noopener\">API<\/a> keys can be issued from the My Page after signing up at sdk.hancom.com. <\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Data Loader API Integration Flow<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">Integrating the Data Loader API is an asynchronous flow consisting of three stages: conversion request, completion confirmation, and result download. Since the structure does not return results immediately but retrieves them separately after processing, it is important to save the api_history_id from the initial response. <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>1. Conversion Request<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Send the document to POST https:\/\/api.sdk.hancom.com\/api\/api-services\/convert. Include X-API-Key in the header and pass file and optional webhook_url as multipart, and the response returns api_history_id, job_id, and status: PROCESSING. <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>2. Completion Confirmation (choose one)<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">If you register a webhook, the server sends status: DONE, download_url, and expired_at upon completion. This is the recommended method. If using polling, query status with GET https:\/\/api.sdk.hancom.com\/api\/api-services\/status\/{api_history_id}. <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>3. Result Download<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Call GET https:\/\/api.sdk.hancom.com\/api\/api-services\/download\/{api_history_id} to receive the .aijson file.<\/p>\n\n<p class=\"wp-block-paragraph\">It is also recommended to check limitations before integration. We recommend using documents under 1,000 pages and a maximum of 100MB per file; encrypted (DRM) documents are not supported. The input formats are HWP, HWPX, and PDF, and the output is aijson.  <\/p>\n\n<h3 class=\"wp-block-heading\"><strong>How to Connect aijson Response to LlamaIndex<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">The aijson response extracts category, level, and content.text from the elements array and converts them into LlamaIndex Document objects, maintaining hierarchical metadata and continuing to chunking and embedding. <\/p>\n\n<p class=\"wp-block-paragraph\">aijson places runtime, version, metadata, elements, and pageSizes at the root, and each elements item contains id, category, level, confidence, content, bbox, and pageIndex. Here, level is paragraph hierarchy information, so it can be used directly as metadata during chunking. <\/p>\n\n<pre style=\"margin:0; padding:20px 24px; background:#fff !important; color:#000 !important; font-weight:normal !important; font-family:Consolas, Monaco, 'Courier New', monospace; font-size:14px; line-height:1.6; overflow-x:auto;\">import json\nfrom llama_index.core import Document\n\n# Load .aijson returned by Data Loader\nwith open(\"result.aijson\", encoding=\"utf-8\") as f:\n  parsed = json.load(f)\n\n# Iterate through elements and convert to LlamaIndex Document\n# (Data Loader's scope is up to document preprocessing (parsing, structuring); subsequent chunking and retrieval are RAG steps)\ndocuments = []\nfor el in parsed[\"elements\"]:\n  documents.append(\n  Document(\n  text=el[\"content\"][\"text\"], # content holds html, markdown, text\n  metadata={\n  \"category\": el[\"category\"][\"label\"], # Title, table, body, etc.\n  \"level\": el[\"level\"], # Paragraph hierarchy, chunking metadata\n  \"page_index\": el[\"pageIndex\"],\n  },\n  )\n  )<\/pre>\n\n<p class=\"wp-block-paragraph\">The Document list created this way continues to chunking, embedding, vector DB, retrieval, and LLM answer generation. Data Loader does not replace the entire RAG but is responsible for the very first preprocessing stage. <\/p>\n\n<h3 class=\"wp-block-heading\"><strong>HWP-Based RAG Pipeline Architecture<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">The HWP-based RAG pipeline parses HWP\u00b7HWPX with Data Loader API to obtain aijson, then connects it to chunking, embedding, vector DB, retrieval, and LLM answer generation. Data Loader handles the very first extraction and parsing, and retrieval and Q are attached separately afterward. <\/p>\n\n<p class=\"wp-block-paragraph\">In this process, metadata such as level, bbox, and pageIndex in aijson improves chunking quality. Research analyzing chunking strategies explains that appropriately dividing documents into semantic units is crucial for increasing search accuracy and processing efficiency, and that excessive chunk overlap can increase storage space and processing costs without improving retrieval performance. <\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Considering building HWP\u00b7HWPX-based RAG?<\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/sdk.hancom.com\/contacts\/create\" target=\"_blank\" rel=\"noopener\">Inquire about Hancom Data Loader adoption<\/a><\/p>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition-1024x576.png\" alt=\"Process of converting nested tables and merged cells that LlamaIndex HWP&#xB7;HWPX parsing cannot handle into structured data through AI table structure recognition\" class=\"wp-image-1223\" srcset=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition-1024x576.png 1024w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition-300x169.png 300w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition-768x432.png 768w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition-600x338.png 600w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-table-recognition.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h2 class=\"wp-block-heading\"><strong>Building HWP-Based RAG: Consider in These Environments<\/strong><\/h2>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">If HWP\u00b7HWPX document proportion is high, or in closed network environments, or if documents containing tables and images must be utilized in RAG, a direct parsing API without PDF conversion is necessary.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong>When Building RAG Based on Public Institution, Financial, or Legal Documents<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">The public, financial, and legal sectors have a high proportion of HWP files and cannot send documents externally, necessitating an on-premises direct parsing API. According to <a href=\"https:\/\/zdnet.co.kr\/view\/?no=20251013175231\" target=\"_blank\" rel=\"noopener\">a survey of 14,208 administrative agency workers<\/a>, 91.1% of respondents stated that they primarily create administrative documents, such as reports and plans, in formats that are difficult for AI to recognize, such as HWP or image\/scanned PDFs.<\/p>\n\n<p class=\"wp-block-paragraph\">The National Assembly collaborated with Samsung SDS to <a href=\"https:\/\/www.yna.co.kr\/view\/AKR20260413151300017\" target=\"_blank\" rel=\"noopener\">build parsed documents into a vector DB<\/a>, and Gyeonggi Provincial Office of Education collaborated with LG CNS to <a href=\"http:\/\/www.itdaily.kr\/news\/articleView.html?idxno=234457\" target=\"_blank\" rel=\"noopener\">connect parsing results to a RAG assistant<\/a>. In these environments, the key criterion is whether it can be deployed internally as a container-based REST API even within closed networks. <\/p>\n\n<h3 class=\"wp-block-heading\"><strong>When Building In-House Knowledge Search and Business Chatbots<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">In-house manuals and reports have a high proportion of tables and hierarchical structures, so parsing without structural loss directly impacts chatbot answer accuracy. This is because if tables in a report are corrupted or the table-of-contents hierarchy disappears, the chatbot loses context regarding &#8216;which figure belongs to which item.&#8217; <\/p>\n\n<p class=\"wp-block-paragraph\">Documents with mixed HWP\u00b7HWPX can be processed together with a single API, eliminating the need to divide pipelines by format. The higher the proportion of tables and hierarchy in in-house documents, the greater the effect of Table Structure Recognition (TSR) and Level inference.<\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology-1024x576.png\" alt=\"Hancom Data Loader's 6 core technologies solving LlamaIndex HWP&#xB7;HWPX parsing issues: DLA, OCR, TSR, HWP Data Loader, Level inference engine, container-based REST API introduction image\" class=\"wp-image-1224\" srcset=\"https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology-1024x576.png 1024w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology-300x169.png 300w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology-768x432.png 768w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology-600x338.png 600w, https:\/\/blog.hancom.com\/wp-content\/uploads\/2026\/08\/llamaindex-hwp-hwpx-parsing-hancom-data-loader-api-core-technology.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h2 class=\"wp-block-heading\"><strong>From HWP Parsing to RAG Construction: The Difference Parser Selection Makes<\/strong><\/h2>\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">RAG quality differences arise at the parser stage rather than the model stage. While HWPReader is sufficient for simple text extraction, it falls short with table structures, paragraph hierarchies, and HWPX, and that loss cascades through the chunking and retrieval stages down to the final answer quality. <\/p>\n\n<p class=\"wp-block-paragraph\">Direct HWP\u00b7HWPX original parsing, built-in DLA and TSR, on-premises deployment, and aijson structured output are the prerequisites for public, financial, and legal RAG.<\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udda5 <a href=\"https:\/\/sdk.hancom.com\/services\/1?type=DATA_LOADER\" target=\"_blank\" rel=\"noopener\"><strong>Hancom Data Loader<\/strong><\/a><\/p>\n\n<p class=\"wp-block-paragraph\">Hancom Data Loader is a document parsing solution that converts HWP, HWPX, PDF, and OOXML into structured data. It parses originals directly without PDF conversion to structure them as aijson. The extracted data can be linked with Hancompedia, our proprietary RAG solution, to build a complete Hancom stack from document collection to retrieval and answers. If you would like to learn more, you can check the Hancom Data Loader API guide via the link below.  <\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/sdk.hancom.com\/services\/1?type=DATA_LOADER\" target=\"_blank\" rel=\"noopener\">Explore Hancom Data Loader<\/a> <\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/sdk.hancom.com\/contacts\/create\" target=\"_blank\" rel=\"noopener\">Review Hancom Data Loader API Guide<\/a><\/p>\n\n<h3 class=\"wp-block-heading\"><strong>References <\/strong><\/h3>\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/developers.llamaindex.ai\/python\/framework-api-reference\/readers\/hwp\/\" target=\"_blank\" rel=\"noopener\">LlamaIndex<\/a>, &#8220;HWPReader API Reference&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/tech.hancom.com\/ax-era-open-source-ecosystem-strategy-hwp\/\" target=\"_blank\" rel=\"noopener\">Hancom Tech<\/a>, &#8220;Hangul Documents for the AX Era: Analysis of Open Source Ecosystem Status and Activation Strategy&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2410.21169\" target=\"_blank\" rel=\"noopener\">arXiv<\/a>, \u201cDocument Parsing Unveiled: Techniques, Challenges, and Prospects for Structured Information Extraction,\u201d 2024<\/li>\n\n\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2401.12599\" target=\"_blank\" rel=\"noopener\">arXiv<\/a>, \u201cRevolutionizing Retrieval-Augmented Generation with Enhanced PDF Structure Recognition,\u201d 2024<\/li>\n\n\n\n<li><a href=\"https:\/\/tech.hancom.com\/python-hwp-parsing-1\/\" target=\"_blank\" rel=\"noopener\">Hancom Tech<\/a>, &#8220;Hangul Document File Format: Parsing HWP Format with Python (1)&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.thelec.kr\/news\/articleView.html?idxno=57042\" target=\"_blank\" rel=\"noopener\">THE ELEC<\/a>, &#8220;Public and Defense &#8216;HWPX&#8217; Use Mandatory&#8230;AX Gains Momentum&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/documents.sdk.hancom.com\/dataloader-api\/intro\" target=\"_blank\" rel=\"noopener\">Hancom Data Loader API Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2601.14123\" target=\"_blank\" rel=\"noopener\">arXiv<\/a>, &#8220;A Systematic Analysis of Chunking Strategies for Reliable Question Answering&#8221;, 2026<\/li>\n\n\n\n<li><a href=\"https:\/\/zdnet.co.kr\/view\/?no=20251013175231\" target=\"_blank\" rel=\"noopener\">ZDNet Korea<\/a>, &#8220;9 out of 10 Public Officials &#8216;Use HWP and PDF That AI Cannot Read&#8217;&#8230;Obstacle to AI Government Transition&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.yna.co.kr\/view\/AKR20260413151300017\" target=\"_blank\" rel=\"noopener\">Yonhap News<\/a>, &#8220;Generative AI Introduced to Support National Assembly Proceedings&#8230; Samsung SDS Completes Phase 1 Construction&#8221;<\/li>\n\n\n\n<li><a href=\"http:\/\/www.itdaily.kr\/news\/articleView.html?idxno=234457\" target=\"_blank\" rel=\"noopener\">IT Daily<\/a>, &#8220;Hancom Wins Gyeonggi Provincial Office of Education &#8216;Gyeonggi Education Digital Platform&#8217; Project&#8221;<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>LlamaIndex&#8217;s HWPReader supports HWP text extraction but does not support table structures or HWPX. This guide introduces how to integrate Hancom Data Loader API to parse HWP\u00b7HWPX directly without PDF conversion and build RAG, with code examples. <\/p>\n","protected":false},"author":2,"featured_media":1288,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,10],"tags":[],"class_list":["post-1287","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hancom-product-user-guide","category-10"],"_links":{"self":[{"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/posts\/1287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/comments?post=1287"}],"version-history":[{"count":5,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/posts\/1287\/revisions"}],"predecessor-version":[{"id":1739,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/posts\/1287\/revisions\/1739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/media\/1288"}],"wp:attachment":[{"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/media?parent=1287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/categories?post=1287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hancom.com\/en\/wp-json\/wp\/v2\/tags?post=1287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}